Чому TSP не потребує повторення міст?


9

Мені здається дивним, що TSP заперечує можливість повторних міст. Мета цього мандрівного продавця - поїхати якомога швидше та відвідати всі міста, правда? Що робити, якщо швидше подорожувати містом, у якому ви вже були?


2
Я впевнений, що це довільно. Лише в рідкісних випадках, які дозволяють повторним містам, було б важливо змінити (ніколи в метричній TSP). Тож проблеми навряд чи різні. Причина, ймовірно, історична.
Karolis Juodelė

8
Я чув, що продавець продає дійсно погані товари, і було б нерозумно зустріти своїх старих клієнтів :)
ssch

Відповіді:


3

Не має значення, як саме ви її визначаєте, оскільки це лише спосіб моделювання проблеми в реальному світі. У TSP у вас просто набір міст і вартість проїзду між кожною парою. Це не виключає можливості того, що в реальній ситуації, яку ви моделюєте, найкращий маршрут між B і C міг би пройти A. Якщо це було так, так, так, маршрут, який моделюється як ABCA в TSP, може дуже добре включати проїзд через A додатковий час на шляху від B до C, але така деталь відстежується далеко в TSP-моделі.


1
Справедливий момент, але я хотів би зазначити, що TSP часто використовується в реальних ситуаціях. Чи прощається вимога щодо повторення при впровадженні реальних програм?
danmcardle

@danmcardle Це залежить від програми.
Том ван дер Занден

2

Я погоджуюся, що обмеження виглядає дивним, і для багатьох практичних ситуацій воно не доречне. Як наголосив Девід у своїй відповіді, якщо ви можете змінити моделювання самостійно, то це насправді не має значення. Але з огляду на незмінний екземпляр, це призведе до зміни, оскільки загальний TSP з цим обмеженням не є приблизним в жодному постійному факторі, тоді як розслаблення обмеження на один візит, схоже, робить його приблизним у межах коефіцієнта 2 (навіть якщо це не метричний ). Якщо я чогось не пропускаю, за стандартними аргументами ви спершу можете побудувати дерево, що має мінімальний розмір (наприклад, вартості)c), а потім відвідайте це дерево з технікою туру Еулера. Зрозуміло, тоді загальна вартість вашого туру2c (двічі кожен край). За протиріччя, якщо існувала екскурсія вартістю меншеc, тоді ця екскурсія може бути використана для отримання MST вартістю менше c, що є протиріччям.


1

З огляду на будь-яку екскурсію з повторами, ви можете придумати коротший тур, який не повторить жодне місто. Наприклад, розглянемо екскурсію за формою

АХАY,
які відвідує Адвічі. Ви можете скористатися ярликом під час другого візиту доА, прямуючи звідси Х до Y:
АХY.

Це може бути найкоротший шлях з Х до Y проходить через А, але це вже інкапсульоване в краю ХY. Можна придумати згадку проА не як "проходить" А а радше "зупинка на" А. Вам потрібно зупинитися лише наА один раз, хоча ви можете пройти А декілька разів.

Фактичні алгоритми для TSP могли б мати цей крок "прийняття ярликів", наприклад алгоритм Христофідеса. Дивіться, наприклад, цей опис або той коротший рахунок .


4
Ви припускаєте метричну TSP (тобто, нерівність трикутника має місце). Однак загальна TSP не має нерівності трикутника. Наприклад, у вас могли бути містаА,Х1,,Хн, де г(А,Хi)=1 і г(хi,хj)=100 для усіх i,j. Найкоротший тур з повторамиАХ1АХ2ААХнА, з вартістю 2н+1 але найкоротший тур без повторів АХ1ХнА, з вартістю 100н-98.
Девід Річербі

Звичайно, але (1) ОП, здається, зацікавлена ​​в реальних програмах TSP, які є метричними, а (2) неметричні TSP не так цікаві (оскільки це занадто складно).
Yuval Filmus

2
@ YuvalFilmus реального світу TSP не є необхідною метрикою. Час від поїздів від А до В займе більше часу, ніж AC + CB, оскільки на дорозі від А до Б.
трафік

1
@Babibu Відстань на межі (А,Б)- найкоротша відстань від сА до Б. У вашому випадку пряма дорога зА до Бне найкоротша відстань.
Yuval Filmus

0

На це немає загальної відповіді, окрім "люди не дурні". Вони застосують рішення, яке відповідає їх ситуації. Рідко люди переймаються самою проблемою продавця подорожей. У класичному випадку, реальний продавець у світі буде більше стурбований проблемою максимізації своїх доходів за певний часовий період у межах певного набору обмежень. У цьому випадку проблеми загальна пройдена відстань є лише одним із ряду різних факторів, які шукають оптимальну відповідь.


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 -> A -> Y замість X -> Y - це не лише ярлик, він також охоплює місто A.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.