TSPの3-optアルゴリズムはどのように機能しますか?


8

巡回セールスマン問題を解決するための3-Optヒューリスティックは、グラフから3つのエッジを削除し、さらに3つ追加してツアーを再完了することを理解しています。ただし、3つのエッジが削除された場合、ツアーを再結合する方法は2つしか残っていないことを指摘する多くの論文を見てきました。これは私には意味がありません。

たとえば、次のような論文[1]を見つけました。

3-optアルゴリズムも同様に機能しますが、2つのエッジを削除する代わりに、3つのエッジを削除します。つまり、3つのパスを有効なツアー1に再接続する方法は2つあります(図2と図3)。3 optの移動は、実際には2つまたは3つの2 optの移動と見なすことができます。

ただし、ツアーを再接続するには3つの方法があります。ここで何が欠けていますか?

また、誰かが可能であれば3 optのアルゴリズムにリンクしてもらえますか?私はそれを理解しようとしているだけですが、まだ明確なアルゴリズムに遭遇していません。見つけたすべてのリソースは、「3つのエッジを削除し、それらを再接続する」と言うだけです。それだけで、あいまいです。

これは、3つのエッジを削除した後、3つのオプトムーブであるように思える3つのツアーです。

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


  1. C.ニルソンによる巡回セールスマン問題のヒューリスティック

2
リンクする論文は非常に非公式なスタイルで書かれており、最初の文でTSPの非標準の定義を示しています。また、どこにも公開されていないようです。もちろん、それは質問の妥当性には影響しませんが、3-OPTの説明は、あなたが見つけたものよりもおそらく良いでしょう。
David Richerby 2014年

このレベルの論文はおそらく、興味のある読者が多かれ少なかれ明確な説明をコードに変換するのに問題がないと想定しています。これは(T)CSでは一般的です。それがあなたにとって邪魔であるならば、より多くのトレーニングを得るために、最初により基本的なものを読むことを検討してください。
ラファエル

高校生のとき、私はこれらの基本的なものはどれも見つけられません、ハハ。とにかく、ツアーを再接続するための2つ以上の方法(正確には3つ)があると確信しています。移動が2オプトの移動と同じにならないようにしています。そのため、このペーパーにその理由を記載しました。 2つだけです。私は簡単に実装できるが、何も見つからなかった決定的なアルゴリズムを探すために他の論文を探したので、私が知っていることに基づいてそれを(Javaで)実装しようとしましたが、実際にはうまくいきませんでした。 mは、再接続する方法がいくつあるかについて、まだ混乱しています。
u3l 2014年

1
2DユークリッドTSPの場合、交差する線のあるツアーは常に交差する線のない別のツアーにつながる可能性があり、ツアーが短くなります。つまり、リストするケース1のみ(初期構成の後に)が考慮されます。おそらく、その情報の一部は、あなたが引用する記事で省略されています。すなわち、彼らは保証された最適でない交差ケースを考慮/除外していません。ps各グラフにラベルを付けておくと役立つ/明確になります。つまり、イニシャル、ツアー1、ツアー2、ツアー3です。
vzn 2014年

参考文献のウィキペディア3optエントリから始めてみてください。数十年前のものもありますが、電子コピーが入手可能です。
vzn 2014年

回答:


6

脚注を見逃しました—これらの方法は、「単一の2オプトムーブと同一の接続を含まない」ことです。確かに、2つの順列しかありませんS不動点(障害とも呼ばれます)なし、つまり123 そして 132。より一般的には、k-opt move固定点のない順列を考慮するのに十分です。 t 固定小数点は kt-動きます。

アルゴリズム k-optローカル検索は次のとおりです。Christofidesのアルゴリズムによって生成されたものなど、最初のソリューションから始めます。繰り返し実行して改善を試みますk-opt:選択 k エッジを別の方法で再接続します(今回は、移動も -移動します <k)ツアーが短くなります。

これを実装する方法は、 k エッジと、おそらく何らかのインテリジェントな順序でエッジを再接続し、長さの違いを計算するすべての方法(ツアー全体の長さを再計算する必要はありません。長さの違いだけを計算します。 Ok の代わりに O); 改善が見られた場合は、切り替えて最初から繰り返します。行き詰まるまでそのように続けます。

別のバリアントは、常にすべての可能性を試し、最良の改善が得られるものを使用することです。おそらく文献で見つけることができる他の変種もあります。


1
さて...私はそれらの順列のいくつかが今、単一の2つのオプトムーブであることを逃しました。ただし、固定点が0である移動前のものを除いて、3つの異なる順列をまだ数えています。(画像を数分で投稿に編集します)
u3l 2014年

0

3つのポイントA、B、Cがあるとします。最初にswap(A、B)を実行し、次にswap(B、C)またはswap(A、C)のみを実行します。この方法では、2つの異なる可能性しかありません。


1
これは間違いなくもっと説明が必要です。
David Richerby 14

ええと...多分私は間違っています。訂正してください。2-opt:ABCDの都市があります。2つを交換してACBDを取得します。オリジナルと新しい2つの可能性-ABCDとACBD。3-opt:ABCD都市。swap(1,2)とBACDを取得します。3番目の都市を1番目または2番目のどちらかに入れ替えて、BCAD-swap(2,3)またはCABDをswap(1,3)で取得します。3つの可能性、オリジナルと2つの新しい-ABCD、BACD、BCAD。k-opt(4,5,6 ...)はどうですか?
matejs 2014年

0

4つの3オプトムーブ(2オプトではない)を見つけることができます: ここに画像の説明を入力してください 六角形のツアーに123456(左上の頂点から開始)の番号を付けた場合、他のツアーの番号は125634、124365、126534、125643になります。 、12 [3456](3456が混乱している)の混乱のサブセットです。


3
サイトへようこそ。しかし、これが質問にどのように答えるかはわかりません。Stack Exchangeのサイトでは、「関連情報はこちら」ではなく、ページの上部にある質問への回答を探しています。
David Richerby 16
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.