Herhangi bir NP-Komple Problem en fazla polinom alanı kullanılarak (ancak üstel zaman kullanılırken) çözülebilir mi?


12

NPC ve PSPACE ile olan ilişkisini okudum ve NPC problemlerinin en kötü durum polinom alanı gereksinimi olan bir algoritma kullanılarak belirleyici olarak çözülüp çözülemeyeceğini, ancak potansiyel olarak üstel zaman aldığını (P'nin polinom olduğu) bilmek istiyorum.

Ayrıca, genel olarak EXPTIME olarak genelleştirilebilir mi?

Bunu sormamın nedeni, bir NPC sorununun dejenere vakalarını çözmek için bazı programlar yazmam ve zor örnekler için çok büyük miktarda RAM tüketebilmem ve daha iyi bir yol olup olmadığını merak ediyorum. Referans için bkz. Https://fc-solve.shlomifish.org/faq.html .

Yanıtlar:


27

Genel olarak, herhangi bir algoritma için aşağıdakiler doğrudur:

  1. sürede çalışan bir algoritma olduğunu varsayalım . Daha sonra alanından fazlasını alamadı çünkü bitleri yazmak zamanı gerektiriyor .Af(n)Af(n)f(n)f(n)
  2. alanı gerektiren bir algoritma olduğunu varsayalım . Daha sonra zamanda, farklı durumlarının her birini ziyaret edebilir, bu nedenle den fazla zaman çalıştırarak hiçbir şey kazanamaz .Af(n)2f(n)A2f(n)

Şunu izler:

NP PSPACE

Durum, aşağıdaki diyagramda gösterildiği gibi, sınıflar arasındaki ilişkilerin bir parçası olarak bilinir:

sınıflar arasındaki ilişkiler

Açıklama basit: probleminin polinom uzunluk sertifikası . Tüm olası sertifikaları test eden bir algoritma, zaman içinde karar veren bir algoritmadır .Q NPyQ2nO(1)

Alan gereksinimi:

  • y ( cinsinden polinom )n
  • boşluk doğrulamak için gereklidir . Yana polinom belgesi, nedenle, muhtemelen daha polinom alanı daha gerektirmeyen olabilir, polinom zamanda doğrulanabilir.yy

İki polinomun toplamı da bir polinom olduğundan, polinom boşluğu ile kararlaştırılabilir.Q


Misal:

Varsayalım değişmezleri 3-CNF bir örneğidir ile, maddeleri. ataması , işlevidir .φx1xnmff:{x1xn}{0,1}

Bunu tutar:

  • Orada farklı atamaları.2n
  • Bir atama verildiğinde , değerini hesaplamak zaman alır , bu nedenle den daha fazla boşluk gerektiremez.fO(m)φO(m)

Böylece tüm olası atamaları kontrol eden bir algoritma polinom boşluğunu kullanır, üstel zamanda çalışır ve 3-SAT'a karar verir.A

Şunu izler:

3-SAT ve 3-SAT NP-Complete olduğundanPSPACENP PSPACE


1
EXPSPACE ve EXPTIME neden ilişkilidir? Zaman ve mekanın farklı kaynaklar olduğunu düşündüm. Akla gelen bir örnek, EXPTIME, ancak sabit alan gerektiren bir kripto şemasını kırmaktır
WeCanBeFriends

6
Burada sezgisel olarak, boşluk kullanırsanız, en az zaman kullanmalısınız ve den fazla zaman kullanmamalısınız, çünkü o zaman aynı durumlar. Bu yüzden PSPACE EXPf(n)f(n)2f(n)
lox

Örneğinizde f (n) O (n) 'den farklı mı?
WeCanBeArkadaşlar

1
@WeCanBeFriends Sabit alan ile üstel zaman kullanamazsınız: en azından polinom (üstelde logaritmik) olan bu üstel sayıya (örn. Bir montaj dilinin program sayacı) kadar saymak için kullanılan alana ihtiyacınız var
gigabayt

4
@gigabytes Bunu bilmiyoruz. Bildiğimiz en iyi şey . PEXPTIME
Tom van der Zanden

9

Evet. İşte doğrudan bir kanıt taslağı.

Eğer bir problem içindeyse , buna karar veren belirsiz bir Turing makinesi  vardır ve uzunluğunun girişlerindeki hesaplama yollarından  hiçbirinin adımdan fazlasını alamayacağı bir polinom vardır  . Bu, tek bir yolun bant hücrelerinden daha fazlasını kullanamayacağı anlamına gelir , bu nedenle polinom alanında tek bir yolu deterministik olarak simüle edebiliriz.NPMpMnp(n)p(n)

Ancak tüm yolları simüle etmeliyiz . İyi bir sabit vardır  sadece geçiş fonksiyonuna bağlıdır  (olup, girişinde) bu şekilde  en sahip  herhangi bir aşamada belirleyici olmayan seçenekler. Bu demektir ki, en fazla olduğu uzunlukta herhangi bir giriş için farklı hesaplama yolları  . Tüm bu yollarını aşağıdaki gibi simüle edebiliriz . İlk olarak, base- bir -basamaklı sayı yazın (bu, boşluğunu alır , ancak bu polinomdur, bu yüzden sorun değil). Daha sonra, işlem simüle  de, vecMMccp(n)ncp(n)p(n)cp(n)MiHesaplamanın adımı, hangi belirsiz seçimin yapılacağına karar vermek için sayının rakamını kullanın. Örneğin, Basamak  ve yapılabilecek yalnızca dört seçenek varsa, bu simülasyonu terk edin ve bir sonrakine geçin.ii6

Yani, şimdi, tüm simülasyonu yapmak için, sayısını yazarak , yolunu simüle eder  , sayıyı arttırır, bir sonraki yolu simüle eder ve böylece her basamağın bulunduğu sayıya ulaşana kadar devam ederiz. . Şimdi olası tüm hesaplama yollarını simüle ettik ve bunu yaklaşık alan kullanarak ilgili zaman içinde yaptık . Bu, gerektiğinde üstel zaman ve polinom alanıdır.00Mc1cp(n)p(n)2p(n)

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.