การตัดสินใจความว่างเปล่าของการตัดกันของภาษาปกติในเวลา subquadratic


23

ให้L1,L2เป็นภาษาปกติสองภาษาที่กำหนดโดย NFAs M1,M2เป็นอินพุต

สมมติว่าเราต้องการที่จะตรวจสอบว่า\ สิ่งนี้สามารถทำได้อย่างชัดเจนโดยอัลกอริธึมกำลังสองซึ่งคำนวณหุ่นยนต์ผลิตภัณฑ์ของแต่ฉันสงสัยว่ามีอะไรที่มีประสิทธิภาพมากขึ้นเป็นที่รู้จักกันM 1 , M 2L1L2M1,M2

มีอัลกอริทึมในการตัดสินใจว่าหรือไม่ อัลกอริทึมที่รู้จักกันเร็วที่สุดคืออะไร?L 1L 2o(n2)L1L2


5
หากใครมีความคิดที่ดีโปรดแจ้งให้เราทราบ แต่ในปัจจุบันมันเป็นปัญหาเปิด หากคุณสามารถแก้ปัญหานี้ในการพูดเชิงเส้นเวลาแล้วพื้นใด ๆ แก้ไขปัญหาโดยเครื่องที่ไม่ได้กำหนดขึ้นโดยใช้เพียงบิต n ของหน่วยความจำสามารถแก้ไข deterministically ใน2n2ครั้ง
Michael Wehar

6
ฉันคิดว่ามันยังคงเปิดให้บริการสำหรับกำลังสองย่อยใด ๆ ข้อมูลเพิ่มเติมบางอย่าง: rjlipton.wordpress.com/2009/08/17/…
Michael Wehar

4
ตัวอย่างเช่น (ตามความเห็นของไมเคิล) สมมุติฐานเวลาแบบเอ็กซ์โปเนนเชียลที่มีความหมายก็หมายความว่าเลขชี้กำลังควรเป็น 2 ฉันคิดว่านี่อาจพิสูจน์ได้ว่าตามมาจากสมมุติฐานเวลาเอ็กซ์โพเนนเชียล ...
Ryan Williams

4
RB: สมมติคุณสามารถทดสอบความว่างเปล่าของทั้งสอง DFAs ขนาดเวลาn 1 + εกับε < 1 ตอนนี้ถ้าคุณมีk DFA ขนาดnคุณสามารถสร้างผลิตภัณฑ์ของk / 2 DFAs แรกและของk / 2 DFAs ที่เหลือได้ จากนั้นทดสอบความว่างเปล่าในเวลา( n k / 2 ) 1 + ε = n 1nn1+εε<1knk/2k/2ซึ่งดีกว่าnk vzn: บทความที่ได้รับรางวัลนี้เขียนโดย @MichaelWehar ซึ่งแสดงความคิดเห็นในหัวข้อนี้ ไมเคิลบางทีคุณอาจส่งคำตอบถ้าคุณมีเวลา! (nk/2)1+ε=n12k+ε2knk
Michael Blondin

4
@RyanWilliams สวัสดี Ryan สิ่งที่ทำให้คุณคิดว่าสมมติฐานเวลาที่อ่อนแอนั้นหมายถึงว่าเราไม่สามารถแก้จุดตัดที่ไม่ว่างเปล่าสำหรับ DFA สองจุดได้เร็วขึ้น? มีคนอื่นแนะนำสิ่งนี้ให้ฉันอีกครั้งเช่นกัน :)
Michael Wehar

คำตอบ:


22

คำตอบง่าย ๆ : หากมีอัลกอริธึมที่มีประสิทธิภาพมากกว่าที่ทำงานในเวลาสำหรับบางδ < 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)

ยินดีรับความคิดเห็นการแก้ไขข้อเสนอแนะและคำถาม :)


1
ทั้งหมดที่ดี แต่คำถามเดิมข้างต้นสำหรับNFAs; ทุกอย่างยังคงติดตามอยู่ไหม? ยังมีรายละเอียดที่สำคัญบางอย่างถูกปล่อยออกมา ดูเหมือนว่าคุ้มค่ากระดาษ หรือมันทั้งหมดในที่เผยแพร่ของคุณ? ถ้าเป็นเช่นนั้นอ้างอิงมัน / ผูกใน theorems ที่มีหมายเลข ฯลฯ นอกจากนี้ยังจะเป็นประโยชน์ในการระบุสิ่งนี้เพิ่มเติมในแง่ของ std คลาสที่ซับซ้อน L, P, NP, PSpace, ExpTime ฯลฯ หากเป็นไปได้ ยังสงสัยว่าถ้ามีสิ่งใดที่สามารถพูดได้เกี่ยวกับทิศทาง "ความแข็งแกร่ง" ความว่างเปล่าทางแยก DFA แบบสองทางขอบเขตล่าง ( ?) → SETH ... ? ต้องแสดงอะไรเพื่อสิ่งนั้น Ω(n2)
vzn

1
สวัสดี VZN ปัญหาการแยกของ NFA นั้นยากกว่าปัญหาการแยกของ DFA เล็กน้อย อย่างไรก็ตามนี่ไม่ใช่กรณีเนื่องจากมีการลดพารามิเตอร์จากจุดตัดที่ไม่ใช่ความว่างเปล่าสำหรับ NFA ไปจนถึงจุดตัดที่ไม่ใช่ความว่างเปล่าสำหรับk DFA สิ่งนี้ถูกกล่าวถึงในบทความแรกของฉัน kk
Michael Wehar

1
บางทีคุณสามารถอธิบายรายละเอียดเพิ่มเติมว่าคุณหมายถึงอะไรเมื่อคุณพูดถึง DFA แบบ 2 ทาง ปัญหาความไม่ว่างเปล่าสำหรับ - การหมุนของ DFA แบบสองทางนั้นยากพอ ๆ กับปัญหาการไม่ตัดกันที่จุดแยกสำหรับ k DFA แบบทางเดียว Link:cs.stackexchange.com/questions/13456/…(2k2)k
Michael Wehar

1
ในแง่ของคลาสความซับซ้อนมาตรฐานคุณสามารถระบุสิ่งนี้ได้เช่น: หมายถึง SETH เป็นเท็จ เมื่อฉันเขียนN s p a c e ( 2 log ( n ) )ฉันหมายถึง2 log ( n )NSpace(2log(n))DTime(n)NSpace(2log(n))2log(n)พื้นที่สำหรับเครื่องทัวริงที่ไม่ได้กำหนดค่าด้วยเทปอินพุตแบบอ่านอย่างเดียวแบบสองทางและเทปทำงานไบนารีแบบอ่าน / เขียนสองทาง
Michael Wehar
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.