Wydaje mi się dziwne, że TSP zaprzecza możliwości powtarzania się miast. Celem tego podróżującego sprzedawcy jest pójść jak najszybciej i odwiedzić wszystkie miasta, prawda? Co jeśli szybsze jest podróżowanie przez miasto, w którym już byłeś?
terminology
traveling-salesman
Danmcardle
źródło
źródło
Odpowiedzi:
Nie ma znaczenia dokładnie, jak go zdefiniujesz, ponieważ jest to tylko sposób modelowania rzeczywistego problemu. W TSP masz po prostu zestaw miast i koszty podróży między nimi. Nie wyklucza to możliwości, że w rzeczywistej sytuacji, w której modelujesz, najlepsza trasa między B i C może przebiegać przez A. Jeśli tak, to tak, trasa modelowana jako ABCA w TSP może bardzo dobrze naprawdę wiąże się z przejechaniem dodatkowego czasu A w drodze z B do C, ale takie szczegóły są wyabstrahowane w modelu TSP.
źródło
Zgadzam się, że ograniczenie wygląda dziwnie i w wielu praktycznych sytuacjach nie ma znaczenia. Jak zauważył David w swojej odpowiedzi, jeśli możesz sam zmienić modelowanie, to tak naprawdę nie ma to znaczenia. Ale biorąc pod uwagę niemodyfikowalną instancję, zrobi to różnicę, ponieważ ogólny TSP z tym ograniczeniem nie jest możliwy do przybliżenia w ramach żadnego stałego czynnika, podczas gdy rozluźnienie ograniczenia pojedynczej wizyty wydaje się przybliżać w ramach współczynnika 2 (nawet jeśli nie jest metryczny ). O ile mi coś nie umknie, za pomocą standardowych argumentów możesz najpierw zbudować drzewo rozpinające o minimalnym rozmiarze (na przykład kosztdo ), a następnie odwiedź to drzewo za pomocą techniki euler tour. Oczywiście całkowity koszt wycieczki jest wtedy2 c (dwa razy na każdej krawędzi). Przeciwnie, jeśli istniała wycieczka o koszcie mniejszym niżdo , to ta trasa może być wykorzystana do ustalenia MST kosztu mniejszego niż do , co jest sprzecznością.
źródło
Biorąc pod uwagę każdą trasę z powtórzeniami, możesz wymyślić krótszą trasę, która nie powtórzy żadnego miasta. Rozważmy na przykład prezentację formularza
Może to być najkrótsza drogaX do Y przechodzi przez A , ale jest to już zamknięte w krawędzi X→Y . Możesz wymyślić wzmiankę oA nie jako „przechodzenie” A ale raczej „zatrzymanie się” A . Musisz tylko zatrzymać się naA raz, choć możesz przejść A kilka razy.
Rzeczywiste algorytmy dla TSP mogłyby mieć ten etap „przyjmowania skrótów”, na przykład algorytm Christofidesa. Zobacz na przykład ten opis lub to krótsze konto .
źródło
Nie ma na to ogólnej odpowiedzi, z wyjątkiem „ludzie nie są głupi”. Zastosują rozwiązanie odpowiednie do ich sytuacji. Rzadko ludzie są zainteresowani samym problemem sprzedawcy w podróży. W klasycznym przypadku, sprzedawca z prawdziwego świata byłby bardziej zainteresowany problemem maksymalizacji dochodów w danym okresie w ramach określonego zestawu ograniczeń. W tym przypadku problemu całkowity przebyty dystans jest tylko jednym z wielu różnych czynników, które wpływają na znalezienie optymalnej odpowiedzi.
źródło
Jeśli dozwolone są powtórzenia, po prostu przejrzyj wszystkie połączenia X -> A -> Y, a jeśli jest on krótszy niż X -> Y, to zamień długość X -> Y na długość X -> A -> Y i rozwiązuj powstały problem za pomocą standardowego algorytmu. Myślę, że musisz powtarzać proces wymiany, dopóki nie zostaną wprowadzone żadne zmiany, ponieważ jeśli znajdziesz krótsze połączenie X -> Y, może to oznaczać, że teraz X -> Y -> Z jest krótszy niż X -> Y.
Śledź, które połączenia zostały zmienione, przejrzyj połączenia w rozwiązaniu, a jeśli rozwiązanie zawiera X -> Y, zamień to na X -> A -> Y.
PS. Myślę, że mój pomysł jest świetny, ale w tej chwili nie jestem pewien, czy jest poprawny. Ponieważ X -> A -> Y zamiast X -> Y to nie tylko skrót, obejmuje także miasto A.
źródło