タグ付けされた質問 「spanning-trees」

接続された無向グラフGの全域木は、Gのすべての頂点といくつかのエッジを持つ木です。

7
最小スパニングツリーと最短パス
最小スパニングツリーアルゴリズムと最短パスアルゴリズムの違いは何ですか? 私のデータ構造クラスでは、2つの最小スパニングツリーアルゴリズム(PrimおよびKruskal)と1つの最短パスアルゴリズム(Dijkstra)を取り上げました。 最小スパニングツリーとは、すべての頂点にまたがるグラフ内のツリーであり、ツリーの総重量は最小です。最短経路は非常に明白であり、ある頂点から別の頂点への最短経路です。 私が理解していないのは、最小スパニングツリーの総重量が最小であるため、ツリー内のパスは最短パスではないということです。誰かが私に欠けていることを説明できますか? どんな助けも大歓迎です。

6
単純なグラフの2つのスパニングツリーには、常にいくつかの共通エッジがありますか?
いくつかのケースを試してみましたが、単純なグラフの2つのスパニングツリーには共通のエッジがあることがわかりました。これまでのところ、反例は見つかりませんでした。しかし、私はこれを証明または反証することもできませんでした。この推測を証明または反証する方法は?

3
グラフの最小スパニングツリーが一意ではない場合
重み付きの無向グラフGが与えられた場合:Gに複数の最小全域木が存在するために、どの条件が当てはまらなければならないか すべての重みが異なる場合、MSTは一意であることを知っていますが、このステートメントを逆にすることはできません。グラフに同じウェイトの複数のエッジがある場合、複数のMSTが存在する可能性がありますが、1つだけ存在する場合もあります。 この例では、左側のグラフには一意のMSTがありますが、右側のグラフにはありません。 MSTの非一意性の条件を見つけるのに最も近い方法は次のとおりです。 グラフGのすべてのコードレスサイクル(他のサイクルを含まないサイクル)を検討します。これらのサイクルのいずれかに最大重み付きエッジが複数回存在する場合、グラフには一意の最小スパニングツリーがありません。 私の考えは、このようなサイクルのために n個の頂点がある場合、エッジの1つだけを除外し、すべての頂点を接続することができます。したがって、MSTを取得するために最も高い重みを持つエッジを削除するには複数の選択肢があるため、MSTは一意ではありません。 しかし、次にこの例を思いつきました。 このグラフには、私の条件に合ったサイクルがあることがわかります:(E、F、G、H)しかし、私が見る限り、最小スパニングツリーは一意です: したがって、私の状態は正しくないようです(または、完全に正しくない可能性があります)。最小スパニングツリーの非一意性に必要かつ十分な条件を見つけるための助けに感謝します。

2
重み付きグラフの最小全域木は、与えられた重みで同じ数のエッジを持っていますか?
重み付きグラフに2つの異なる最小全域木およびがある場合、任意のエッジに対して、同じ重みを持つのエッジの数(自体を含む)は、と同じ重みを持つのエッジの数と同じですか?ステートメントが真である場合、どのようにそれを証明できますか?T 1 = (V 1、E 1)T 2 = (V 2、E 2)e E 1 E 1 e e E 2 eGGGT1=(V1,E1)T1=(V1,E1)T_1 = (V_1, E_1)T2=(V2,E2)T2=(V2,E2)T_2 = (V_2, E_2)eeeE1E1E_1E1E1E_1eeeeeeE2E2E_2eee

4
グラフには2つまたは3つの異なる最小全域木がありますか?
特定のグラフGに2つの異なる最小全域木があるかどうかを検出する効率的な方法を見つけようとしています。また、3つの異なる最小スパニングツリーがあるかどうかを確認する方法を探しています。私が考えた素朴な解決策は、クラスカルのアルゴリズムを一度実行して、最小スパニングツリーの総重量を見つけることです。後で、グラフからエッジを削除してクラスカルのアルゴリズムを再度実行し、新しいツリーの重みが元の最小スパニングツリーの重みであるかどうかをチェックします。グラフの各エッジについても同様です。ランタイムはO(| V || E | log | V |)であり、これはまったく良くありません。もっと良い方法があると思います。 どんな提案でも役立つでしょう、事前に感謝します

2
k-bounded spanning tree問題がNP完全なのはなぜですか?
あなたは無向グラフ有する場合ツリーの問題があるスパニング-bounded G (V 、Eを)し、それは各頂点が高々度持つようにスパニングツリーがあるかどうかを決定する必要がありkは。kkkG (V、E)G(V、E)G(V,E)kkk の場合、これはハミルトニアンパス問題であることがわかります。ただし、k > 2の場合は問題があります。k = 2の既存のスパニングツリーにノードを追加できるという意味でそれを考えてみました。おそらくベースがNP完全であるため、追加するとNP完全にもなりますが、そうではないようです正しい。私はCSを自習しており、理論に問題があるので、どんな助けでも感謝します!k = 2k=2k=2k > 2k>2k>2k = 2k=2k=2

2
二重重みパラメータを持つ最小スパニングツリー
グラフ考えG(V,E)G(V,E)G(V,E)ます。各エッジeeeは2つの重みAeAeA_eとBeBeB_eます。製品最小化スパニングツリー検索(∑e∈TAe)(∑e∈TBe)(∑e∈TAe)(∑e∈TBe)\left(\sum_{e \in T}{A_e}\right)\left(\sum_{e \in T}{B_e}\right)。アルゴリズムは、に関して多項式時間で実行する必要があります。V | 、| E | |V|,|E||V|,|E||V|, |E|。 スパニングツリー(Kruskal、Prim、Edge-Deletion)に従来のアルゴリズムを適用することは困難です。解決方法 ヒントはありますか?

1
絞り込みタイプの推測
職場では、動的言語に関する型情報を推論する必要があります。次のように、ステートメントのシーケンスをネストされたlet式に書き換えます。 return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then { T; Z } else { F; Z } 一般的なタイプ情報から始めて、より具体的なタイプを推測しようとしているので、自然な選択は絞り込みタイプです。たとえば、条件演算子は、trueブランチとfalseブランチの型の和集合を返します。単純なケースでは、非常にうまく機能します。 ただし、次のタイプを推測しようとしたときに、思わぬ障害に遭遇しました。 function …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

1
修正されたBorůvkaのアルゴリズムのより厳密な分析
Borůvkaのアルゴリズムは、グラフのスパニングツリー最小を計算するための標準的なアルゴリズムの一つであると。G=(V,E)G=(V,E)G = (V,E)|V|=n,|E|=m|V|=n,|E|=m|V| = n, |E| = m 擬似コードは次のとおりです。 MST T = empty tree Begin with each vertex as a component While number of components > 1 For each component c let e = minimum edge out of component c if e is not in T add e to T …

3
すべてのエッジの重みが等しい場合、BFSを使用して最小のスパニングツリーを取得できますか?
グラフのすべてのエッジが与えられた場合 GGG 等しい重量です ccc、線形時間で最小のスパニングツリーを生成するために、幅優先検索(BFS)を使用できますか? BFSはノードを2回訪問せず、頂点からトラバースするだけなので、直感的にこれは正しいように聞こえます vvv 頂点へ あなたuu 訪れたことがない場合 あなたuu 以前は、サイクルが発生しないように、 GGG接続されている場合、最終的にすべてのノードにアクセスします。すべてのエッジの重みは等しいため、BFSが選択したエッジは関係ありません。 私の推論は意味がありますか?

1
一意の最小全域木に必要かつ十分な条件
これは、Jeff Erickson Lecture 20:Minimum Spanning Trees [Fa'13] による優れた講義ノートからの運動問題(例3)です。 次の条件が満たされる場合に限り、エッジ重み付けされたグラフに一意の最小全域木があることを証明します。GGG の頂点を2つのサブセットに分割する場合、各サブセットに1つの端点がある最小重みのエッジは一意です。GGG 任意のサイクルの最大重みエッジは一意です。GGG "⇒⇒\Rightarrow」方向と次のグラフます。GGG GGGには独自のMSTがあります。ただし、パーティションおよび{ A }{あ}\{A\}{ B 、C}{B、C}\{B,C\}場合、最小重みのクロッシングエッジは一意ではありません。 誤解した点はありますか?または、定理に欠陥がある場合、どうすれば修正できますか?


2
MST:Primのアルゴリズムの複雑さ、なぜ
CLRSによると、プリムのアルゴリズムは以下のように実装されています- MST-PRIM(G,w,r)MST-PRIM(G,w,r)\mathtt{\text{MST-PRIM}}(G,w,r) 毎u∈V[G]u∈V[G]u \in V[G]を行います key[u]←∞key[u]←∞\mathtt{\text{key}}[u] \leftarrow \infty π[u]←NILπ[u]←NIL\pi[u] \leftarrow \mathtt{\text{NIL}} key[r]←0key[r]←0\mathtt{\text{key}}[r] \leftarrow 0 Q←V[G]Q←V[G]Q \leftarrow V[G] 一方、 // ... O (Q≠∅Q≠∅Q \ne \emptysetO(V)O(V)O(V) ← EXTRACT-MIN(u ) // ... O (lguuu ←←\leftarrow EXTRACT-MIN(u)EXTRACT-MIN(u)\mathtt{\text{EXTRACT-MIN}}(u)O(lgV)O(lg⁡V)O(\lg V) それぞれの //ん... O (E )v∈adj[u]v∈adj[u]v \in \mathtt{\text{adj}}[u]O(E)O(E)O(E) もしとW (U 、V )> キー [ V ]v∈Qv∈Qv \in …

1
ヒントが必要です!KargerのアルゴリズムとKruskalのスパニングツリー分布
G =(V、E)を、n個の頂点とm個のエッジを持つ単位容量グラフとします。 TがGのすべての全域木を表すとしましょう。 Kargerのアルゴリズムを実行すると、収縮したエッジによって形成されたTのランダムスパニングツリーが得られます。このスパニングツリーの分布をD1で表します。 一方、(0,1)のランダムな重みを各エッジに割り当て、クラスカルのアルゴリズムを使用して最小全域木を計算すると、T上の別の分布D2が得られます。 分布D1とD2が同一であることを示します。 どこから始めればいいのかわかりません。ヒントは役に立ちます!
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.