グラフのオイラー化のための非力アルゴリズムはありますか?


7

いくつかの無向、非加重、接続された、そして潜在的に並列化されたグラフを考える G、オイラー回路は、すべての頂点の次数が偶数である場合に構築されます。G

奇数の次数の頂点が2つ以上あるグラフ(2の倍数のみが存在する場合があります)では、グラフを「乳化」し、必要に応じて、奇数の頂点を他の頂点を介して追加のエッジで接続する必要があります。

オイラー化の最適なケースは、エッジのみの構成です。ここで、は奇数の頂点の数ですが、これは、各奇数の頂点に隣接するパートナーが存在する場合にのみ該当するため、両方の頂点を1つのエッジと両方を均等にします。n/2

そうは言っても、ほとんどのグラフは以上のエッジを必要とします。人間として、私たちは常に互いに隣接している奇数の頂点の各ペアを選択し、残りに対して試行錯誤を使用することによってグラフをオイラー化する傾向があります。ただし、これは常に機能するとは限りません。/2

例えば、以下のグラフに、選択すると、隣接する奇数の頂点の対の間のエッジを追加する及び使用接続するエッジを Eulerizationすなわちコストで結果を縁。ただし、代わりにとを接続することを選択すると、隣接する奇数の頂点を使用しなかったとしても、エッジを使用するオイラー化が生成されます。125461425

MMAによって生成されたグラフ

いくつかのエッジと接続する必要がある奇数の頂点のペアの数は有限であるため、この問題は少なくともブルートフォースで解決できることは確かです。具体的には、(Mathematicaによると)で、接続する奇数の頂点のペアの可能なセットがあります。各頂点をそのパートナーにリンクして、それぞれを通過することができます(無向グラフで2つの頂点間の最短経路を見つけることは、おそらくそれ自体の課題であり、Wikipediaがに時間の複雑さを与えることはできません)。2/2Γ+12/π

結局、取引全体はおそらく多項式時間、指数時間、階乗時間で実行され、かなり厄介です。パスをオイラー化するアルゴリズムがあるかどうかについて、いくつかの基本的な調査を行いましたが、それを見つけることができないようです。

グラフィック用のMathematicaコード:

GraphPlot[
  {1 -> 2, 2 -> 5, 5 -> 3, 3 -> 6, 6 -> 3, 6 -> 7, 7 -> 6, 2 -> 7, 7 -> 8, 8 -> 9, 9 -> 10, 10 -> 4, 4 -> 11, 11 -> 4, 11 -> 12, 12 -> 1, 1 -> 12}, 
  VertexRenderingFunction -> 
    (If[#2 < 5, 
        Text[Style[#2, Large], #1, Background -> Yellow], Null] &)]

あると思います 2k 奇数の頂点の場合、可能なペアリングの数は 2kk22
Paresh 2013年

@Pareshあるとしたら 奇数の頂点、 1 最初のペアの選択、次に 次など Πk=1/22k1=MMAが言ったことは何でも。
VF1 2013年

うーん...よさそうだ。私の間違い。
Paresh 2013年

回答:


5

無向グラフに関する中国の郵便配達員問題を考えてみましょう:無向グラフを考えるG、少なくとも1回、すべてのエッジを移動するグラフの最短の回路を見つけます。今、Gオイラーである場合、オイラー回路はそのような回路の中で最も短いものです。そうでない場合、一部のエッジが複数回移動します。言い換えると、一部のエッジは複製され、回路はこれらの余分なエッジを含むグラフ上でオイラーになります。

ここで、最短の回路を取得するには、エッジの重複を最小限に抑える必要があります。これはあなたの問題と同じです。新しいグラフを見つける必要がありますH すべてのエッジがあります G、およびいくつかの追加の平行エッジ-可能な限り少ない追加のエッジ- Hオイラーです。余分な各エッジH の対応する平行エッジが G の最短の完全な回路で再び訪問されます G。言い換えれば、最適な(最小の)「オイラー化」は中国の郵便配達問題と同等です。これについてのより適切な説明については、これらの注記のセクション4(中国の郵便配達員の問題)および定義11(電子化、最小限の電子化)を参照してください。幸いなことに、これは無向グラフの多項式時間で解決できます。

以下のために中国のポストマン問題、ウィキペディアは一つの解決策を持っています。Steven SkienaのThe Algorithm Design Manual [1]の別のアルゴリズムについて説明します。

  1. 奇数次の頂点の各ペア間の最短経路を見つける GO
  2. 追加する最短パスの最適なセットを見つける G 特別なグラフで最小重みの完全一致を特定することに削減 G=VE。頂点VG の奇数次の頂点に対応する G、エッジの重み jE からの最短経路の長さとして定義されます jGマッチングは、隣接しないエッジのペアのセットであることに注意してください。したがって、マッチングの各エッジは2つの頂点を接続し、どの頂点も2つのマッチングの一部ではありません(一致した頂点は他の1つの頂点とのみ一致します)。完全一致とは、各頂点が一致した場合の一致です。これで、取得した一致するエッジごとに、2つの終了頂点がペアになっていると考えることができます。マッチングを取得する際の「最小ウェイト」の制約により、マッチングの各エッジの合計ウェイトが可能な限り小さくなることが保証されます。各エッジの重みは、その端点間の距離であるため、G、つまり、エンドポイントがペアになっているときに複製する必要のあるエッジの数です。この条件により、エッジの複製の総数がグローバルに最小限に抑えられます。このようなマッチングの取得は[2]で説明されており、Blossomアルゴリズムに基づいています。効率的な実装は、Kolmogorov [3](プレプリントコピー)によってここに実装されています。この実装は、クックとローエが[4]で提示したアイデアとレビューを改善したものです。これはできるO
  3. マッチングが取得されると、各奇数の頂点が別の奇数の頂点とペアになります。これはあなたが望むペアリングです。

したがって、奇数の頂点の数で、時間多項式(3次)で最適な "Eulerization"を取得できます。これは、中国の郵便配達問題を解決するエドモンズとジョンソン [2] による論文に基づいています。

参照:

  1. スティーブン・S・スキエナ。アルゴリズム設計マニュアル。ISBN:978-1-84800-069-8 e-ISBN:978-1-84800-070-4およびDOI:10.1007 / 978-1-84800-070-4
  2. J.エドモンズとE.ジョンソン。マッチング、オイラーツアー、中国の郵便配達。数理プログラミング、5:88–124、1973。
  3. ウラジミール・コルモゴロフ。Blossom V:最小コストの完全一致アルゴリズムの新しい実装。数学プログラミング計算(MPC)、2009年7月、1(1):43-67。
  4. W.クックとA.ローエ。最小重量の完全一致の計算。INFORMS Journal on Computing、11(2):138–148、1999年2月。

あなたのための Oステップ(1)の最短経路アルゴリズム、フロイドワーシャルを参照していますか?
VF1

1
@ VF1はい。グラフに重み付けされていないため、すべてのノードのBFSのようなものも機能します。
Paresh 2013年

答えてくれてありがとう。重み付けされた無向完全グラフを取得した後に行うことを除いて、説明したアルゴリズムではすべてが理にかなっていますGG。各ペアをどのように選びますか?
VF1 2013年

@ VF1最小重量の完全一致を見つける G。これが意味することは、すべての頂点が他の頂点と完全に一致するように、マッチングが取得されることです(完全なマッチング)。これはペアリングです。すべての頂点は、一致するエッジを通じて他の1つの頂点と正確に一致します。「最小重量」が意味することは、マッチングのエッジの総重量が最小化されることです。これは基本的に、一致する頂点の各ペア間の距離の合計が最小化されることを意味します。回答を詳細に更新します。
Paresh 2013年

ありがとう。の最小重量完全一致がGが必要でしたが、それがどのように行われるかを正確に知りたかったのです。
VF1 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.