Ketika jaring Fisika Sinterklas terbentuk, secara fisik mustahil bagi Santa untuk mendapatkan hadiah bagi setiap anak di planet ini. Perencanaan rute tidak akan banyak membantu di sana, tetapi bisakah algoritma perencanaan yang baik setidaknya memastikan bahwa setiap anak sesekali mendapat hadiah sementara Santa juga melayani sebanyak mungkin anak setiap tahun?
Pertimbangkan grafik lengkap dengan bobot nyata, positif, dan konstan . Kami ingin menyelesaikan varian masalah Travelling Sales Person:
Apakah ada rute panjang melingkar paling banyak yang melayani lebih dari simpul?
Versi optimasinya adalah:
Maksimalkan jumlah node yang bisa dilayani dengan rute melingkar paling panjang .
Ini dimotivasi oleh keterbatasan dunia nyata pada rute: Santa memiliki satu malam untuk mengirimkan hadiah sebanyak mungkin, seorang tenaga penjualan memiliki delapan jam untuk rute satu hari, dan sebagainya.
Pertanyaan pertama, tetapi bukan yang terakhir: seberapa sulit masalah ini? Mari kita asumsikan kita bisa mulai dari node mana saja, tetapi itu seharusnya tidak membuat terlalu banyak perbedaan.
Sekarang, untuk memodelkan keadilan, mari kita asumsikan ada node dan kami dapat mengunjungi paling banyak dengan setiap tur. Idealnya, kami ingin agar setiap node dikunjungi kali melintasi tur yang efisien. Karena mungkin ada simpul kemacetan yang harus dikunjungi lebih sering untuk memastikan rute mengunjungi banyak node, beberapa mau tidak mau harus dikunjungi lebih jarang. Itu juga mengecualikan perkiraan sepele dari menghapus node yang pernah dikunjungi sampai semua telah dikunjungi.
Jadi, inilah pertanyaan terakhir. Membiarkanmenjadi jumlah tur yang diperlukan sampai semua node dikunjungi secara efisien -waktu. Bagaimana kita secara algoritmik menentukan nilai minimal(dan semua rute yang diperlukan)? Seberapa kompleks masalah ini?
Saya kira ini benar-benar masalah multi-kriterial: setiap tur harus mengunjungi sebanyak mungkin node sementara kami ingin menjaga tur tetap terpisah.
sumber
Jawaban:
Saya sedikit bingung. Jikak adalah konstanta, maka Anda dapat mencoba semua O(nk) kemungkinan tur. Karenanya masalahnya ada diP .
Namun, jikak merupakan bagian dari input, masalah keputusan adalah NP -lengkap. Ini dapat ditunjukkan dengan mengurangiHAM-CIRCUIT untuk masalah ini, dengan pengurangan berikut.
Anggaplah kita ingin menentukan apakah an grafik -vertex G memiliki sirkuit Hamilton. Lalu kita ambil grafik lengkapKn dengan fungsi jarak berikut
Biarkan saya memberi tahu Anda mengapa ini pengurangan. JikaG memiliki sirkuit Hamilton, lalu ada tur di Kn dengan panjang n . Dengan kata lain rute panjang melingkar≤n itu berfungsi >(n−1) node. Di sisi lain, jika ada tur Santa yang mengunjungi>(n−1) node harus mengunjungi semua node. Karena Santa-tour hanya dapat memiliki panjang≤n dan setiap panjang tepi setidaknya 1, semuanya n Tepi dalam tur ini memiliki panjang 1. Karenanya tur ini sesuai dengan sirkuit Hamiltonian di G .
sumber