Polinom zamanında Seyahat Eden Satıcı Problemine bir çözümü nasıl doğrulayabilirim?


31

Bu yüzden TSP (Seyahat eden satıcı problemi) karar problemi NP tamamlandı .

Fakat TSP'ye verilen bir çözümün polinom zamanında gerçekte optimal olduğunu, polinom zamanında optimal çözümü bulamayacağımıza göre (sorunun P'de olmadığı için) nasıl olduğunu nasıl anlayabileceğimi anlamıyorum?

Doğrulamanın polinom zamanında yapılabileceğini görmeme yardımcı olabilecek herhangi bir şey var mı?

Yanıtlar:


20

Daha kesin olmak gerekirse, TSP'nin olup olmadığını bilmiyoruz . Polinom zamanında çözülebilmesi mümkündür, belki de yaygın inancı, . Şimdi, bir sorunun -hard ve olmasının ne demek olduğunu hatırlayın , mesela buradaki cevabımı görün . Karışıklık kaynağınızın tanımlardan kaynaklandığına inanıyorum: bir -hard sorunu mutlaka .PPNPNPNPNPNP

Sen ve Vikipedi sayfası durumları bağlantı gibi, karar problemi olan -tamamlamak: maliyetleri ve bir tamsayı verilen , daha tur daha ucuz olup olmadığına karar . Sorunu görme bir yolu olduğunu o bir çözüm verilen görmektir, çözüm daha ucuz olup olmadığını polinom zamanda doğrulamak kolaydır . Bunu nasıl yapabilirsiniz? Verilen turu takip edin, toplam maliyetini kaydedin ve son olarak toplam maliyeti .NPxxNPxx


"Sadece verilen turu izleyin, toplam maliyetini kaydedin ve son olarak toplam maliyeti x ile karşılaştırın." -> Evet, fakat kontrol edilmesi gereken katlanarak turlar var!
Lazer,

2
Görünüşe göre biraz yavaş kaldım. ;-)
Niel de Beaudrap 20:12

3
@Lazer Hayır, kontrol etmek için kesinlikle bir tur var. Bir tur verilir ve uzunluğu kaydedilir. Eğer küçükse , çıktı evet , aksi takdirde hayır . x
Juho,

"Bir tur olup olmadığına karar verin" bu kesinlikle bir tur yapılmadığımız anlamına gelir. Neyi kaçırıyorum?
Lazer

3
@Lazer Hayır, problemde size ağırlıklı bir grafik ve hedef bir maliyet verilir. Sertifika bir tur. Alternatif bir açıklama için Niel'in cevabına bakınız. Tıpkı SUBSET-SUM durumunda Wiki'deki örnekte olduğu gibi, bize sıfır verilmez, bunun yerine sertifika olarak belirli bir altküme verilir.
Juho,

34

İşin aslı, karar sorununu göz önünde bulundurmanız gerektiğidir :

Gezgin Satıcı Problemi (Karar Sürümü). Ağırlıklı bir grafik G ve hedef maliyet C verildiğinde, G'de ağırlığı en fazla C olan bir Hamilton dönemi var mı?

'Evet' örneği için sertifika yalnızca ağırlığı en fazla C olan bir Hamilton dönemidir . Bu sorunu etkili bir şekilde çözebiliyorsanız, tüm ağın ağırlığını üst sınır olarak alarak, ikili arama yaparak minimum bir turun maliyetini bulabilirsiniz.


3

Muhtemelen TSP'ye verilen bir çözümün en iyi çözüm olup olmadığını belirleme sorununu düşünüyorsunuz . Bununla birlikte, bunun için bilinen bir polinom çözümü yoktur; bu, bu sorunun NP zorlu olduğu, ancak mutlaka NP Tamamlanmadığı anlamına gelir.

TSP Karar Sorunu , aslında bir grafikteki herhangi bir çözümün ağırlığının Gen yüksek maliyette olup olmadığını C(Niel'in cevabında daha iyi açıklandığı gibi) olup, bu polinom zamanında kesinlikle doğrulanabilir olup olmadığını belirlemekle ilgilidir .


5
Soygun için üzgünüm, ama TSP NP zor değil çünkü Turları var. Örneğin, sıralama olmasına rağmen P'deolası permütasyonlar da. Büyük veya hızlı büyüyen arama alanları her zaman sertlik anlamına gelmez. O(n!)n!
Juho,

@Juho Bir dizinin sıralandığını doğrulamak mümkündür, sadece olduğunu kontrol ederek . Bununla birlikte, bir şeyin TSP için EN İYİ çözüm olduğunu bilmek için, maliyetin, diğer bütün maliyetleri bilmeyi gerektiren asgari maliyet olduğunu bilmek gerekir. n0<=n1<=...
Casey Kuball

4
Hayır, diğer tüm turların uzunluklarını hesaplamadan bile optimum olanı elde edebilirsiniz. Ve evet, bunun diğer turları hesaplamadan optimum olduğunu kanıtlamak mümkün. Örneğin dal ve sınırlamayı düşünün.
Juho,

7
Tek söylediğim, büyük arama alanlarının mutlaka sorunun zor olduğu anlamına gelmiyor. Örneğin, tüm olasılıkları belirleyen kaba kuvvetten daha iyi bir algoritma bilmesek bile, bu orada bulunan tek algoritma olduğu anlamına gelmez. Dinamik programlama burada bile iyi bir örnektir: Held-Karp algoritması zamanında çalışan TSP için tam bir algoritmadır . Üzgünüm, bu tartışmalı bir şekilde sadece nitpicking, ama ben sadece bir hatırlatma eklemek istedim :)O(n22n)
Juho

@ Juho iyi nokta. Yanıtı artık tek seçenek olarak kaba kuvvet belirtmeyecek şekilde güncelleştirdim (yalnızca herhangi bir polinom çözümü olmadığı için).
Casey Kuball

2

Daha kısa bir çözüm olup olmadığını sorgulayarak polinom zamanındaki karar sorununu çözen (diğer cevaplara bakınız) bir kehanet vermenin optimal olduğunu gösterebilirsiniz. Amacınız kehanete verilen en uygun çözümü oluşturmaksa, aşağıdaki adımları takip edin. İkili arama yoluyla minimum toplam ağırlığı bulun (veya tamsayı olmayan kenar ağırlıkları varsa, minimumdan iki kenar ağırlığı arasındaki minimum farktan daha az farklı olan bir toplam ağırlık bulun). Bu değeri . Grafikteki her kenar için kenarı kaldırın ve hala en fazla olan bir çözüm olup olmadığını görmek için kehaneti sorgulayın . Eğer öyleyse, kenarı dışarıda bırakın ve devam edin. Değilse, kenarı tekrar yerine koyun ve devam edin. Tüm kenarları işlediğinizde, minimum ağırlıkta bir Hamiltonian döngüsü ile kalacaksınız.MM

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.