นี่เป็นเพียงความคิดที่อยู่ในใจของฉันในขณะที่อ่านมาร์วินแอลมินสกี "การแก้ปัญหาแท็กซ้ำของโพสต์และหัวข้ออื่น ๆ ในทฤษฎีของเครื่องจักรทัวริง"; โดยเฉพาะทฤษฎีบทที่มีชื่อเสียง Ia:
ทฤษฎีบท Ia:เราสามารถแสดงฟังก์ชัน recursive บางส่วน
โดยโปรแกรมที่ทำงานบนสองจำนวนเต็มS 1และS 2
โดยใช้คำแนะนำที่ฉันjของรูปแบบ:
(i) เพิ่ม 1 ถึงS jและไปที่ฉันj 1
( ii) SUBTRACT 1 จากS j , ถ้าS j ≠ 0และไปที่ฉันj 1 , มิฉะนั้นไปที่ฉันj 2
นั่นคือเราสามารถสร้างโปรแกรมที่เริ่มต้นด้วยS 1f(n)S1S2Ij
SjIj1
SjSj≠0Ij1Ij2
และ S 2 = 0และในที่สุดก็หยุดด้วย S 1 = 2 f ( n )และ S 2 = 0S1=2nS2=0S1=2f(n)S2=0
หากคุณมีสองทาง DFA กับเคาน์เตอร์กว่า(กึ่ง) เทปที่ไม่มีที่สิ้นสุดที่การป้อนข้อมูลที่จะได้รับในเอก: แล้ว DFA สามารถ:$12n000...
- อ่านอินพุต unary (และเก็บไว้ในตัวนับ);
- การทำงานในส่วนหนึ่งของเทปและใช้ระยะทางจาก1ในฐานะที่เป็นเคาน์เตอร์ที่สอง0∞1
เพื่อให้สามารถจำลองเครื่องทัวริงสองเคาน์เตอร์
ทีนี้ถ้าคุณมีฟังก์ชั่นวนซ้ำที่ทำงานในเวลาT ( n )บนเครื่องทัวริงมาตรฐาน DFA แบบสองทางด้วยหนึ่งตัวนับที่เริ่มบนเทป จำกัด$ 1 m $f(n)T(n) $1m$(โดยและT ′ ( n ) ≫ T ( n ) ) สามารถ:m=2n3T′(n)T′(n)≫T(n)
- อ่านอินพุต unary (และเก็บไว้ในตัวนับ);
- กลับไปที่สัญลักษณ์ซ้ายสุด
- หารตัวนับด้วย 3 จนกระทั่งตัวนับประกอบด้วยด้วยวิธีนี้: วนลูปทางขวาจากสถานะq z 0 , q z 1 , q z 2และลบ 1; ถ้าตัวนับถึง 0 ในสถานะq z 0ไปที่สัญลักษณ์ซ้ายสุดเพิ่ม +1 และดำเนินการวนซ้ำต่อไปมิฉะนั้นเพิ่ม 1 (ถ้าอยู่ในสถานะq z 1 ) หรือ 2 (ถ้าอยู่ในสถานะq z 2 ) และไปที่สัญลักษณ์ด้านซ้ายสุดเพิ่ม + 3 (เช่นกู้คืนค่าก่อนหน้าของตัวนับที่ไม่หารด้วย 3) และดำเนินการตามขั้นตอนที่ 42nqz0,qz1,qz2qz0qz1qz2
- ณ จุดนี้เคาน์เตอร์มี ;2n
- คำนวณโดยใช้พื้นที่T ′ ( n )ทางด้านขวาเป็นตัวนับที่สอง (ค่าของตัวนับที่สองคือระยะห่างจากสัญลักษณ์$ซ้ายสุด)2f(n)T′(n)$
ดังนั้นด้วยการเข้ารหัสอินพุตพิเศษที่อธิบายไว้ข้างต้นซึ่งให้พื้นที่เพียงพอบนเทป จำกัด , DFA แบบสองทางที่มีตัวนับหนึ่งตัวและตัวอักษรแบบยูนารีสามารถคำนวณได้ทุกฟังก์ชั่นวนซ้ำ
หากวิธีการที่ถูกต้องก็จะเป็นที่น่าสนใจให้เหตุผลเกี่ยวกับวิธีการเลือกหรือเมื่อมันเป็นพอที่จะรับแปลกขนาดใหญ่k » 2และเข้ารหัสการป้อนข้อมูลที่เป็น1 เมตร , M = 2 n k nT′(n)≫T(n)k≫21mm=2nkn