จุดตัด DFA ในพื้นที่ subquadratic


25

จุดตัดของ DFA สองอัน (น้อยที่สุด) ที่มี n state สามารถคำนวณได้โดยใช้เวลาและพื้นที่O (n 2 ) สิ่งนี้เหมาะสมที่สุดโดยทั่วไปเนื่องจาก DFA ที่เกิดขึ้น (น้อยที่สุด) อาจมีสถานะn 2 อย่างไรก็ตามหาก DFA ที่น้อยที่สุดที่เป็นผลลัพธ์มี z ฯ โดยที่ z = O (n) สามารถคำนวณได้ใน space n 2-epsสำหรับ eps คงที่> 0 หรือไม่ ฉันจะสนใจผลดังกล่าวแม้ในกรณีพิเศษที่อินพุท DFA นั้นเป็นแบบวนรอบ


3
อืม ... ถ้า n-state DFA สองตัวนั้นเป็นวงจรดังนั้นแต่ละคนก็ยอมรับชุดคำที่มีความยาวไม่เกิน n ที่สุดซึ่งในกรณีนี้การแยกของพวกเขาเป็นเพียงจุดตัดของกราฟการเปลี่ยนสองอันซึ่งมีรัฐ n และ สามารถคำนวณได้ในเวลาเชิงเส้นและพื้นที่ หรือว่าฉันขาดอะไรไป?
Joshua Grochow

4
ใช่วงจร DFA ยอมรับเฉพาะชุดคำที่ จำกัด เท่านั้น แต่มีตัวอย่างของ DFA ที่มีจุดตัดที่มีขนาด n ^ 2 ตัวอย่างเช่นลองนึกถึง DFA หนึ่งอันที่ยอมรับสตริงของแบบฟอร์ม AABC (โดย ABC คือสตริงความยาว k) และอีกอันหนึ่งที่ยอมรับสตริงของแบบฟอร์ม ABCC
Rasmus Pagh

1
retagging: cs.cc เป็นการกำหนด arxiv ดังนั้นแท็กที่กำหนดไม่จำเป็นต้องใช้คำนำหน้า cs.cc
Suresh Venkat

คำตอบ:


15

คำตอบคือใช่โดยไม่มีข้อกำหนดใด ๆ กับขนาดของหุ่นยนต์ มันสามารถคำนวณได้ในพื้นที่แม้สำหรับ DFA ที่เป็นค่าคงที่k kO(log2n)kk

ให้ (เป็น DFAs เราแสดงให้เห็นว่าเนื่องจากซึ่งคำนวณ DFA ขั้นต่ำที่สุดให้รู้จักสามารถทำได้ในพื้นที่ เราพิสูจน์ผลลัพธ์ทางเทคนิคก่อนi [ k ] ) k A 1 , , A kL ( A 1 ) L ( A k ) O ( เข้าสู่ระบบ2 n )Ai=(Qi,Σi,δi,zi,Fi)i[k])kA1,,AkL(A1)L(Ak)O(log2n)

คำจำกัดความ 1 : ให้เป็นสองสถานะแล้ว iff ,คิวR W Σ * Q W F R w Fq,rqrwΣq.wFr.wF

ตอนนี้เราพิจารณาหุ่นยนต์ได้จากการสร้างผลิตภัณฑ์คาร์ทีเซียนแบบคลาสสิค ให้และเป็นรัฐq = ( q 1 , , q k ) r = ( r 1 , , r k ) AAq=(q1,,qk)r=(r1,,rk)A

บทที่ 1 : การตัดสินใจว่าอยู่ใน NL หรือไม่qr

หลักฐาน (ร่าง): เราแสดงให้เห็นว่าการทดสอบความไม่เท่าเทียมกันอยู่ใน NL และใช้ NL = coNL คาดเดาคำ (ครั้งละหนึ่งตัวอักษร) เช่นนั้นคือสถานะสุดท้ายและไม่ได้ สิ่งนี้สามารถทำได้โดยการคำนวณในการเข้าสู่ระบบพื้นที่สำหรับและการใช้ความจริงที่ว่าเป็นที่สิ้นสุด IFF[k] ก็สามารถที่จะแสดงให้เห็นว่าหมายถึงการดำรงอยู่ของที่ของโพลีขนาด Q w r . W Qฉัน W , rฉัน W ฉัน[ k ] คิวคิวฉันF ฉันwΣq.wr.wqi.w,ri.wi[k]qq rqiFii[k]qrw

เลมม่า 2 : การตัดสินใจว่า (เข้าถึง) เข้าถึงได้ใน NL หรือไม่q

หลักฐาน (ร่าง): Guess (โพลีขนาด) เส้นทางจากเพื่อ ( )q ฉันฉัน[ k ]ziqii[k]

คำจำกัดความที่ 2 : พิจารณาสถานะของตามลำดับคำศัพท์ กำหนดว่าเป็นสถานะที่เข้าถึงได้ครั้งแรกและสถานะที่เข้าถึงได้ครั้งแรกตามหลังซึ่งไม่เท่ากับสถานะก่อนหน้าใด ๆ เรากำหนดในฐานะที่ไม่ซ้ำกันเช่นนั้น(i)s ( 1 ) s ( ฉัน) s ( ฉัน- 1 ) ( Q ) ฉันQ s ( ฉัน)As(1)s(i)s(i1)c(q)iqs(i)

แทรก 3 :สามารถคำนวณได้ในพื้นที่O ( บันทึก2 n )s(i)O(log2n)

หลักฐาน (ภาพร่าง): คำนิยาม 2 ให้อัลกอริธึม เราใช้ตัวนับเพื่อย้ำข้ามรัฐ ให้และเป็นสถานะปัจจุบัน ในแต่ละรัฐเราใช้ lemma 2 เพื่อตรวจสอบว่าสามารถเข้าถึงได้หรือไม่ ถ้าเป็นเราห่วงในทุกรัฐก่อนหน้านี้และเราตรวจสอบว่าใด ๆ ของพวกเขาจะเทียบเท่ากับคิวถ้าไม่มีใด ๆ เราเพิ่มและเอาท์พุทถ้าฉัน มิฉะนั้นเราจะเก็บเป็นและดำเนินการต่อ เนื่องจากเราจัดเก็บจำนวนตัวนับคงที่เท่านั้นและการทดสอบของเราสามารถทำได้ในj 0 q q q j q j = ฉันq s ( j ) NL DSPACE ( บันทึก2 n )kj0qqqjqj=iqs(j)NLDSPACE(log2n)นี่เป็นการพิสูจน์ที่สมบูรณ์

ควันหลง 1 :สามารถคำนวณได้ในพื้นที่O ( บันทึก2 n )c(q)O(log2n)

ทฤษฎีบท : ลดสามารถทำได้ในพื้นที่O ( บันทึก2 n )AO(log2n)

หลักฐาน (ภาพร่าง): ปล่อยเป็นที่ใหญ่ที่สุดเช่นว่าถูกกำหนด (เช่น. จำนวนของชั้นเรียนของ ) เราให้อัลกอริทึมที่แสดงออโตเมติกโดยที่ฉันs ( ฉัน) ' = ( Q ' , Σ , δ ' , Z ' , F ' )1m|Q0||Q1|is(i)A=(Q,Σ,δ,z,F)

  • Q={s(i):i[m]} ;
  • F={qQ:qiFii[k]} ;
  • q = ( z 0 , , z k )z=s(c(q))ที่z_k)q=(z0,,zk)

ตอนนี้เราจะแสดงวิธีการคำนวณเดลต้า' สำหรับทุก ๆ , คำนวณและผลผลิตการเปลี่ยนแปลงขวา) โดยแทรก 3 และข้อพิสูจน์ที่ 1 ขั้นตอนวิธีนี้วิ่งในพื้นที่ มันสามารถตรวจสอบได้ว่ามีน้อยและ(A)ฉัน[ M ] , Σ Q s ( ฉัน) a ( s ( i ) , a , s ( c ( q ) ) ) O ( บันทึก2 n ) A L ( A ) = L ( A )δi[m],aΣqs(i).a(s(i),a,s(c(q)))O(log2n)AL(A)=L(A)


3
อัลกอริทึมที่ดี! นี่เป็นวิธีที่แตกต่างกันเล็กน้อยในการดูอัลกอริทึมนี้ หลักของมันคือการที่ลดสถานะของใด ๆ DFA ให้สามารถทำได้ในเวลาพหุนามและพื้นที่ หลังจากนั้นมันง่ายที่จะสร้าง DFA บางตัวที่เป็นตัวแทนของจุดตัดในพื้นที่ลอการิทึม (ดังนั้นในเวลาพหุนามและพื้นที่ ) และเราสามารถเขียนฟังก์ชั่นสองอย่างที่คำนวณได้ในเวลาพหุนามและช่องว่าง (ในทำนองเดียวกันกับการเขียนสองการลดช่องว่างแบบลอการิทึม) ทำให้เกิดอัลกอริธึมทั้งหมดในเวลาพหุนามและช่องว่างO ( บันทึก2 n ) O ( บันทึก2 n ) O ( บันทึก2 n )O(log2n)O(log2n)O(log2n)O(log2n)
Tsuyoshi Ito

2
ฉันเพิ่งเห็นคำตอบนี้ ... ฉันไม่เห็นสาเหตุที่อัลกอริทึมทำงานใน polytime และพื้นที่พร้อมกัน ใช่แต่ไม่ทราบว่า - นั่นคือเราสามารถ รับอัลกอริทึมที่ทำงานใน polytime และเราสามารถรับอัลกอริทึมอื่นที่ทำงานในพื้นที่แต่ฉันไม่ทราบวิธีแก้ปัญหาใน polytime และพื้นที่เดียว ขั้นตอนวิธี O(log2n)NLPDSPACE[log2n]NLTISP[nO(1),log2n]O(log2n)NLO(log2n)
Ryan Williams

คุณพูดถูกฉันไม่รู้เหมือนกัน ฉันโพสต์เมื่อนานมาแล้วดังนั้นฉันจึงไม่แน่ใจว่าทำไมฉันจึงเขียนด้วยวิธีนี้ แต่บางทีฉันอาจหมายถึง "เวลาพหุนามหรือ O (log² n)" ฉันจะแก้ไขเพราะมันทำให้เข้าใจผิด ขอขอบคุณ!
Michael Blondin

14

ดิ๊กลิปตันและเพื่อนร่วมงานได้แก้ไขปัญหานี้และลิปตันบล็อกเกี่ยวกับที่นี่:

http://rjlipton.wordpress.com/2009/08/17/on-the-intersection-of-finite-automata/

ดูเหมือนว่าการทำดีกว่า O (n ^ 2) จะเปิดแม้ในกรณีพิเศษอย่างมากในการพิจารณาว่าจุดตัด DFA กำหนดภาษาว่างเปล่าหรือไม่
กระดาษให้ผลที่ซับซ้อนซึ่งเป็นผลมาจากอัลกอริทึมที่ได้รับการปรับปรุงให้ดีขึ้นไม่เพียงแค่ 2 DFAs ในจุดตัด แต่มีจำนวนที่มากขึ้นเช่นกัน


1
แล้วขอบเขตที่ต่ำกว่าล่ะ?
Marcos Villagra

1
เพียงเพื่อชี้แจงคำถาม: ฉันยินดีที่จะใช้เวลา O (n ^ 2) เวลา (หรือแม้กระทั่ง n ^ O (1) เวลา) เพื่อปรับปรุงพื้นที่ที่ถูกผูกไว้
Rasmus Pagh

13

หากคุณได้รับ k DFA (k เป็นส่วนหนึ่งของอินพุต) และต้องการทราบว่าจุดตัดของพวกเขาว่างเปล่าหรือไม่ปัญหานี้คือ PSPACE ที่สมบูรณ์โดยทั่วไป:

Dexter Kozen: ขอบเขตที่ต่ำกว่าสำหรับระบบพิสูจน์ตามธรรมชาติ FOCS 1977: 254-266

บางทีถ้าคุณศึกษาข้อพิสูจน์นี้อย่างรอบคอบ (และสิ่งปลูกสร้างที่คล้ายกันโดยลิปตันและผู้เขียนร่วมของเขา) คุณอาจพบว่าพื้นที่บางส่วนมีขอบเขตที่ต่ำกว่าแม้จะเป็นค่าคงที่ k


ขอบคุณสำหรับตัวชี้นี้ ฉันคาดเดาว่าสิ่งนี้อาจนำไปสู่พื้นที่ n ^ Omega (1) ที่ต่ำกว่าขอบเขตบนพื้นที่เพิ่มเติมที่จำเป็นนอกเหนือจากอินพุต แต่อาจเป็นไปได้หรือไม่ที่จะนำไปสู่การลดลงของพื้นที่ว่างเชิงเส้นแบบซุปเปอร์?
Rasmus Pagh

1
@ user124864 จาก DFA ที่มีสถานะแต่ละตัวหุ่นยนต์ของผลิตภัณฑ์จะมีสถานะเป็นขณะนี้มีสองเทคนิคที่คุณสามารถทำได้เพื่อลดขนาดของมัน อย่างแรกคือคุณเพียงพิจารณาส่วนประกอบที่เข้าถึงได้ของกราฟผลิตภัณฑ์ ประการที่สองคุณสามารถลด DFA ของผลิตภัณฑ์ได้ ในตอนท้ายของวันการค้นหาว่าภาษาใดที่ออโตเมชั่นจดจำได้ยาก knnk
Michael Wehar

1
@ user124864 แม้เพียงแค่พยายามตรวจสอบว่าผลิตภัณฑ์ DFA รู้จักภาษาที่ไม่ว่างเปล่านั้นเป็นเรื่องยากหรือไม่ นี่คือปัญหาการไม่ว่างทางแยก โดยยากฉันหมายความว่ามันเป็นสมบูรณ์ในความรู้สึกที่แข็งแกร่ง XNL
Michael Wehar

1
@ user124864 หากคุณสามารถแก้ไขได้ในเวลาน้อยกว่าแล้วเราจะได้อัลกอริทึมที่เร็วขึ้นสำหรับปัญหาที่สมบูรณ์ของ PSPACE มันไม่สามารถแก้ไขได้ในพื้นที่ไบนารีที่ไม่ได้กำหนดไว้ ไม่มีใครรู้ว่าเราสามารถแก้ปัญหาได้ในพื้นที่น้อยกว่าพื้นที่ไบนารีที่กำหนดไว้ ไม่มีใครรู้ว่าเราสามารถแก้มันในเวลาพหุนามกำหนดพร้อมกันและพื้นที่ไบนารีสำหรับฟังก์ชั่นใด ๆ (ทำเช่นนั้นจะปรับปรุงทฤษฎีบทของ Savitch) nko(1)klog(n)k2log2(n)f(k)log2(n)f
Michael Wehar

1
@ user124864 หมายเหตุ: เรามีทั้งสองอย่างต่อไปนี้ (1) การเอาชนะเวลาหมายถึงขั้นตอนวิธีที่กำหนดได้เร็วขึ้นสำหรับปัญหาที่สมบูรณ์แบบของ PSPACE และ (2) การตีเวลาที่ไม่ใช่แบบกำหนดได้หมายถึงอัลกอริทึมที่ไม่ได้กำหนดขึ้นอย่างรวดเร็วสำหรับปัญหาที่สมบูรณ์แบบ PSPACE nknk
Michael Wehar

7

ได้รับสองออโต,ยอมรับภาษา จำกัด (ออวัฏจักร) ความซับซ้อนของรัฐของที่อยู่ใน (1) ผลที่ได้นี้ยังถือสำหรับ DFAs เอก (ไม่จำเป็นต้องวัฏจักร) (2) อย่างไรก็ตามคุณดูเหมือนจะพูดถึงพื้นที่ที่ต้องใช้ในการคำนวณจุดตัดของออโตสองตัว ฉันไม่เห็นว่าการก่อสร้างแบบคลาสสิกโดยใช้ผลิตภัณฑ์คาร์ทีเซียนใช้พื้นที่อย่างไร สิ่งที่คุณต้องการคือจำนวนเคาน์เตอร์ขนาดลอการิทึมคงที่ เมื่อคุณคำนวณฟังก์ชั่นการเปลี่ยนภาพสำหรับสถานะใหม่คุณจะต้องสแกนอินพุตโดยไม่ต้องดูข้อมูลใด ๆ ที่สร้างขึ้นก่อนหน้านี้ABL(A)L(B)Θ(|A||B|) O(n2)(q,r)

บางทีคุณต้องการที่จะแสดงออโตเมติกน้อยที่สุด? หากเป็นกรณีนี้ฉันไม่มีเงื่อนงำว่าจะสามารถทำได้หรือไม่ ความซับซ้อนของสถานะของการแยกสำหรับภาษาที่ จำกัด ดูเหมือนจะไม่ได้รับการสนับสนุน อย่างไรก็ตาม DFA ที่ไม่เป็นเอกภาพมีความซับซ้อนของรัฐเหมือนกันและฉันคิดว่ามันสามารถทำได้ด้วยออโตมาตะดังกล่าว ด้วยการใช้ผลลัพธ์จาก(2)คุณจะได้ขนาดที่แน่นอนของออโตเมติกที่รู้จักการแยก ขนาดนี้ถูกอธิบายด้วยความยาวของหางและรอบดังนั้นฟังก์ชันการเปลี่ยนสามารถคำนวณได้อย่างง่ายดายด้วยพื้นที่น้อยมากเนื่องจากโครงสร้างถูกอธิบายโดยทั้งสองขนาด จากนั้นสิ่งที่คุณต้องทำคือการสร้างชุดของสถานะสุดท้าย ให้เป็นจำนวนของสถานะในออโตเมตอนที่ได้จากนั้นสำหรับ , สถานะทั้งหมด1 i n ฉันเป็นฉัน A Bn1iniเป็นรัฐสุดท้าย IFFได้รับการยอมรับจากทั้งและBการทดสอบนี้สามารถดำเนินการด้วยพื้นที่น้อยaiAB


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