頂点制約で負のサイクルを見つける


11

重み付きエッジを持つグラフを考えると、特定の頂点セット少なくとも1つの頂点を含む負のサイクルをどのように見つけることができますか?ありがとう。{V1,V2,,Vk}


この質問はかなり不明瞭です。何、エッジまたは頂点の重み?何であり、V 1頂点または頂点のセットは?{V1,V2,,Vk}V1
Yixin Cao

@YixinCao注目していただきありがとうございます、編集:エッジの重み、は頂点です。V1
天一C

回答:


8

ViViViVi、思い出せば)O(nm)

サイクルを単純にする必要がある場合、頂点1つしか与えられていなくても、問題はNP完全になります。(問題へのハミルトニアンパスを減らすことができます:指定されたグラフGで指定されたソースSから指定されたシンクTへのハミルトニアンパスを見つけるには、既存のエッジの重み-1を指定し、2つのエッジを持つ人工頂点V 1を追加しますコストはそれぞれN / 2 0.01、1つはV 1からS、もう1つはTからV 1です。V1STGV1N/20.01V1STV1

v(v,v)


2
私はこの答えが私のものよりもずっと好きです。
デビッドエップシュタイン

6

入力が有向グラフであると仮定します。無向の場合にこれを行う方法がわかりません。

nnuviui+1viuiu0v

展開されたグラフのサイクルはすべて元のグラフのサイクルに戻りますが、展開されたグラフのすべてのサイクルには指定された頂点の1つが含まれます(そうでない場合、元のグラフに戻ることはできません)展開されたグラフに負のサイクルが含まれる場合、指定された頂点を含む負のサイクル。


nmn2nmO(n3m)

2
おそらくより問題が多いため、検出されるサイクルは必ずしも単純ではありません。単純な負のサイクルが必要ですか?
デビッドエップシュタイン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.