এটি কেবল একটি বর্ধিত মন্তব্য। কয়েকবার আগে আমি (নিজেকে :-) জিজ্ঞাসা করেছি যে কোনও মাল্টিট্যাপ এনটিএম যে কোনও (যুক্তিসঙ্গত এনকোডড) এনপি-সম্পূর্ণ ভাষা গ্রহণ করতে পারে তা কত দ্রুত। আমি এই ধারণাটি নিয়ে এসেছি:
ভেরিয়েবলগুলি অ্যানারিতে প্রতিনিধিত্ব করা হলেও 3-স্যাট এনপি-সম্পূর্ণ থাকে। বিশেষত আমরা একটি বর্ণটিকে রূপান্তর করতে পারি - ধরুন - বর্ণমালার উপরের অক্ষরের ক্রম n = { + , - , 1 এর মধ্যে n ভেরিয়েবল এবং এম ক্লোজের উপর নির্বিচারে 3-স্যাট সূত্রের formula } যা প্রত্যেক পরিবর্তনশীল সংঘটন ইউনারী মধ্যে প্রতিনিধিত্ব করা হয়:(xi∨¬xj∨xk)φnmΣ={+,−,1}
+1i0,−1j,+1k
উদাহরণস্বরূপ, রূপান্তর করা যেতে পারে:(x2∨−x3∨+4)
+110-1110+11110
সুতরাং আমরা একটি 3-স্যাট সূত্র রূপান্তর করতে পারেন একটি সমতুল্য স্ট্রিং ইউ ( φ আমি ) তার ক্লজ concatenating। ভাষা এল ইউ = { ইউ ( φ আমি ) | φ আমি ∈ 3 - এস একজন টি } দ্বারা NP-সম্পূর্ণ।φiU(φi)LU={U(φi)∣φi∈3−SAT}
একটি 2-টেপ NTM যদি একটি স্ট্রিং সিদ্ধান্ত নিতে পারেন সময় 2 | এক্স | এইভাবে.x∈LU2|x|
- প্রথম মাথা বাম থেকে ডানদিকে ইনপুট স্ক্যান করে এবং অভ্যন্তরীণ যুক্তি দিয়ে এটি কোনও ধারাতে প্রবেশ করে বা প্রস্থানটি বের হওয়ার সময় বা সূত্রের শেষে পৌঁছানোর সময় এটি ট্র্যাক করে রাখে। যখনই এটি একটি বা - সন্ধান করে , তখন দ্বিতীয় মাথাটি 1 i এর সাথে ডানদিকে চলতে শুরু করে যা x i প্রতিনিধিত্ব করে । 1 i এর শেষে , যদি দ্বিতীয় মাথাটি 0 থাকে তবে এটি একটি সত্য মানের + বা - এটি নির্ধারণ করে g এবং এটি দ্বিতীয় টেপটিতে লিখে দেয়; যদি এটি একটি + বা - সন্ধান করে তবে সেই পরিবর্তনশীলটিকে ইতিমধ্যে একটি মান নির্ধারণ করা হয়েছে;+−1ixi1i0+−+−
- উভয় ক্ষেত্রেই, অভ্যন্তরীণ যুক্তি ব্যবহার করে, এনটিএম সর্বশেষ দেখা বা - এর সাথে দ্বিতীয় মাথা (অ্যাসাইনমেন্ট) এর নিচে সত্য মানের সাথে মেলে ; যদি তারা মেলে তবে ধারাটি সন্তুষ্ট;+−
- তারপরে দ্বিতীয় মাথাটি ডানদিকের ঘরে ফিরে আসতে পারে;
- অভ্যন্তরীণ যুক্তি দিয়ে এনটিএম ট্র্যাক রাখতে পারে যদি সমস্ত ধারাটি সন্তুষ্ট হয় তবে প্রথম মাথাটি ইনপুটটির শেষের দিকে যায়।
উদাহরণ:
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...+++
( +++ সূত্রের শেষ চিহ্নিত করে)
এইভাবে দ্বিতীয় মাথাটি বামতম কোষে ফিরে আসতে পারে যখন প্রথম অংশটি স্ক্যান করে । ব্যবহার ++, একটি দফা বিভেদক হিসেবে এবং +++ সূত্রের শেষ জন্য একটি চিহ্নিতকারী হিসাবে আমরা একই উপস্থাপনা CNF সূত্র জন্য দফা প্রতি লিটারেল এর একটি অবাধ নম্বর দিয়ে ব্যবহার করতে পারেন।0i+++++