TSPが都市の繰り返しを必要としないのはなぜですか?


9

TSPが繰り返し都市の可能性を否定しているのは奇妙に思えます。この巡回セールスマンの目標は、できるだけ速く移動してすべての都市を訪問することですよね?では、すでに行った都市を旅する方が速い場合はどうでしょうか。


2
それは恣意的だと​​確信しています。まれな場合にのみ、都市の繰り返しを許可しても違いが生じます(メトリックTSPでは決して違いません)。したがって、問題はほとんど変わりません。その理由はおそらく歴史的なものです。
KarolisJuodelė2013年

8
セールスマンが本当に悪い製品を売っていると聞いたので、彼の古い顧客に会うのは賢明ではないでしょう:)
ssch

回答:


3

これは実際の問題をモデル化するための単なる方法であるため、どのように定義するかは問題ではありません。TSPでは、都市のセットと、都市の各ペアの間を移動するためのコストのみがあります。これは、モデル化している実際の状況で、BとCの間の最適なルートがAを通過する可能性を排除するものではありません。その場合、はい、TSPでABCAとしてモデル化されたルートは、 BからCへの途中で余分な時間Aをドライブすることが非常によく含まれていますが、そのような詳細はTSPモデルで抽象化されています。


1
妥当なポイントですが、TSPは実際の状況でよく使用されることを指摘しておきます。実世界のアプリケーションを実装する際に、繰り返し禁止の要件は許容されますか?
danmcardle 2013年

@danmcardleアプリケーションによって異なります。
トムファンデルザンデン、

2

制約が奇妙に見え、多くの実際的な状況では関係がないことに同意します。Davidが彼の回答で指摘したように、自分でモデリングを変更できる場合、それは実際には重要ではありません。ただし、変更不可能なインスタンスが与えられると、この制約のある一般的なTSPは定数係数内で近似できないため、違いが生じます。一方、単一訪問制約を緩和すると、係数2内で近似可能になるようです(ただし、メトリックではありません)。 )。私が何かを見落とさない限り、標準の引数では、最初に最小コストのスパニングツリー(コストは)を作成し、次にオイラーツアーテクニックでこのツリーにアクセスできます。明らかに、ツアーの合計費用は2 c (各エッジの2倍)になります。矛盾して、より少ないコストのツアーが存在した場合c2c場合、このツアーを使用して、 c未満のコストのMSTを推測できます。これは矛盾です。cc


1

繰り返しのあるツアーを考えると、どの都市も繰り返さない、より短いツアーを考え出すことができます。たとえば、フォームのツアーを検討 訪問Aを二回。A 2回目の訪問で、XからYに直行するショートカットを取ることができます: A X Y

AXAY,
AAXY
AXY.

からYへの最短経路はAを通過するかもしれませんが、それはすでにエッジX Yでカプセル化されています。あなたはの言及を考えることができるAではない「通過」としてA「で停止する」のではなく、AAを数回通過する可能性がありますが、Aで一度停止するだけで済みます。XYAXYAAAAA

TSPの実際のアルゴリズムは、たとえばChristofidesのアルゴリズムのように、この「近道」のステップを持つことができます。たとえば、この説明またはその短いアカウントを参照してください。


4
A,X1,,Xnd(A,Xi)=1d(xi,xj)=100i,jAX1AX2AAXnA2n+1AX1XnA100n98

もちろん、(1)OPは、メトリックであるTSPの実際のアプリケーションに関心を持っているようであり、(2)非メトリックTSPはそれほど興味深いものではありません(難しすぎるため)。
Yuval Filmus 2013年

2
@YuvalFilmusの実際のTSPは必要なメトリックではありません。B.へAから道路上の交通があるようにAからBへの移動いくつかの時間が長く、次いでAC + CBを取る
イリヤGazman

1
(A,B)ABAB

0

「人は愚かではない」ということを除いて、これに対する一般的な答えはありません。彼らは彼らの状況に適したソリューションを適用します。巡回販売員の問題自体にかかわる人はめったにいません。古典的な場合のイブ、実際の営業担当者は、特定の一連の制約内で特定の期間にわたって収入を最大化するという問題にもっと関心を持つでしょう。この問題の例では、移動した距離の合計は、最適な答えを見つけるために使用するさまざまな要因の1つにすぎません。


0

繰り返しが許可されている場合は、すべての接続X-> A-> Yを調べ、X-> Yより短い場合は、X-> Yの長さをX-> A->の長さに置き換えます。 Y、そして標準アルゴリズムで結果として生じる問題を解決します。変更がなくなるまで交換プロセスを繰り返す必要があると思います。これは、X-> Yの接続が短い場合、X-> Y-> ZがX-> Yよりも短いことを意味する可能性があるためです。

変更した接続を追跡し、ソリューションの接続を確認します。ソリューションにX-> Yが含まれている場合は、X-> A-> Yに置き換えます。

PS。私の考えは素晴らしいと思いますが、現時点でそれが正しいかどうかはよくわかりません。X-> YではなくX-> A-> Yは単なるショートカットではないため、都市Aもカバーします。

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