Bir sorunun NP tamamlanmış olup olmadığını bilmek için kural


26

Bu soru StackOverflow hakkındaki bir yorumdan ilham almıştır .

Garey Johnson kitabının NP-komple sorunlarını bilmenin yanı sıra, diğerleri; Bir problemin NP-tamamlayıcısı gibi görünüp görünmediğini bilmek için bir kural var mı?

Sıkı bir şey aramıyorum, ancak çoğu durumda işe yarayan bir şey arıyorum.

Tabii ki, her zaman bir problemin NP tamamlandı ya da NP tamamlandı olanın hafif bir varyantı olduğunu kanıtlamamız gerekir; ancak ispat için acele etmeden önce ispatın olumlu sonucuna güven duymak harika olurdu.


8
Temel kuralım basit: Zaten aşina olduğum bir sorun gibi kokmuyorsa, muhtemelen NP zor (veya daha kötü).
JeffE

12
Elbette @JeffE, şimdiye kadar epeyce sorunlara aşinasınız ... CS'ye yeni başlayanlar aynı kuralı kullanamayabilir.
Joe,

1
@Joe: Doğru. Belki şunu söylemek daha iyi olurdu: Eğer sorunu bir ders kitabından alamadıysanız, muhtemelen NP zordur.
JeffE

2
Bunu ifade etmenin başka bir yolu: Bir problemin NP zor olduğu değil , bir problemin NP zor olmadığı durumlarda şaşırtıcıdır .
Joe,

Yanıtlar:


15

Bu, bir problemin (yani bir dili ) NP'nin tamamlanıp tamamlanmadığını belirleme konusundaki kişisel yaklaşımımdır . Her iki koşul da doğrulandıysa:L

  • Bir örnek olsam bunu test hissetmek ise L ima Ben çeşit tüm kombinasyonları kontrol etmek gerektiğiniIL
  • ve böyle bir kombinasyonu iki küçük parçaya bölmenin bir yolu olmadığını

L

SSS1S2S1S2

ACBABBC

Açıkçası bu yaklaşım çok basit: Verilen problem için (polinom) bir algoritma bulmaya çalışıyorum. Bir tane bulamazsam, sorun benim görüşüme göre "zor" hale gelir. Sonra tüm NP eksiksizliği mantığı geliyor: mevcut bir NP eksiksiz problemi buna kodlayabilecek miyim? (Bu genellikle daha zor olduğu için, bir polinom algoritması bulmaya bir kez daha çalışıyorum ..)

Bunun her zamanki düşünce tarzı olduğundan şüpheleniyorum. Bununla birlikte, bilinmeyen problemlere uygulamak oldukça zor. Şahsen, NP-eksiksizliğinin ilk örneklerinden birinin bana şaşırdığını hatırlıyorum: klik sorunu . Kontrol etmek çok basit görünüyordu! Bu yüzden, deneyimin bununla bir ilgisi olduğunu varsayalım. Ayrıca sezgi bazen işe yaramaz olabilir. İki kez neredeyse aynı problemin birkaç kez söylendiğini hatırlıyorum ama biri P'deydi, diğeri ise küçük farklılıkları olan NP-tamamlandı.

Henüz iyi bir örnek bulamadım (burada yardıma ihtiyacım var), ancak bu yazışma sonrası problemi gibidir : bu kararsız bir problemdir ancak bazı değişkenler kararlaştırılabilir .


7
+1

2
Genel kuralın ilginç bir istisnası, doğrusal programlama ile çözülebilecek optimizasyon problemleridir. Eğer numarayı duymamışsanız, atama problemi veya grafik eşleştirme gibi sorunların poli zaman içinde nasıl çözülebileceğini görmek zor olabilir, çünkü bölme ve fethetme ve dinamik programlama gibi hileler geçerli görünmüyor.
hugomg

Bir örnek, 2 sekans için P'de bulunan ancak daha fazlasıyla NP-Hard'a giren En Uzun Ortak Maddi problemidir.
Christian Vielma

14

Problemin sertliğine dair bir başka bakış açısı, oyunun ve bilmecenin oluşturduğu topluluktan gelir; buradaki kural, 'problemlerin olabildiğince zor olmasıdır' (ve istisnalar, problemdeki gizli yapılardan gelir - Massimo'nun belirleyicinin örneği yorumlar bunun iyi bir örneğidir); İşin püf noktası, bir problemin ne kadar zor olabileceğini anlamada gelir:

  • n
  • Sınırlı bir durum alanı içindeki bir dizi hamleyi içeren bulmacalar PSPACE'dedir (çünkü 'hamle ağacı' genellikle yalnızca bir polinom konfigürasyonları için depolamaya ihtiyaç duyan standart derinlikte birinci şekilde keşfedilebilir) ve PSPACE-tamamlanma eğilimindedir; Bunun klasik bir örneği Rush Hour.
  • Polinom bağlı derinliği olan oyunlar da PSPACE'te; Bu, PSPACE'in APTIME olarak karakterizasyonunu kullanır, çünkü stratejilerin her zamanki maksimum maksimi karakterizasyonu, 'A oyuncusu için bir hareket var,' her B oyuncusu için bir B hareketinden bir cevap var olacak şekilde karakterizasyonuyla mükemmel bir Turing makinesini taklit eder. Oyuncu A için öyle hareket eder ki… 'vb. PSPACE-komple olma eğilimindedirler; Hex ve genelleştirilmiş Tic-Tac-Toe oyunları bunun bir örneğidir.
  • Ağacın derinliğine bağlı olmayan ancak (polinom olarak) sınırlı bir alanda oynanan oyunlar EXPTIME'dadır, çünkü katlanarak çok sayıda toplam konum vardır ve grafiğin tamamı zaman sayısında polinom olarak oluşturulabilir ve incelenebilir (ve dolayısıyla genel olarak üstel) ; Bu oyunlar genellikle EXPTIME tamamlandı. Satranç, Dama ve Git hepsi bu kategoriye girer.
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.