クリストフィードのアルゴリズム(手動)
On 2月 1, 2021 by admin次のアルゴリズムの例に従います: https://en.wikipedia.org/wiki/Christofides_algorithm#example
The graph:
[![ここに画像の説明を入力] [1]] [1]
Calculate minimum spanning tree T:
[![ここに画像の説明を入力] [2]] [2]
Calculate the set of vertices O with odd degree in T
「すべての頂点の次数が奇数であるため、最小スパンツリーT “。
Form the subgraph of G using only the vertices of O
(すべてが奇数であるため、元のグラフが得られるはずです)[![ここに画像の説明を入力してください] [1]] [1]
Construct a minimum-weight perfect matching M in this subgraph
(これは正しく行われました)[![ここに画像の説明を入力してください] [3]] [3]
Unite matching and spanning tree T ∪ M to form an Eulerian multigraph
[![ここに画像の説明を入力してください] [4]] [4]
これは間違いなく正しくありません。
何が問題だったのですか?
コメント
- 注:投稿のすべての画像が消えたようです。作者はたまたまオリジナルを持っていますか?
回答
実際、あなたはずっと正しかった。ただし、クリストフィードのアルゴリズムはまだ完了していません。
次のステップは「オイラーツアーの計算」です。
最後の画像 、すべての頂点の次数が偶数であるマルチグラフを取得しました。したがって、オイラー路が必要です。たとえば、オイラーパスA-> F-> A-> C-> B-> D-> E-> D-> Aを選択しましょう。
最後のステップは「繰り返される頂点を削除する」です。 、アルゴリズムの「出力」を与えます。
上記のパスの2番目のAと2番目のDを削除すると、必要な出力A-> F-> C-> B-> D-> E-> Aが得られます。 。完了。
特定のグラフにクリストフィードアルゴリズムを適用することはあまり意味がないことに注意してください。
「クリストフィードアルゴリズムは、
移動セールスマンの問題、距離がメトリック空間を形成する場合(対称であり、三角形の不等式に従う “。d(B、D)+ d(D、E)= 1 + 4 < 6 = d(B)であるため、指定された距離は三角形の不等式に従いません。 、E)。さらに、AとBの間の(直接の)距離は示されておらず、これが旅行中のセールスマンの問題であるかどうか疑問が生じます。
コメント
- 初めてですので、サイドノートありがとうございます! いくつか質問があります: 1.有効なTSPであるためには、各頂点を互いに接続する必要がありますか?つまり、" TSP "ルートを作成することは、そのルートが欠落している場合でも可能であるため、有効だと思いますが、私は以前間違っていました。 2. 三角不等式に従うように、グラフ内のいくつかの頂点の重みをこのように増やすことができるかどうかを考えます(または知っていますか)。乱雑に見えるグラフの方が、実際の地図のシナリオを表現するのに適していると思います。そのため、'そのまま作成しました。
- 1。たとえば、都市間の欠落しているすべての直接距離が十分に大きいか、単に無限大であると仮定した場合、これをTSPとして扱うことができます。このように、これらの欠落した距離はソリューションに影響を与えません。しかし、それはまだ距離空間ではありません。 2.三角不等式に従うには、指定した各距離に10を追加し、欠落しているすべての距離を20にすることができます。
- これは当てはまりません:" 最後の画像で、すべての頂点の次数が偶数であるマルチグラフを取得しました。 "-頂点E、D、A、およびFの次数が奇数です。
- " マルチグラフ "、複数のエッジ、つまり同じエッジを持つことが許可されているグラフエンドノード。 DとEの間には2つのエッジがあります。AとFの間には2つのエッジがあります。
- ウィキペディアで例を確認することもできます。 "そのパスで頂点に複数回アクセスするため、これはオイラーパスではありません"。オイラーパスとは、各エッジを1回だけ訪問することです。あなたはハミルトン経路について話している。
コメントを残す