ชุดย่อย NTIME (f) ของ DSPACE (f)


9

ดังที่คำถามระบุไว้เราจะพิสูจน์ได้อย่างไร NTIME(f(n))DSPACE(f(n))?

ทุกคนสามารถชี้ให้ฉันเห็นหลักฐานหรือร่างที่นี่ได้หรือไม่ ขอบคุณ!


4
ฉันเดาว่ามีหลายคน ค่าคงที่ซ่อนอยู่ที่นั่น คุณสามารถพิสูจน์ได้ว่าNTIME(f(n))DSPACE(2f(n)). เพียงระบุการเดาอัลกอริทึมที่ไม่เป็นไปได้ทั้งหมดและเรียกใช้อัลกอริทึมของคุณด้วยการเดาเหล่านี้ ยอมรับหากการเดาข้อใดข้อหนึ่งนำไปสู่การยอมรับ
Igor Shinkar

1
ทำไมไม่ตอบคำถามนี้?
Yuval Filmus

@IgorShinkar มีผลลัพธ์หลายอย่างเช่นทฤษฎีบทการเร่งความเร็วเชิงเส้นและทฤษฎีการบีบอัดเทปที่บอกว่าคุณสามารถกำจัดค่าคงที่เหล่านั้นในสถานการณ์ "ส่วนใหญ่" การเร่งความเร็วเชิงเส้นบอกว่าDTIME(f(n))DTIME(ϵf(n)+n+2) สำหรับใด ๆ ϵ>0; การบีบอัดเทปบอกว่าDSPACE(f(n))DSPACE(ϵf(n)+O(1))สำหรับอีกครั้ง ϵ>0.
David Richerby

คำตอบ:


4

นี่เป็นเวอร์ชั่นขยายของความคิดเห็นของ Igor Shinkar วิธีที่ง่ายที่สุดในการจำลองเครื่องที่ไม่กำหนดเวลาทำงานf(n) และพื้นที่ s(n)f(n) การใช้งาน s(n)+2f(n)+O(1)ช่องว่าง เราแจกแจงการโยนเหรียญทั้งหมดที่เป็นไปได้จำลองเครื่องเดิมในแต่ละรายการ สิ่งนี้ต้องใช้พื้นที่f(n) สำหรับเก็บเหรียญโยนและ s(n)พื้นที่สำหรับจำลองเครื่องจริง มีความยากลำบากเล็กน้อยที่นี่: เมื่อการโยนเหรียญเป็น "อ่าน" โดยเครื่อง (ดั้งเดิม) เราจำเป็นต้องทำเครื่องหมายว่าเราอยู่ที่ไหนในลำดับของการโยนเหรียญ; เราสามารถใช้บิตเพิ่มเติมต่อการโยนเหรียญ อาจเป็นไปได้ที่จะเพิ่มประสิทธิภาพให้ดียิ่งขึ้นไปอีก

หากเราระวังเราอาจจะสามารถทำสิ่งที่ดีกว่านี้ได้เนื่องจากในแต่ละการรันของโปรแกรมจำนวนการโยนเหรียญทั้งหมดและพื้นที่ทั้งหมดที่ใช้รวมกันเป็นอย่างมาก f(n). ฉันสงสัยว่าเป็นไปได้ในการรันการจำลอง(1+o(1))f(n)ช่องว่าง บางทีเราอาจจะต้องคิดอะไรทำนองนี้f(n)=Ω(logn) สำหรับการที่.

ในฐานะที่เป็น Igor กล่าวว่าโดยปกติแล้วคลาสที่มีขอบเขตรีซอร์สจะถูกกำหนดไว้เท่านั้น "จนถึง O ใหญ่" ดังนั้นผลลัพธ์ซึ่งใช้พื้นที่ O(f(n))ยังอยู่ใน DSPACE(f(n)).

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.