タグ付けされた質問 「graph-theory」

グラフ、エッジで接続されたノードの離散構造に関する質問。人気のフレーバーは、エッジキャパシティを持つツリーとネットワークです。

1
最小の最大コンポーネントを取得するためにグラフから削除する頂点を見つける
グラフ与えられた場合、k個の頂点{ v ∗ 1、… 、v ∗ k }をG=(V,E)G=(V,E)G = (V, E)見つけます。これを削除すると、最小の最大成分を持つグラフになります。 kkk{v∗1,…,v∗k}{v1∗,…,vk∗}\{v^*_1,\dots,v^*_k\} 大きなn=|V|n=|V|n = |V|そして大きいkkk問題は、(NP困難)ことは困難であるが、私は小さな値に興味がkkk(k∈{1,2,3,4}k∈{1,2,3,4}k \in \{1, 2, 3, 4\})。 以下のためにk=1k=1k = 1、私は最良の頂点を見つけることが可能だと思う{v∗1}{v1∗}\{v^*_1\}(すなわち、関節点をチェックする)グラフの単一深さ優先検索を実行することによって除去することを。 以下のためにk=2k=2k = 2、最高の頂点を見つけることも可能である{v∗1,v∗2}{v1∗,v2∗}\{v^*_1, v^*_2\}行うことにより、nnn深さ優先検索を(グラフのためにそれらのそれぞれのGi=G/{vi}Gi=G/{vi}G_i = G / \{v_i\})。同様のアプローチは、場合にも適用できますk>2k>2k > 2。 それ以上の解決策はないのでしょうか。 (関連:必ずしも列挙せずに頂点の最小数を数える)

1
最大の3クリークのない誘導サブグラフを見つける
この問題を考えてみましょう: 無向グラフを前提として、次のようなG ′ = (V ′、E ′)を求めます。G = (V、E)G=(V,E)G = (V, E)G′=(V′,E′)G′=(V′,E′)G' = (V', E') の誘発部分グラフである GG′G′G'GGG は3クリークがありませんG′G′G' 最大です|V′||V′||V'| そのため、3クリークが除去されるように、最小数の頂点をから除去する必要があります。GGG 同等の問題は、 2色を見つけて、(v 1、v 2、GGG及び((V 1、V 2)、(V 2、V 3)、(V 3、V 1))∈ V、(v1,v2,v3)∈V(v1,v2,v3)∈V(v_1, v_2, v_3) \in V((v1,v2),(v2,v3),(v3,v1))∈V((v1,v2),(v2,v3),(v3,v1))∈V((v_1, v_2), (v_2, v_3), (v_3, v_1)) \in V (v1.color==v2.color∧v2.color==v3.color∧v3.color==v1.color)=False(v1.color==v2.color∧v2.color==v3.color∧v3.color==v1.color)=False(v_1.color == v_2.color \wedge v_2.color == v_3.color \wedge …

3
3色問題から一般的な色問題への削減をどのように理解するのですか?
3彩色問題は、3SAT グラフ彩色(3SATから)からの削減を利用して、NP完全であることが証明できます。結果として、4つのカラーリングの問題は、3つのカラーリングからの削減を使用したNP-Completeです。 3-Coloringインスタンスからの削減:3-Coloring問題のグラフに頂点を追加し、それをすべての元の頂点に隣接させます。 同じ理由で、5-Coloring、6-Coloring、さらには一般的な -Coloringの問題でさえ、NP-Completeを簡単に証明できます。ただし、私の問題は、基礎となる数学的帰納法で発生します。kkk 私の問題:誘導が -Coloringおよび -Coloringの問題(はグラフ内の頂点の数)に進んだはどうなりますか?カラーリングの問題は簡単に解決できることは確かです。それで、推論に何か問題がありますか?3色問題から一般的な色問題への削減を理解するにはどうすればよいですか?n−1n−1n-1nnnnnnnnnkkk

4
フローネットワークにおけるXORのような動作
XORは正しい名前ではありませんが、ある種の排他的な動作を探しています。 現在、フローネットワークをモデル化し、min-cost-max-flowアルゴリズムを実行することで、さまざまな(割り当て)問題のセットを解決しています。フローネットワークは、多くの問題を簡単かつ理解可能な方法でそれらに削減できるため、非常に便利です。私の場合、これらはいくつかの追加の制約との一致です。これらの制約がより複雑になるにつれて、特定の動作をモデル化するための既存の構造があるかどうか疑問に思っていました。 この場合、ノードの発信フローを単一のエッジに制限します。 グラフ場合、積分容量とコスト。任意のノードをと呼びます。直接の隣人はと呼ばれます。エッジ(赤)をいくつかの構成に置き換えて、1つのエッジのみがフローを受け取ることができるようにできますか?つまり、がフロー(例:)を取得した場合、他の(赤い)エッジはフローを受信できません。C (U 、V )、K (U 、V )A B 1、。。B N A B 1、。。。A B nG=(V,E)G=(V,E)G=(V, E)c(u,v)c(u,v)c(u,v)k(u,v)k(u,v)k(u,v)AAAB1,..BnB1,..BnB_1, ..B_nAB1,...ABnAB1,...ABnAB_1,...AB_n 5 / 10AB1AB1AB_15/105/105/10 中間ノード/エッジを追加して、コストと容量を試すことができます。私たちの新しい建設の総容量は同じままでなければならず、さまざまな代替案のコストは何らかの形で比例し続けなければなりません。 だから私の質問は: このような構造は一般にありますか?(任意のキーワード、リンク、論文) 私の特定の問題の解決策を提案できますか?


2
有向グラフで指定された2つの頂点間の単純なパスで頂点を見つける方法
有向グラフと2つの異なる頂点SおよびTが与えられた場合、SからTへの少なくとも1つの単純なパス上にあるすべての頂点を見つける多項式時間アルゴリズムはありますか? Sの後継でありTの先行でもあるすべての頂点を見つけることは難しくありませんが、これは上記のセットのスーパーセットにすぎません。たとえば、次のグラフについて考えてみます。S-> a; a-> b; b-> c; b-> T; c-> a a、b、cはすべてSの後継でTの前身ですが、SからTへcを通過する単純なパスはありません(cを経由するSからTへのすべてのパスには2回のaとbが含まれるため)。 密接に関連する問題は次のとおりです。有向グラフと3つの異なる頂点SおよびTとIが与えられた場合、SからTへの単純なパスがIを通過するかどうかを決定する多項式時間アルゴリズムがあります。 この後者の問題に対する多項式時間アルゴリズムは、前者に多項式アルゴリズムを構築するために使用できます。これは、Iをグラフ内のすべてのノードで置き換えることによって連続的に適用できるため(または、Sの後続ノードであるすべてのノードに対してより効率的にTの前身)。

5
応用グラフ理論の標準またはトップテキスト
応用グラフ理論とグラフアルゴリズムに関する参考テキストを探しています。ほとんどのコンピュータサイエンスプログラムで使用されている標準テキストはありますか?そうでない場合、フィールドで最も尊敬されているテキストは何ですか?私はコーメン他を持っています。

4
オイラーパスを見つけるのはハミルトニアンパスを見つけるのにPではないことを理解するのは直感的ですか?
よくわかりません。私が理解していることから、エッジと頂点は互いに補完的であり、この違いが存在することは非常に驚くべきことです。 実際にハミルトニアンパスを見つけることは、オイラーパスを見つけるよりもはるかに難しいことを確認するための良い/迅速/簡単な方法はありますか?

1
行列が1の1つの接続された領域で構成されるように、最小数1を見つける
ましょであるマトリックス。2つのエントリが水平または垂直に隣接していて、両方のエントリが1である場合、それらは隣接していると言います。追加する1の最小数を見つけたいので、すべての1は一連のネイバーを通じて別の1に到達できます。MMM(0,1)(0,1)(0, 1)111111111 例: 100 000 001 ここでは3 1が必要です111: 100 100 111 追加する111の最小数とその場所を効率的に見つけるにはどうすればよいですか?

1
kxk正方グリッドグラフのツリー幅
私がグーグルで見つけたいくつかのスライドによると、任意の正方形グリッドグラフのツリー幅はです。ツリー幅とツリー分解について研究を始めたばかりで、ほとんどの場合それは理にかなっています。しかし、私は特に正方グリッドグラフのケースに興味がありますが、そのような幅の狭いグラフをツリー分解することがどのように可能であるかについて苦労してきました。k×kk×kk \times k GGGtw(G)=ktw(G)=ktw(G) = kk×kk×kk \times k (幅がである分解ツリーを確実にするために)以下のグループを持つ小さな正方形グリッドの分解ツリーを描画しようとするときに遭遇する問題の1つは、グラフが "循環的"であるため、コーナーノードは、ツリーの2つの反対側の端に表示されますが、2つの間のパス上のノードには表示されません。これは明らかに、分解ツリーのコヒーレンスプロパティに違反しています。これは、Wikipedia(ほとんどの場合よりも正確な定義)によると、次のとおりです。k+1k+1k+1kkk 場合、、及び(分解ツリー内の)ノード、及びあるからパス上にあるに、次いで 。XiXiX_{i}XjXjX_{j}XkXkX_{k}XkXkX_{k}XiXiX_{i}XjXjX_{j}Xi∩Xj⊆XkXi∩Xj⊆XkX_{i}\cap X_{j}\subseteq X_{k} 以下の場合の:私は2つのノードが含まれていると考えることができ(Iが有効であると信じるもの、または少なくとも)グラフ、唯一の有効な分解ツリーここで、ノードは左上隅から始まる行でラベル付けされています。3×33×33 \times 3{{1,2,3,4,6,7,8,9},{2,4,5,6,8}}{{1,2,3,4,6,7,8,9},{2,4,5,6,8}}\{\{1, 2, 3, 4, 6, 7, 8, 9\}, \{2, 4, 5, 6, 8\}\} 1 2 31 2 31\space2\space3 4 5 64 5 64\space5\space6 7 8 97 8 97\space8\space9 これを行うには、最初のツリーノードの周囲の頂点と、隣接する頂点とともに内側の頂点()を取得して、すべてのエッジと頂点が含まれるようにします。555 結局のところ、私の質問は、正方形正方形グリッドグラフのツリー幅を実際にはどのようにしてに等しくできるのかということです。これが正しい場合、このプロパティを示す分解ツリーの簡単な例を提示/説明できますか?k×kk×kk \times kkkk

2
N項ツリーの事前、事後、および順序付きウォークは何を意味しますか?
このWikipediaの記事で説明されているツリートラバーサルメソッドは、予約注文、注文注文、および注文注文です。これらの方法は二分木に限定されていますか?アルゴリズムは、左と右の子に関して定義されているようです。n進ツリーに使用できる場合、どのようにですか? n-aryツリーには、任意のノードに1つの親とnの子があります。ここで、nは各ノードの任意の整数です。 必要な場合は、下の図を使用してこれを説明してください。

2
MSTの更新
無向、接続、加重グラフが与えられた場合 G=(V、E、w)G=(V,E,w)G = (V,E,w) どこ www 重み関数です w:E→Rw:E→Rw: E \to \mathbb{R}そして最小スパニングツリー(MST)の。 今、私たちは減少によって重量をエッジのんではないに属し。 TTTGGGkkkeeeTTT を効率的に更新してMST(と表記)にする方法TTTT』T′T')の G』=(V、E、w』)G′=(V,E,w′)G'=(V,E,w')、 どこ w』w′w' と同じです www それ以外で w』(e)=w(e)−kw′(e)=w(e)−kw'(e) = w(e) - k? 更新のアルゴリズムTTT に T』T′T' 簡単です:追加 eee に TTT サイクルを作成します CCC に TTT。しましょうe』e′e' サイクルの最大加重エッジになる CCC。もしw(e』)>w』(e)w(e′)>w′(e)w(e') > w’(e)、その後 T』=T∪{e}−{e』}T′=T∪{e}−{e′}T' = T \cup \{e\} - \{e'\}必要に応じてMSTを指定します。さもないと、T』=TT′=TT' = T。 私は矛盾によってその正しさを証明するのが難しい。と思いますT″T′′T'' …

1
ノードにポートがあるグラフの用語
グラフは、数学、コンピュータサイエンス、エンジニアリングの分野で明確に定義された概念であり、それらに依存しています。ただし、特定のドメインまたはアプリケーションで(有向)グラフを実際に実装するには、エッジが頂点を接続するだけでなく、これらの頂点に存在するポートを接続する必要がある場合があります。有向グラフでは、これは入力ポートと出力ポートの分離を意味します。通常、エッジは出力ポートから始まり、入力ポートに到達します。 例は簡単に見つけることができます:シェーダーデザインツール、コンパイラ理論のシグナルフローグラフ、電子スキーマ、高レベルETLスクリプト...これらのツールはすべて、頂点に名前付きまたは異なる入力と出力が必要です。 さて、私の質問です。これらの種類のグラフに理論と命名法はありますか、またはこれは工学科学の「実装問題」と見なされていますか?私の質問からお気づきのように、私はこのようなもの(「ノードポート付きのグラフ」)が何であるかを正確に特定することはできません。その答えが知りたいです。

2
DAGの各ノードの子孫の数
1)DAGの各頂点の子孫の数を計算するために、単純なO(| E |。| V |)よりも優れたアルゴリズムはありますか? 2)ノードが1つずつ追加され、既存のノードの空でないサブセットに接続すると想定して、これを行うオンラインアルゴリズムはありますか? コンテキスト:m = O(n)、何百万もの頂点、通常は数千万のエッジの場合に興味があります。または、シンクでもある子孫の数を数えると便利です。 すべてのノードの子孫のセットを表す方法として、確率論的アプローチはmin-hashingです。min-hash構造の和集合は取るに足らないものであり、un-hashの一致の数から和集合の基数を推定できます。 ただし、DAGを伝播するときの動作がどの程度かはわかりませんが、直感的には、エラーがかなり速く複合するように見えます。 非常に関連:https : //cstheory.stackexchange.com/questions/553/what-bounds-can-be-put-on-counting-reachable-nodes-in-a-dag そして実際には:https:// cstheory.stackexchange.com/questions/18787/what-is-the-fastest-deterministic-algorithm-for-incremental-dag-reachability

2
特定のノードを通過する最短経路
私は自分の問題の効率的な解決策を見つけようとしています。G100個のノード(各ノードに番号が付けられています)を含む正の重み付きグラフがあり、それが非循環グラフであると仮定しましょう。したがって、2、2、2、1などのエッジは存在できません。ノードのリストを取得しましたG。グラフから10としましょう。これらの各ノードも配列にあるとしましょう。そのリストから、ノード1から100までの、それらのノードの少なくとも特定の(5つとしましょう)を通過する最短パスの総重みを見つける方法を探しています。 簡略化するために、0 ... 5の6つのノードを持つグラフを考えます。ノード1と4は、通過するように指定できるポイントとしてマークされています。既存のパスが0-1-2-5、0-3-4-5、および1-4であるとしましょう。ここで、3から4を除くすべてのエッジが5として重み付けされているとします。3から4は1として重み付けされます。最短パスアルゴリズムを実行すると、基本的にパス0-3-4-5が検出されます。指定されたポイントの最小量を指定して、量2を試してください。その後、アルゴリズムは15として重み付けされた0-1-4-5で実行されます。 私はこのように書きました shortestPath(destinationNode, minAmount) if(destinationNode == srcNode && minAmount < 1) return 0 else if(destinationNode == srcNode && minAmount > 1) return INFINITY int destNo = destinationNode get number int cost = INFINITY for (int i = 0; i < destNo; i++) if (d[i][destNo] != null) int …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.