NFA ที่มีจำนวนสถานะเป็นเลขชี้กำลังเมื่อมีการกระจายออก


10

ฉันจะสร้างตัวอย่างของ DFA ที่มีสถานะโดยที่ NFA ที่เทียบเท่ามี state ได้อย่างไร เห็นได้ชัดว่าชุดสถานะของ DFA ควรมีชุดย่อยทั้งหมดของชุดสถานะของ NFA แต่ฉันไม่รู้ว่าจะเริ่มอย่างไร ข้อเสนอแนะใดที่จะทำให้ฉันในการติดตามที่ถูกต้อง?2nn


คำถามนี้ค่อนข้างชัดเจน โดยทั่วไปมี DFA ที่เทียบเท่าจำนวนมากสำหรับภาษาปกติที่กำหนดและ NFA ที่เทียบเท่าจำนวนมากสำหรับภาษาปกติที่กำหนด หากคุณต้องการDFA ขั้นต่ำที่มี state สิ่งนี้อาจไม่สามารถทำได้เนื่องจาก NFA ต่าง ๆ สามารถจดจำภาษาเดียวกันและมีจำนวนสถานะที่แตกต่างกัน แต่ตรงกับ DFA ขั้นต่ำเดียวกัน นอกจากนี้หากคุณต้องการเพียงแค่พิจารณา NFA "ขั้นต่ำ" สิ่งนี้จะน่าสนใจยิ่งขึ้น ...2n
Patrick87

2
Patrick ฉันคิดว่า OP หมายถึงตัวอย่างที่ DFA ขั้นต่ำมีค่ามากกว่า NFA ขั้นต่ำ
Yuval Filmus

@ Patrick87 ฉันไม่ได้มองหาอัลกอริทึม ทั้งหมดที่ฉันต้องการคือตัวอย่างของเครื่องคู่หนึ่ง: DFA ที่มีสถานะและ NFA ที่มีรัฐที่ยอมรับภาษาเดียวกัน 2nn
saadtaame

@saadtaame: นั่นน่ารำคาญ: ใช้ DFA ใด ๆ และเพิ่มรัฐพอที่จะเข้าถึง n ตัวอย่างที่น่าสนใจคือสิ่งที่ DFA ที่เทียบเท่ากันน้อยที่สุดมีหลายรัฐ 2n
กราฟิลส์

1
โปรดทราบว่าบทความ Wikipedia เกี่ยวกับ DFA ย่อขนาดเล็กสุดอ้างอิงตัวอย่างที่เหมาะสม (แม้ว่าคุณจะต้องเข้าใจ NFA ขนาดเล็กด้วยตัวคุณเอง)
กราฟิลส์

คำตอบ:


18

ตัวอย่างมาตรฐานคือภาษาของทุกคำบนตัวอักษรขนาดที่ไม่มีตัวอักษรที่แตกต่างกันทั้งหมด มี NFA ที่รับพร้อม state (หรือ state หากคุณอนุญาตให้เริ่มต้นหลายสถานะ): ก่อนอื่นให้เดาตัวอักษรที่หายไปจากนั้นไป (ด้วย -move) ไปยังสถานะที่รับได้ด้วยลูปตัวเอง สำหรับตัวอักษรอื่น ๆ ทั้งหมดกว่าLAnLn+1naϵA

DFA ใด ๆ สำหรับต้องการสถานะอย่างน้อยรัฐ สิ่งนี้สามารถเห็นได้โดยใช้ทฤษฎีบท Myhill-Nerode ให้เป็นสองชุดย่อยที่แตกต่างกันของและคำที่มีตัวอักษรทั้งหมดและเฉพาะในตามลำดับ โดยไม่สูญเสียของทั่วไปเช่นสมมติว่าและให้(AA) แล้วขณะที่LL2nS1,S2Aw(S1),w(S2)S1,S2aS1S2w=w(Aa)w(S1)wLw(S2)wL


10

นี่คือแบบฝึกหัดในหนังสือ "Finite Automata" โดย Mark V. Lawson Heriot-Watt University, Edinburgh, หน้า 68:

ให้1 แสดงให้เห็นว่าภาษาได้รับการยอมรับโดยหุ่นยนต์ที่ไม่ได้กำหนดขึ้นด้วยรัฐ แสดงให้เห็นว่าหุ่นยนต์ใด ๆ ที่กำหนดที่ตระหนักถึงภาษานี้ต้องมีอย่างน้อยรัฐ ตัวอย่างนี้แสดงให้เห็นว่าการเพิ่มขึ้นของเลขชี้กำลังเป็นเลขชี้กำลังในการส่งผ่านจากหุ่นยนต์ที่ไม่ได้กำหนดค่าไปยังเครื่องตรวจวัดอัตโนมัติที่สอดคล้องกันบางครั้งก็หลีกเลี่ยงไม่ได้n1(0+1)1(0+1)n1n+12n


10

ฉันจะเดาว่าคุณหมายถึงว่าDFA ที่ดีที่สุดมีรัฐ อาจจะไม่ได้รับคุณรัฐ แต่มันn)2n2nΩ(2n)

จาก "Communication Complexity" โดย Kushilevitz และ Nisan ในแบบฝึกหัด 12.6:

"สำหรับค่าคงที่ [จำนวนเต็ม - ลบที่ไม่ใช่ค่าคง]ให้พิจารณา (จำกัด ) ภาษา "cLc={www{0,1}c}

และหนังสือเล่มนี้ยังคงขอให้คุณพิสูจน์ว่าคุณสามารถหา co-NFA ที่รู้จักที่ใช้สถานะและคุณไม่สามารถทำได้ดีกว่าสำหรับ DFALcO(c)Ω(2c)


นอกจากนี้การพิสูจน์ส่วนที่สอง "ต้อง" ความซับซ้อนในการสื่อสารดังนั้นสิ่งนี้อาจไม่เหมาะสำหรับวัตถุประสงค์ของคุณ
ทิโมธีซัน

ขอบคุณสำหรับคำตอบ! คุณหมายถึงอะไรโดย co-NFA
saadtaame

โดยทั่วไปให้สลับ "ยอมรับ" กับ "ปฏิเสธ" ในคำจำกัดความของ NFA นั่นคือถ้าไม่มีเส้นทางที่เป็นไปได้ใด ๆ ที่นำไปสู่รัฐที่ปฏิเสธคุณยอมรับไม่เช่นนั้นคุณก็จะปฏิเสธ
ทิโมธีซัน

ในความเป็นจริงขอบเขตที่ต่ำกว่าติดตามค่อนข้างง่ายจาก Myhill-Nerode (ในความเป็นจริงคุณจะได้รับสิ่งที่ต้องการ .) แต่ฉันใช้ร่วม NFAรัฐ 2c(c+1)2cΘ(c2)
Yuval Filmus

ภาษาที่ จำกัด นั้นค่อนข้างน่าเบื่อในเรื่องนี้ ดูที่นี่ด้วย
Raphael

9

นี่คือคำตอบที่ช้า แต่เห็นได้ชัดว่าไม่มีใครให้ทางออกที่ดีที่สุด เอาA={a,b}, Qn={0,1,,n1} et An=(Qn,A,En,{0},{0})กับ

En={(i,a,i+1)0in1}{(n1,a,0)}{(i,b,i)1in1}{(i,b,0)1in1}}
NFA นี้สำหรับตัวอักษรสองตัวอักษรมีรัฐเพียงหนึ่งครั้งแรกและหนึ่งรัฐสุดท้ายและ DFA น้อยที่สุดที่เทียบเท่าของมันมีรัฐn2n

3
ฉลาดมาก! ภาษาที่ยอมรับโดยหุ่นยนต์นี้คือโดยที่ประกอบด้วยคำทั้งหมดที่มีตัวอักษรมากที่สุดครั้ง (an+aWn1b)Wn1an1
Yuval Filmus

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