2つのサイクルに含まれる最長のサイクル


11

次の問題はNP完全ですか?(私はそう思います)。

入力: エッジ・セットは、2つのエッジ互いに素シンプルサイクルに分解することができる無向グラフ(これらはない入力の一部)。kN,G=(V,E)

質問:長さkより大きい単純なサイクルはありますか?Gk

明らかに問題がNPであるとの最大の度合いある4が、それは助けていないようです。G4


1
「ペアを接続する最大4つのパス」について、あなたが正しいとは思わない。参照:i.imgur.com/mYL4n1V.png
svinja

1
@svinjaそうです、2つの頂点のペアの間に最大4つのペアワイズエッジのばらばらのパスが存在すると言ったはずです。
リスト

あなたのタイトルは誤解を招くものです。なぜなら、最も長い単純なサイクルは、(任意の分解において)の分解における2つのサイクルのいずれにもなり得ないためです。E
デニス

@dkuper実際には、2つの頂点の素な単純サイクルの結合を見てください。
2013年

私のポイントは、それが決してそれらの1つになることはあり得ないということではなく、時にはそれらの1つではないということです。したがって、問題は2つのうち大きい方を見つけることではありません。
Denis

回答:


2

削減の試み....

NPCである最大次数3の有向グラフ上のハミルトニアンパスからの削減[G&J]G=(V,E)

  • エッジの方向を無視し、任意のノードからの最初の深度(無向)スキャンを使用して、のエッジを2組の別個の(無向)パス(図の赤と緑)に分割します。G
  • 赤いパスを結合して、追加の「リンクノード」(図Bの紫色のノード)を追加し、無向赤い回路を作成します。緑のパスを結合して、「リンクノード」(図では紫のノード)を追加し、無向の緑の回路を作成します。
  • 各オリジナルノードトランスフォーム追加、入次数1および出次数2(図C)のをKインバウンドに黄色のノードを赤色エッジA B、及び追加K最初の送信に黄色ノードを赤色エッジB C。最後に、赤のエッジの最も外側の黄色のノードに接するbの「ラップ」パスを使用して、2番目のアウトバウンドの緑のエッジb dに向かって「k」の黄色のノードを追加します(図D)。bVkabkbckbdb

3kbVk

  • 同様に、次数2と次数1のVの元の各ノードを変換します。

k|V|G3k(|V|1)G|V|1

ここに画像の説明を入力してください

大きな画像はこちらからダウンロードできます


これは非常に美しい証明です。おそらく、パスを取得する方法を理解しやすくするために、図 'A'のエッジを指示する必要があります(私は理解できたと思います)。
2013年

@リスティング:パスの構築は有向エッジに依存しません(実際、私は回答に「無向」検索を記述しました)。任意のノードから開始して、最初に深さ方向のスキャンを行い、エッジが通過した赤でカラーリングします。次に、遭遇した最初の3次ノードに戻り、深さ方向の最初のスキャンを続行します。 ..多分それはもっと正式な定義を持っているかもしれませんが、今は私の頭に浮かびません。詳細が必要な場合はお知らせください。
Vor

エッジが「正しい」方向にトラバースされるという特性は、最後の変換によって強制されます。説明していただきありがとうございます。
2013年

0

ヴォルの答えに触発されて、私はより単純なものを与えたいと思います。

板井が厳しく証明したグリッドグラフ問題のハミルトニアンサイクル問題から始めます。

グリッドグラフのエッジセットは、水平と垂直の2つの互いに素なサブセットに分割できることが簡単にわかります。

したがって、今度は、すべての水平なものを1つの単純なサイクルに織り込み、すべての垂直なものを別の単純なサイクルに織り込む必要があります。

これは非常に簡単なタスクです。垂直の場合は、左端から右端にスイープし、垂直ギャップを接続し、連続するx座標の垂直線を接続してから、左下の最も低い頂点と右端の最も高い頂点を接続します。水平エッジについても同様に行います。

得られたグラフはまだ単純で無向であり、要件を満たしていることに注意してください。垂直フェーズと水平フェーズの最後のステップで、2つの異なる頂点ペアを処理するので、それは簡単です。

kk2k|V|

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