การคำนวณความยาวอินพุตบนเครื่องทัวริงหนึ่งเทป


13

ในการเชื่อมต่อกับคำถามนี้มันเกิดขึ้นกับฉันสงสัย: อะไรคือความซับซ้อนของเวลาสำหรับเครื่องทัวริงหัวเทปเดี่ยวเทปเดียวในการคำนวณความยาวของอินพุตของมัน? หากต้องการระบุเฉพาะสมมุติว่าตัวอักษรของเทปคืออินพุตนั้นเป็นสตริงในล้อมรอบด้วยช่องว่างเครื่องจะเริ่มที่สัญลักษณ์อินพุตซ้ายสุดและจะต้อง สิ้นสุดที่สัญลักษณ์ซ้ายสุดของสตริงใน (ล้อมรอบด้วยช่องว่างอีกครั้ง) ที่ให้การแสดงไบนารีของความยาวอินพุต สิ่งนี้สามารถคิดได้ว่าเป็นปัญหาของการแปลงตัวเลขจากเอกภาพเป็นไบนารี่{0,1,b}(0+1)(0+1)

มันง่ายที่จะแก้ปัญหานี้ในเครื่องสองเทปหรือเครื่องสองหัวในเวลาเชิงเส้น (เพียงสแกนอินพุตด้วยหัวเดียวในขณะที่ใช้หัวอีกหัวเพื่อเพิ่มเคาน์เตอร์ซ้ำ ๆ การเพิ่มขึ้นเป็นการดำเนินการเวลาที่คงที่) แต่วิธีแก้ปัญหาหัวเดียวที่ฉันสามารถหาได้มีเพียง (เช่นเพิ่มตัวนับซ้ำ ๆ จากนั้นเลื่อนไปทีละตำแหน่งตามเทป) มีขอบเขตล่างที่ตรงกันหรือไม่O(nlogn)

ฉันพยายามค้นหาบางอย่าง แต่วลีเช่น "หนึ่งหัว" และ "ความยาวอินพุต" เป็นเรื่องธรรมดามากที่จะทำให้ยากต่อการค้นหาวรรณกรรมสำหรับผลลัพธ์ที่ทราบเกี่ยวกับปัญหานี้


น่าสนใจ .. มันชัดเจนน้อยกว่าที่ควรจะเป็น ฉันสงสัยว่ามีความสัมพันธ์ระหว่างขอบเขตล่างของค่านี้กับขอบเขตล่างสำหรับการจำลอง TM แบบไม่สนใจหรือไม่ (TM ใด ๆ ที่แก้ปัญหานี้ตามความหมายจะหลงลืม (หรือมีรหัสที่ไม่จำเป็น))
Daniel Apon

คำตอบ:


11

มันไม่สามารถคำนวณได้ในเวลาLG)o(nlgn)

ให้เป็นเครื่องที่ให้อินพุตสตริง หยุดด้วยขนาดของ เขียนด้วยเลขฐานสองบนเทปMxx

เราสามารถเพิ่ม DFA แบบง่าย (zero-space linear-time) ไปที่ เพื่อตรวจสอบว่าขนาดของอินพุตเป็นกำลังสองหรือไม่: ตรวจสอบว่าบิตแรกคือ 1 และส่วนที่เหลือเป็นศูนย์M

สมมติว่าวิ่งเวลาLG) จากนั้นเราสามารถตัดสินใจในเวลาว่าขนาดของอินพุตเป็นกำลังสอง ในคำอื่น ๆ ภาษาต่อไปนี้เป็น decidable ในLG) มันตามมาจาก ที่ควรเป็นปกติ แต่มันง่ายที่จะตรวจสอบว่าภาษาไม่ปกติ ดังนั้นไม่สามารถทำงานได้ในเวลาLG)Mo(nlgn)o(nlgn)DTime(nlgn)

L={0ik i=2k}
DTime(o(nlgn))=RegLMo(nlgn)

ฉันคิดถึงอะไรบางอย่างที่นี่: เมื่อคุณพูดว่าคุณกำลังพิจารณาการคำนวณในเครื่องเทปเดี่ยวหรือไม่? โดยปกติฉันคิดว่าเครื่องจักรสองเทปถูกใช้เพื่อกำหนดคลาสความซับซ้อน คำถามที่เกี่ยวข้องมากคือผลลัพธ์ข้างต้นมาจากไหน DTime(o(nlgn))=Reg
บรูโน่

@Bruno ใช่ฉันกำลังพูดถึงเครื่องจักรทัวริงเทปเดี่ยว ฉันไม่แน่ใจว่ามาตรฐานในการกำหนดคลาสความซับซ้อนคืออะไรหนังสือหลายเล่มใช้โมเดลที่แตกต่างกัน เอกสารเดิมของทฤษฎีความซับซ้อนใช้หลายคนเทปผมคิดว่า แต่ดูเหมือนว่ามีการเปลี่ยนแปลงให้ดูนี้ สำหรับคุณสามารถค้นหาได้ใน "Classical Recursion Theory" vol II และ "คู่มือวิทยาศาสตร์คอมพิวเตอร์เชิงทฤษฎี" DTime(nlgn)=Reg
Kaveh

ขอบคุณสำหรับคำแนะนำฉันได้ดูใน "Classical Recursion Theory" ฉบับที่ ครั้งที่สอง สำหรับความจริงที่ว่ามันมีการเปลี่ยนแปลงมันไม่ชัดเจนสำหรับฉัน ตัวอย่างเช่นหนังสือ Sipser's ใช้เทปเดี่ยว TM เพื่อกำหนดคลาสความซับซ้อนของเวลา แต่หนังสือของ Hopcroft-Ullman และ Arora-Barak's ล่าสุดและ Goldreich ใช้ Multitape TM
บรูโน่

1
@Bruno ฉันคิดว่าความหมายทั่วไปของDTime ที่ซับซ้อนกว่านั้นคืออะไร เช่นการกล่าวอ้างทั่วไปว่า "ทฤษฎีบทลำดับชั้นไม่ทราบแน่ชัด" เป็นเรื่องจริงสำหรับเครื่องเทปเดี่ยวสำหรับเครื่องเทปสองเครื่องที่รู้จักกันดีตั้งแต่ปี 1982
Kaveh

ที่จริงแล้วการพิจารณาเกี่ยวกับทฤษฎีบทลำดับชั้นเวลานี้มีอยู่ในตำราเรียนโดยใช้เทป TM เดี่ยวเป็นแบบจำลอง (เช่น Sipser's) แต่ในที่อื่น ๆ ไม่มีอะไรเกี่ยวกับความไม่รัดกุม (Arora-Barak, Goldreich ฯลฯ ... ) แน่นอนทั้งหมดนี้ไม่ใช่เรื่องสำคัญ แต่ดูเหมือนว่าสำหรับฉันแล้วการบอกว่ามักจะถูกกำหนดโดยใช้ single-tape TMs ไม่เป็นความจริง: ผู้เขียนบางคนใช้ TM เทปเดี่ยว ๆ บางคนใช้มัลติทาสก์ TM และผู้เขียนหลายคนคลุมเครือในเรื่องนี้ ... กล่าวอีกนัยหนึ่งดูเหมือนจะไม่สอดคล้องกับคำถามนี้ DTime
บรูโน่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.