Bu sadece genişletilmiş bir yorumdur. Birkaç kez önce (kendim :-) (makul kodlanmış) bir NP tam dili kabul bir çok bantlı NTM ne kadar hızlı sordum. Bu fikri buldum:
3-SAT, değişkenler tekli olarak gösterilse bile NP-tam kalır. Varsayalım - özellikle bir madde dönüştürebilir - isteğe bağlı bir 3-SAT formül cp ile n değişkenleri ve m, bir karakter dizisi olarak maddeleri alfabe üzerinde Σ = { + , - , 1 } Her değişken oluşumun tekli olarak temsil edildiği:(xi∨¬xj∨xk)φnmΣ={+,−,1}
+1i0,−1j,+1k
Örneğin, şu biçime dönüştürülebilir:(x2∨−x3∨+4)
+110-1110+11110
Böylece, 3-SAT formülünü , cümlelerini birleştiren eşdeğer bir U ( φ i ) dizesine dönüştürebiliriz . L U = { U ( φ i ) ∣ φ i ∈ 3 - S A T } dili NP-tamamlanmıştır.φiU(φi)LU={U(φi)∣φi∈3−SAT}
2 bantlı NTM, 2 zaman içinde dizgisi olup olmadığına karar verebilir | x | Böylece.x∈LU2|x|
- ilk kafa girdiyi soldan sağa doğru tarar ve dahili mantıkla bir cümleye girdiğinde veya bir cümleden çıkarken ya da formülün sonuna ulaştığında iz tutar. Bir veya - bulduğunda ikinci kafa, x i'yi temsil eden 1 i üzerinde sağa doğru hareket etmeye başlar . 1 i'nin sonunda , eğer ikinci kafa 0 üzerindeyse, o zaman bir doğru değeri tahmin eder + veya - (bir ödev yapar) ve ikinci banda yazar; bir + veya - bulursa, bu değişkene zaten bir değer atanmıştır;+−1ixi1i0+−+−
- her iki durumda da, dahili mantık kullanılarak NTM, ikinci başlığın (atama) altındaki doğruluk değerini son görülen veya - ile eşleştirir ; eğer eşleşirlerse, hüküm yerine getirilir;+−
- daha sonra ikinci kafa en sağdaki hücreye dönebilir;
- dahili mantıkla NTM, ilk kafa girişin sonuna doğru hareket ederken tüm yan tümceler yerine getirilirse takip edebilir.
Misal:
Tape 1 (formula) Tape 2 (variable assignments)
+110-1110+11110... 0000000000000...
^ ^
+110-1110+11110... 0000000000000...
^ ^
+110-1110+11110... 0000000000000...
^ ^
+110-1110+11110... 0+00000000000... first guess set x2=T; matches +
^ ^ so remember that current clause is satisfied
+110-1110+11110... 0+00000000000...
^ ^
...
+110-1110+11110... 0+00000000000...
^ ^
...
+110-1110+11110... 0++0000000000... second guess set x3=T
^ ^ don't reject because current
clause is satisfied (and in every
case another literal must be parsed)
Zaman cümle temsiline gereksiz semboller eklersek:|x|
+1i0i,−1j0j,+1k0k...+++
( formülün sonunu işaretler)+++
Bu şekilde, ilk başlık bölümünü tararken ikinci kafa en soldaki hücreye dönebilir . Formülün sonu için ++ yan tümcesini sınırlayıcı olarak ve +++ öğesini kullanarak , yan tümce başına rastgele sayıda değişmez değere sahip CNF formülleri için aynı temsili kullanabiliriz.0i+++++