NP-tam problemlerini çözmek için bilinen tüm algoritmalar yapıcı mıdır?


11

Bir sertifika oluşturmadan bir NP-tamamlama sorununa doğru şekilde "evet" çıktısı veren bilinen herhangi bir algoritma var mı?

Memnuniyetli bir kehaneti tatmin edici bir atama bulucusuna dönüştürmenin basit olduğunu anlıyorum: sadece değişkenleri tekrarlayın, her seferinde bu değişkenin orijinal problemle bağlantısını çözmesini sağlayan tatmin edici kehanet isteyin.

Peki böyle bir sargı faydalı olabilir mi? Tüm uydu çözücüler olası ödevleri araştırıyor mu?

Veya çözücünün, bir çözümün var olması gerektiğini kanıtlamak için matematiksel bir teoremden yararlanabileceği bazı NP-tamamlama problemleri (seyahat eden satıcı, alt küme toplamı vb.) Var mı? Çelişkili bir kanıt yapmak gibi mi?

Yanıtlar:


11

Anladığım kadarıyla, iki soru soruyorsunuz: (1) örneğin saf kaba kuvvetten daha akıllı SAT algoritmaları var ve (2) NP-tam problemini çözerken sadece EVET / HAYIR yanıtı veren algoritmalar var aslında olmadan bulma çözümü. Her iki soruyu da bu sırayla cevaplayacağım.

(1) Bir problemi kaba kuvvet olmadan, yani tüm olasılıkları saf bir şekilde denemeden çözmek mükemmel bir şekilde mümkündür. Örneğin, modern tam SAT çözücüler , belirli (kısmi) ödevleri çıkaran veya kanıtlayan akıllı bir algoritma uygulayabilirler, bu yüzden o kısmı bile incelemezler.

Daha genel olarak, NP zor problemleri bile çoğu zaman algoritmayı kaba kuvvetten daha hızlı tasarlamamıza izin veren bir çeşit algoritmik dayanak sergiler. Bu araştırmanın alanı kesin (üstel) algoritmalardır . Bu algoritmalar üstel zaman alır, ancak saf algoritmalardan daha hızlıdır. Örneğin, TSP'yi kabaca çözebilirsiniz ! zaman, burada n ziyaret edilecek şehir sayısıdır. Bu yöntem n'nin orta değerlerine bile ölçeklenmez , ancak Held & Karp nedeniyle klasik bir dinamik programlama O ( 2 n n 2 ) zaman algoritması vardır . Genel teknikler için örneğin bkz şube ve bağlı .n!nnÖ(2nn2)

(2) Açık bir sertifika olmadan YES / NO çıktısını veren NP-tam problemleri için "oracle algoritmaları" vardır. Örneğin, -yolu problemini düşünün :k

( -Path sorunu)k bir grafiktir Verilen ve bir tam sayı k , basit bir yolu yoktur G ile k köşe?G,kG,k

Yukarıdaki sorunun kolayca NP-tam olduğu görülmektedir. Bir çözmek için algoritma [1] de verilmiştir. Algoritmanın kendisi sadece soruna EVET / HAYIR yanıtı verir, ancak gerçek k -yolunun kendisini oluşturmak için ek numaralar kullanabiliriz . Daha genel olarak, böyle bir "kehanet algoritması" verildiğinde, tanığın kendisini çıkarmak için kombinatoryal grup testinden araçlar kullanılabilir.Ö*(2k)k


[1] Williams, Ryan. "Uzunluk yollarını bulmak olarak zaman." Bilgi İşleme Mektupları 109.6 (2009): 315-318. yayıncı bağlantısı , PDFkÖ*(2k)


Mükemmel. K-yolu kağıdı tam da aradığım şey. Teşekkürler!
user82928
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.