Tampaknya aneh bagi saya bahwa TSP menyangkal kemungkinan kota yang berulang. Tujuan dari penjual keliling ini adalah untuk pergi secepat mungkin dan mengunjungi semua kota, bukan? Jadi bagaimana jika lebih cepat melakukan perjalanan melalui kota yang sudah pernah Anda kunjungi?
terminology
traveling-salesman
danmcardle
sumber
sumber
Jawaban:
Tidak masalah bagaimana Anda mendefinisikannya karena itu hanya cara memodelkan masalah dunia nyata. Di TSP, Anda hanya memiliki satu set kota dan biaya perjalanan antara masing-masing pasangan. Itu tidak mengesampingkan kemungkinan bahwa, dalam situasi dunia nyata yang Anda modelkan, rute terbaik antara B dan C mungkin melalui A. Jika demikian, maka, rute yang dimodelkan sebagai ABCA di TSP mungkin sangat baik benar-benar melibatkan mengemudi melalui waktu tambahan dalam perjalanan dari B ke C tetapi detail tersebut disarikan dalam model TSP.
sumber
Saya setuju bahwa batasannya terlihat aneh, dan untuk banyak situasi praktis, itu tidak relevan. Seperti yang ditunjukkan oleh David dalam jawabannya, jika Anda dapat mengubah pemodelan sendiri, maka itu tidak terlalu penting. Tetapi dengan memberikan contoh yang tidak dapat dimodifikasi, itu akan membuat perbedaan, karena TSP umum dengan kendala ini tidak dapat diperkirakan dalam faktor konstan, sementara mengendurkan kendala kunjungan-tunggal tampaknya membuatnya dapat diperkirakan dalam faktor 2 (meskipun bukan metrik ). Kecuali jika saya melewatkan sesuatu, dengan argumen standar, Anda dapat membangun pohon spanning minimum (biaya katakanlah ), kemudian mengunjungi pohon ini dengan teknik tur euler. Jelas, total biaya tur Anda adalah (dua kali setiap sisi). Secara kontradiksi, jika ada tur biaya kurang daric 2c c , maka tur ini dapat digunakan untuk menyimpulkan MST dengan biaya kurang dari , yang merupakan kontradiksi.c
sumber
Diberikan tur apa pun dengan pengulangan, Anda bisa membuat tur pendek yang tidak mengulangi kota mana pun. Misalnya, perhatikan tur formulir yang mengunjungi A dua kali. Anda dapat mengambil jalan pintas pada kunjungan kedua ke A , langsung dari ke :
Mungkin bahwa jalan terpendek dari ke melewati , tapi yang sudah dirumuskan dalam tepi . Anda bisa memikirkan menyebutkan bukan sebagai "melewati" melainkan "berhenti di" . Anda hanya perlu berhenti di sekali, meskipun Anda mungkin melewati beberapa kali.X Y A X→Y A A A A A
Algoritma aktual untuk TSP dapat memiliki langkah "mengambil jalan pintas", misalnya algoritma Christofides. Lihat misalnya deskripsi ini atau akun yang lebih pendek itu .
sumber
Tidak ada jawaban umum untuk ini, kecuali "orang tidak bodoh." Mereka akan menerapkan solusi yang sesuai dengan situasi mereka. Jarang ada orang yang peduli dengan masalah tenaga penjual keliling itu sendiri. Pada contoh klasik, tenaga penjual dunia nyata akan lebih peduli dengan masalah memaksimalkan pendapatan mereka selama periode waktu tertentu dalam serangkaian kendala tertentu. Dalam contoh masalah ini, jarak total yang ditempuh hanya satu dari sejumlah faktor berbeda yang digunakan untuk menemukan jawaban optimal.
sumber
Jika pengulangan diizinkan, maka Anda cukup memeriksa semua koneksi X -> A -> Y, dan jika itu lebih pendek dari X -> Y maka Anda mengganti panjang X -> Y dengan panjang X -> A -> Y, dan selesaikan masalah yang dihasilkan dengan algoritma standar. Saya pikir Anda harus mengulangi proses penggantian sampai tidak ada perubahan, karena jika Anda menemukan koneksi yang lebih pendek X -> Y ini mungkin berarti bahwa sekarang X -> Y -> Z lebih pendek dari X -> Y.
Pantau koneksi mana yang Anda ubah, periksa koneksi dalam solusi, dan jika solusi tersebut berisi X -> Y, maka Anda ganti ini dengan X -> A -> Y.
PS. Saya pikir ide saya bagus, tetapi saya tidak begitu yakin saat ini bahwa itu benar. Karena X -> A -> Y bukan X -> Y bukan hanya jalan pintas, itu juga mencakup kota A.
sumber