คำตอบง่าย ๆ : หากมีอัลกอริธึมที่มีประสิทธิภาพมากกว่าที่ทำงานในเวลาสำหรับบางδ < 2ดังนั้นสมมติฐานเวลาเอ็กซ์โพเนนเชียลที่คาดเดายากจะถูกหักล้างO(nδ)δ<2
เราจะพิสูจน์ทฤษฎีบทที่แข็งแกร่งขึ้นแล้วคำตอบง่ายๆจะตามมา
ทฤษฎีบท : ถ้าเราสามารถแก้ปัญหาความไม่ว่างเปล่าของจุดตัดสำหรับสอง DFA ในเวลาดังนั้นปัญหาใด ๆ ที่ไม่สามารถแก้ไขได้โดยใช้หน่วยความจำเพียง n บิตเท่านั้นสามารถแก้ไขได้ในp o l y ( n ) ⋅ 2 ( δ n / 2 )เวลาO(nδ)poly(n)⋅2(δn/2)
เหตุผล : สมมติว่าเราสามารถแก้ปัญหาจุดตัดที่ไม่ใช่ความว่างเปล่าเป็นเวลาสอง DFA ในเวลา ปล่อยให้เครื่องทัวริงที่ไม่ได้กำหนดค่าไว้ M ด้วยเทปอินพุตแบบอ่านอย่างเดียวและเทปการทำงานแบบไบนารีอ่าน / เขียน ให้สตริงอินพุต x ของความยาว n ได้รับ สมมติว่า M ไม่สามารถเข้าถึงหน่วยความจำมากกว่า n บิตบนเทปงานไบนารีO(nδ)
การคำนวณ M บนอินพุต x สามารถแสดงได้ด้วยรายการ จำกัด การกำหนดค่า แต่ละการกำหนดค่าประกอบด้วยสถานะตำแหน่งบนอินพุตเทปตำแหน่งบนเทปงานและหน่วยความจำสูงสุดที่ n บิตที่แสดงถึงเทปงาน
ตอนนี้ให้พิจารณาว่าเทปงานแบ่งออกเป็นสองส่วน กล่าวอีกนัยหนึ่งเรามีส่วนด้านซ้ายของเซลล์และส่วนด้านขวาของnn2เซลล์ การกำหนดค่าแต่ละรายการสามารถแยกย่อยเป็นชิ้นซ้ายและชิ้นขวาได้ ชิ้นส่วนด้านซ้ายประกอบด้วยสถานะตำแหน่งบนเทปอินพุตตำแหน่งบนเทปงานและnn2บิตจากส่วนด้านซ้าย ชิ้นส่วนที่ถูกต้องประกอบด้วยสถานะตำแหน่งบนเทปอินพุตตำแหน่งบนเทปงานและnn2บิตจากส่วนด้านขวาn2
ตอนนี้เราสร้าง DFA ซึ่งมีสถานะเป็นเศษซ้ายและ DFA D 2ซึ่งมีสถานะเป็นชิ้นส่วนที่ถูกต้อง อักขระตัวอักษรเป็นคำแนะนำที่บอกว่าจะไปยังรัฐอย่างไรควรเคลื่อนหัวเทปอย่างไรและควรจัดการเซลล์ที่ใช้งานของเทปการทำงานอย่างไรD1D2
แนวคิดคือและD 2อ่านในรายการคำสั่งที่สอดคล้องกับการคำนวณ M ในอินพุต x และตรวจสอบร่วมกันว่ามันถูกต้องและยอมรับ ทั้งD 1และD 2จะเห็นด้วยเสมอว่าส่วนหัวของเทปอยู่ที่ไหนเพราะข้อมูลนั้นรวมอยู่ในอักขระอินพุต ดังนั้นเราสามารถให้D 1ตรวจสอบว่าคำสั่งนั้นเหมาะสมเมื่อตำแหน่งเทปงานอยู่ในชิ้นส่วนด้านซ้ายและD 2ตรวจสอบเมื่ออยู่ในชิ้นส่วนที่ถูกต้องD1D2D1D2D1D2
โดยรวมแล้วมีมากที่สุดสถานะสำหรับแต่ละ DFA และที่p o l y ( n )ตัวอักษรที่แตกต่างกันมากที่สุดpoly(n)⋅2n/2poly(n)
โดยการสันนิษฐานเบื้องต้นมันตามมาว่าเราสามารถแก้จุดตัดที่ไม่ใช่ความว่างเปล่าสำหรับ DFA สองตัวในเวลาpoly(n)⋅2(δn/2)
คุณอาจพบว่ามีประโยชน์: https://rjlipton.wordpress.com/2009/08/17/on-the-intersection-of-finite-automata/
CNF-SAT สามารถแก้ไขได้โดยใช้บิต n ) )หน่วยความจำโดยที่ k คือจำนวนของตัวแปร การก่อสร้างก่อนหน้านี้สามารถใช้ในการแสดงให้เห็นว่าถ้าเราสามารถแก้ปัญหาจุดตัดที่ไม่ใช่ความว่างเปล่าเป็นเวลาสอง DFA ใน O ( n δ )เวลาแล้วเราสามารถแก้ CNF-SAT ใน P o L Y ( n ) ⋅ 2 ( δ k / 2เวลา ) ดังนั้นคำตอบง่ายๆก็คือk+O(log(n))O(nδ)poly(n)⋅2(δk/2)
ยินดีรับความคิดเห็นการแก้ไขข้อเสนอแนะและคำถาม :)