タグ付けされた質問 「weighted-graphs」

5
重み付きグラフで、エッジの重みとしてゼロを使用できますか?
ランダムグラフを生成するスクリプトを作成しようとしていますが、重み付きグラフのエッジが0の値を持つ可能性があるかどうかを知る必要があります。 実際、0をエッジの重みとして使用できることは理にかなっていますが、ここ数日でグラフを操作しており、その例を見たことはありません。

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

2
ユークリッド平面に埋め込まれたグラフの最短非交差パス(2D)
経路に自己交差が含まれないように、ユークリッド平面に埋め込まれたグラフの最短経路を見つけるためにどのアルゴリズムを使用しますか? たとえば、次のグラフでは、ます。通常、ダイクストラのアルゴリズムのようなアルゴリズムは、次のようなシーケンスを生成します。(0 、0 )→ (- 3 、2 )(0、0)→(−3、2)(0,0) \rightarrow (-3,2) [(0 、0 )→3(0 、3 )→2√(1 、2 )→4(- 3 、2 )] = 7 + 2–√。[(0、0)→3(0、3)→2(1、2)→4(−3、2)]=7+2。\left[ (0,0) \stackrel {3}{\rightarrow} (0,3) \stackrel{\sqrt{2}}{\rightarrow} (1,2) \stackrel{4}{\rightarrow} (-3,2) \right] = 7+\sqrt{2}. 完全なグラフ: 最短経路: 最短の非交差パス: しかし、ユークリッド平面上のこのパスが交差自体は、それゆえ私はしたい、この場合には、私の最短非交差シーケンスを与えるアルゴリズムを: [(0 、0 )→3(0 、3 )→3(0 、6 )→5(- 3 、2 )] = …

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 

3
範囲から描画されるエッジの重みに対するダイクストラのアルゴリズムを変更する
範囲からエッジの重みが描画された有向グラフがあるとします。ここで、は定数です。ダイクストラのアルゴリズムを使用して最短経路を見つけようとしている場合、アルゴリズム/データ構造を変更して、時間の複雑さを改善するにはどうすればよいですか?[1,…,K][1,…,K][1,\dots, K]KKKO(|V|+|E|)O(|V|+|E|)O(|V|+|E|)

2
マルコフ連鎖とは何ですか?
私は現在、マルコフチェーンの集中についていくつかの論文を読んでおり、マルコフチェーンと単純な有向加重グラフの違いを確認できません。 たとえば、記事「マルコフチェーンにおける最適な状態空間の集中」では、CTMC(連続時間マルコフチェーン)の次の定義を提供しています。 状態空間が有限CTMC を 遷移率行列 。(S,Q)(S,Q)(\mathcal{S}, Q)S={x1,x2,…,xn}S={x1,x2,…,xn}\mathcal{S} = \{x_1, x_2, \ldots, x_n\}Q:S×S→R+Q:S×S→R+Q: \mathcal{S} \times \mathcal{S} \to \mathbb{R}^+ 彼らはマルコフプロパティにまったく言及しておらず、実際、エッジの重みが確率を表す場合、確率はチェーンの現在の状態のみに依存し、パスを導くパスに依存しないため、マルコフプロパティは自明であると信じていますそれに。 他の記事では、一括性のリレーショナルプロパティについてマルコフチェーンが同様に定義されています。 マルコフ連鎖は、トリプレットとして表されます。 ここで、は有限状態セットであり、は、ある状態から別の状態に移行する確率を示す遷移確率行列であり、はシステムが特定の状態で開始する可能性を表す初期確率分布。MMM(S,P,π)(S,P,π)(S, P, \pi)SSSMMMPPPππ\pi 繰り返しになりますが、過去、未来、独立についての言及はありません。 3番目の論文Simple O(m logn)Time Markov Chain Lumpingがあります。そこでは、エッジの重みが確率であるとは述べられていないだけでなく、次のようにさえ述べています。 多くのアプリケーションでは、値は負ではありません。ただし、が意図的にとして選択され、通常は負になるアプリケーションも存在するため、この仮定は行いません。W(s,s′)W(s,s′)W(s, s')W(s,s)W(s,s)W(s, s)−W(s,S∖{s})−W(s,S∖{s})-W(s, S \setminus \{s\}) さらに、一括は、マルコフプロパティを維持しながら状態の数を減らす方法である必要があると述べられています(「同等の」状態をより大きな状態に集約することによって)。しかし、私にとっては、それは単に確率を合計しているように見え、集約された状態への/からの遷移の結果の可能性が範囲内であることを保証するものでもありません。一括処理は実際に何を保存しますか?[0,1][0,1][0,1] したがって、私が見る可能性は2つあります。 マルコフ連鎖が何であるか理解できなかった、または それらの論文でのマルコフ連鎖という用語の使用は偽物です 誰かが状況を明確にできますか? その用語を使用しているさまざまなコミュニティが実際にあるように見え、それらは大きく異なることを意味しています。これら3つの記事から、マルコフプロパティは取るに足らないか役に立たないかのように見えますが、別の種類の論文を見ると、基本的なように見えます。

1
おそらく負の重みを持つ重み付き有向非循環グラフの最小stカット
私は次の問題に遭遇しました: 実際のエッジの重みと2つの頂点sとtを持つ有向非循環グラフが与えられた場合、最小stカットを計算します。 一般的なグラフの場合、これはNP困難です。エッジの重みを逆にするだけで、max-cutを簡単に減らすことができるためです(私が間違っている場合は修正してください)。 DAGの状況はどうですか?最小カット(または最大カット)は多項式時間で解決できますか?それはNPハードであり、そうであれば、既知の近似アルゴリズムはありますか? 私はこれについて仕事を見つけようとしましたが、できなかったので(たぶん、検索で間違ったキーワードを使用しているだけかもしれません)、誰かがこれについて何か知っている(または見つける)ことを望んでいました。

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'' …

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.