นี่เป็นเพียงความคิดเห็นเพิ่มเติม ไม่กี่ครั้งที่ผ่านมาฉันถาม (ตัวเอง :-) มัลติทาสก์แบบ NTT ที่รับภาษา NP-complete ที่เข้ารหัสได้อย่างรวดเร็ว ฉันมากับความคิดนี้:
3-SAT ยังคง NP-complete แม้ว่าตัวแปรจะแสดงใน unary โดยเฉพาะอย่างยิ่งเราสามารถแปลงประโยค - สมมติว่า - ของพลสูตร 3-SAT φบนnตัวแปรและมคำสั่งในลำดับของตัวละครมากกว่าตัวอักษรΣ = { + , - , 1 }ซึ่งเกิดขึ้นทุกตัวแปรที่แสดงใน unary:(xi∨¬xj∨xk)φnmΣ={+,−,1}
+1i0,−1j,+1k
ตัวอย่างเช่นสามารถแปลงเป็น:(x2∨−x3∨+4)
+110-1110+11110
ดังนั้นเราจึงสามารถแปลงสูตร 3-SAT ในสตริงที่เทียบเท่าU ( φ i )เชื่อมประโยคของมัน ภาษาL U = { U ( φ i ) ∣ φ i ∈ 3 - S A T }คือ NP-completeφiU(φi)LU={U(φi)∣φi∈3−SAT}
NTM 2 เทปสามารถตัดสินใจได้ว่าสตริงในเวลา2 | x | ทางนี้.x∈LU2|x|
- หัวแรกสแกนอินพุตจากซ้ายไปขวาและด้วยตรรกะภายในจะติดตามเมื่อเข้าหรือออกจากประโยคหรือถึงจุดสิ้นสุดของสูตร เมื่อใดก็ตามที่พบหรือ-หัวที่สองเริ่มเคลื่อนไหวที่เหมาะสมกับมันใน1 ฉันที่แสดงถึงxฉัน ในตอนท้ายของ1 i , ถ้าหัวที่สองอยู่บน0มันจะเดาค่าความจริง+หรือ- (มันทำการมอบหมาย) และเขียนลงบนเทปที่สอง; หากพบว่า+หรือ-จากนั้นตัวแปรนั้นได้รับการกำหนดค่าแล้ว+−1ixi1i0+−+−
- ในทั้งสองกรณีโดยใช้ตรรกะภายใน NTM ตรงกับค่าความจริงภายใต้หัวสอง (ที่ได้รับมอบหมาย) ที่เห็นครั้งสุดท้ายหรือ- ; หากพวกเขาตรงกันแล้วข้อก็พอใจ+−
- จากนั้นส่วนที่สองสามารถกลับไปที่เซลล์ขวาสุด;
- ด้วยตรรกะภายใน NTM สามารถติดตามได้หากคำสั่งทั้งหมดมีความพึงพอใจในขณะที่ส่วนหัวแรกเคลื่อนไปที่ส่วนท้ายของอินพุต
ตัวอย่าง:
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)
เวลาสามารถลดลงเป็นหากเราเพิ่มสัญลักษณ์ที่ซ้ำซ้อนลงในการแสดงคำสั่งย่อย:|x|
+1i0i,−1j0j,+1k0k...+++
+++
0i+++++