หากเราพิจารณาเฉพาะปัญหาใน P จะมีช่องว่างขนาดใหญ่ระหว่างอัลกอริธึม word-RAM ที่รู้จักกันเร็วที่สุดและอัลกอริทึมเครื่องทัวริงที่รู้จักกันเร็วที่สุดสำหรับปัญหาเฉพาะหรือไม่ ฉันสนใจเป็นพิเศษหากมีช่องว่างที่กว้างสำหรับปัญหาทางธรรมชาติที่น่าสนใจทั่วไป
หากเราพิจารณาเฉพาะปัญหาใน P จะมีช่องว่างขนาดใหญ่ระหว่างอัลกอริธึม word-RAM ที่รู้จักกันเร็วที่สุดและอัลกอริทึมเครื่องทัวริงที่รู้จักกันเร็วที่สุดสำหรับปัญหาเฉพาะหรือไม่ ฉันสนใจเป็นพิเศษหากมีช่องว่างที่กว้างสำหรับปัญหาทางธรรมชาติที่น่าสนใจทั่วไป
คำตอบ:
เป็นที่ทราบกันดีว่าปัญหาใด ๆ ที่คุณสามารถคำนวณบนเครื่องแรมได้ทันเวลา คุณสามารถทำได้โดยใช้เครื่องจักรทัวริงทันเวลา . คุณต้องสังเกตว่าขนาดรวมของหน่วยความจำที่ใช้ต้องไม่เกินเนื่องจากนั่นหมายความว่าคุณทำการเขียนมากกว่านั้น ดังนั้นทุกครั้งที่คุณดึงข้อมูลบางอย่างจากหน่วยความจำ RAM เครื่องทัวริงจะใช้ตัวพิมพ์เล็ก เวลาในการค้นหาองค์ประกอบที่ต้องการตามลำดับจากเทป นอกเหนือจากการเข้าถึงหน่วยความจำการดำเนินการที่เหลือควรใช้เวลาประมาณเดียวกัน และคุณก็จะได้ข้อ จำกัด
ตัวอย่างด้านล่างพิสูจน์ว่าอัลกอริทึม ที่ต้องใช้ เพื่อแก้ปัญหาเกี่ยวกับ word-Ram อาจจำเป็นต้องใช้ บนเครื่องทัวริง 1 เทป (TM) ที่ประมวลผลการคำนวณทั้งหมดที่ระบุอย่างแม่นยำ. ฉันเข้าใจว่าคำถามเกี่ยวข้องกับ 1-tape TM และฉันใช้เฉพาะสิ่งนี้ในการตอบกลับของฉัน นี่คือการแก้ไขเพื่อแก้ไขข้อสังเกตของ Emil Jeřábek
เราจะพบว่าตามข้อสรุปทั่วไปมากขึ้น เพื่อพิสูจน์ว่า TM สามารถแก้ไขได้ แก้ไขปัญหาได้แล้ว โดยอัลกอริทึม บน RAM มันทำงานไม่เพียงพอบน TM ฉลาดขั้นตอนวิธีการอาจจะต้อง เช่นเดียวกันถ้ามีใครต้องการพิสูจน์เหนือศีรษะ การพิสูจน์การมีอยู่ของอัลกอริทึมที่ฉลาดเมื่อใดก็ตามที่ต้องการนั้นดูเหมือนจะห่างไกลจากคนพูดจริง สิ่งนี้ไม่สอดคล้องกับคำตอบอื่น ๆ ที่โดยทั่วไปเสนอให้จำลอง / ดำเนินการกับการคำนวณ TM all RAM เท่านั้น (ของอัลกอริทึม) เพื่อประกาศความซับซ้อนเช่น TM หรือ .
ปัญหา:เราได้รับอาร์เรย์ / ตาราง กับ จำนวนเต็มแต่ละอันเก็บไว้ เกร็ด เราจะได้รับอาร์เรย์ที่สอง กับ ตำแหน่งแต่ละคนบันทึกจำนวน เกร็ด สำหรับคนใดเรากำหนด ถ้า กห กห . มิฉะนั้น,. เอาท์พุต. ฉันพิจารณาอินพุตจะได้รับเป็นเทปด้วย เลขฐานสองเพื่อแสดงความคิดเห็นของ Emil Jeřábek
ขั้นตอนวิธี บน RAM RAM ขนาดเท่าคำ จำเป็น = เพื่ออ่านข้อมูลอินพุตสตริงของไบนารี แต่หลังจากอ่านข้อมูลมันสามารถทำงานได้กับคำพูดของเท่านั้นขนาด. ขั้นตอนวิธี คำนวณใด ๆ ใน โดยจะผ่านทั้งหมด และทดสอบสภาพ ห่วงหลักของเป็นสำหรับ: คำนวณ . ความซับซ้อนโดยรวมคือ (กำลังอ่านข้อมูล) + (ทำการคำนวณ) ดังนั้น สามารถทำได้ทุกอย่างค่ะ บน RAM
ขั้นตอนวิธี บน 1-tape TM:ฉันเถียงถึงความต้องการหนึ่งเทป TM เวลาสำหรับการแก้ไข . จากมุมมองของ TM การพิจารณา เทียบเท่ากับการทดสอบความเท่าเทียมกันของความยาวสองสตริงไบนารี่ . ตัวอย่างเช่นการดำเนินการ MOD กห อาจเทียบเท่ากับการลบบิต ของ . ในกรณีดังกล่าวให้พิจารณา เทียบเท่ากับการทดสอบความเท่าเทียมกันในสตริงบิตที่มีความยาว . มันเป็นที่รู้จักกันดีว่าการทดสอบความเท่าเทียมกันของความยาวสองสาย ต้องใช้ บน 1-TM TM แต่ฉันไม่สามารถหาข้อมูลอ้างอิงได้ในขณะนี้ อย่างไรก็ตามฉันให้หลักฐานใน ps หาก TM ดำเนินการลูปหลักของมันต้องใช้จ่ายอย่างน้อย แต่ละ จบลงด้วย .
PS ฉันแสดงให้เห็นว่าการทดสอบความเท่าเทียมกันในสตริงบิตด้วยบิตต้องไม่เร็วกว่าการทดสอบด้วย Palyndrome กับสตริงด้วย บิต (palyndrome เป็นที่รู้กันว่าใช้เวลาอย่างน้อย เวลา). เราสามารถปรับเปลี่ยนอัลกอริทึม TM สำหรับการทดสอบความเท่าเทียมกันเพื่อแก้ปัญหา Palindrome สมมติว่าการทดสอบความเท่าเทียมกัน TM เริ่มต้นด้วยเลขจำนวนเต็มสองค่าคือหนึ่งที่ด้านซ้ายของหัวหนึ่งที่อยู่ทางขวา (นี่คือรูปแบบอินพุตที่ง่ายที่สุดสำหรับ TM) การเคลื่อนที่ข้ามตำแหน่งด้านซ้ายสามารถทำมิรเรอร์ (สะท้อน) เหนือตำแหน่งด้านขวา เราสร้าง mirrored TM: เมื่อใดก็ตามที่ TM เริ่มต้นอยู่ในตำแหน่ง (ทางซ้าย) TM ที่มิร์เรอร์อยู่ในตำแหน่ง (on the right). If a TM solved equality testing in less than , this modified mirrored TM would solve palindrome in less than .
Also, there are some equality-testing TM algorithms out there and all of them require quadratic time because they need some zigzagging, see for instance the Turing Machine Example 2 at courses.cs.washington.edu/courses/cse431/14sp/scribes/lec3.pdf