สามารถ จำกัด ขอบเขตของออโตมาตา (NDFA) nondeterministic ได้อย่างมีประสิทธิภาพเพื่อกำหนดเป็นออโตมาตา (DFA) ในพื้นที่ / เวลาที่ จำกัด


16

ยี่สิบปีที่ผ่านมาฉันสร้างแพคเกจนิพจน์ทั่วไปที่รวมการแปลงจากนิพจน์ทั่วไปไปยังเครื่องสถานะ จำกัด (DFA) และสนับสนุนโฮสต์ของการดำเนินการนิพจน์ปกติที่ปิด ฉันไม่แน่ใจเกี่ยวกับประสิทธิภาพที่ดีที่สุดของแพ็คเกจ

DFA มีพลังการแสดงออกเช่นเดียวกับ NDFA เนื่องจาก n-state NDFA สามารถแปลงเป็น DFA ที่มีสถานะ 2 ^ n เล็กน้อย อย่างไรก็ตามมีการรับประกันขอบเขตล่างที่ต่ำกว่าสำหรับการแปลงที่ไม่ต้องการการระเบิดแบบเลขชี้กำลังในสถานะหรือไม่?

ฉันไม่สามารถหาตัวอย่างนิพจน์ทั่วไปหรือ NDFA ที่ไม่เหมาะสม แต่ฉันไม่ได้ใช้เวลาคิดมากกับมัน ฉันคาดเดาการแสดงออกปกติเช่น (((((| E | A | B | C) * (e | D | E | F)) * (e | G | H | I | J | K | L | | M)) * ที่ผสมกันระหว่างดาวฤกษ์จำนวนมากและดาวคลีนจะมี NDFA ที่มีขนาดเป็นเชิงเส้น แต่เป็น DFA ที่กว้างขวาง


มีข้อ จำกัด ใด ๆ เกี่ยวกับคลาสของ NFAs ที่คุณต้องการยอมรับเป็นอินพุตหรือไม่ ข้อ จำกัด บางอย่างนำไปสู่ขอบเขตบนที่ดีขึ้น
András Salamon

ไม่ใช่จุดสำคัญมาก แต่ต้องการ ndfa เป็นแท็กของตัวเอง
Lev Reyzin

ใช่มีข้อ จำกัด NFA ถูกสร้างขึ้นโดยตรงจากนิพจน์ทั่วไปโดยถือว่าเป็นกราฟการเปลี่ยนแปลงทั่วไป seas.upenn.edu/~cit596/notes/dave/regexp-nfa4.html
Wesner Moise

คำตอบ:


15

เป็นที่ทราบกันดีว่าสำหรับทุก ๆ คู่ของตัวเลขธรรมชาติn,aนั้นn <= a <= 2^nมี NDFA น้อยที่สุดกับnรัฐที่มี dfa ขั้นต่ำที่เทียบเท่ากันมีaสถานะ (มากกว่าตัวอักษรสี่ตัว)

ดูกระดาษที่นี่: ตายตัวเป่าอัพน้อยออโต จำกัด nondeterministic กว่าตัวอักษรคงที่

บทคัดย่อของกระดาษ:

เราแสดงให้เห็นว่าสำหรับจำนวนเต็มทั้งหมด n และαเช่นนั้น n ≤α≤ 2 ^ n มีออโตเมติก จำกัด nondeterministic ขั้นต่ำของ n สเตตัสด้วยตัวอักษรอินพุตสี่ตัวอักษร มันตามมาว่าในกรณีของตัวอักษรสี่ตัวอักษรไม่มี "หมายเลขเวทมนตร์" คือหลุมในลำดับชั้น สิ่งนี้ช่วยปรับปรุงผลลัพธ์ที่คล้ายกันที่ได้รับโดย Geffert สำหรับตัวอักษรที่เติบโตขนาด n + 2 (Proc. 7th DCFS, Como, Italy, 23-37)

ดังนั้นฉันคิดว่าคำตอบสำหรับคำถามของคุณคือไม่


คำถามกำลังขอให้ "อัลกอริทึม" ทำงานในเวลาและพื้นที่สำหรับเอ็กซ์โปแนนเชียลสำหรับแปลง NFA
Marcos Villagra

@Marcos: หากผลลัพธ์ของคุณเป็นเลขชี้กำลังคุณอาจไม่สามารถมีอัลกอริธึมที่ทำงานในเวลาเลขชี้กำลัง
Aryabhata

1
นี่คือผลลัพธ์ทั่วไป หากมีข้อ จำกัด ที่ทราบในคลาสของอินพุต NFA อาจเป็นไปได้ที่จะทำได้ดีกว่า
András Salamon

@Andras: เห็นด้วย แต่เนื่องจากนี่อาจจะเกี่ยวข้องกับการเขียนโปรแกรม (ซึ่งจะสนับสนุน Kleen * ฯลฯ ) ฉันสงสัยว่าชุดของอินพุต NFA จะถูก จำกัด เฉพาะเซ็ตย่อยที่เหมาะสม
Aryabhata

5
ผลลัพธ์นี้มีความเข้มแข็งเมื่อเร็ว ๆ นี้ที่จะใช้ตัวอักษรสามตัวและสิ่งปลูกสร้างนั้นค่อนข้างง่ายกว่า: portal.acm.org/ …

13

ตัวอย่างคลาสสิกสำหรับภาษาที่มีการแยกชี้แจงระหว่างขนาด DFA และขนาด NFA เป็นภาษาที่ จำกัด ดังต่อไปนี้: สตริงไบนารีของความยาว 2n อย่างแน่นอนซึ่งครึ่งแรกไม่เท่ากับครึ่งหลัง NFA จะคาดเดาดัชนี i ที่ครึ่งแรกและครึ่งหลังไม่เห็นด้วย ขอบเขตล่างสำหรับ DFA นั้นตามมาจากความซับซ้อนของการสื่อสารตัวอย่างเช่น


8

DFA ขั้นต่ำที่สอดคล้องกับ NFA มีสถานะเป็น ^ 2 ในกรณีที่เลวร้ายที่สุดดังนั้นคุณจึงไม่สามารถรับประกันได้เลย หากไม่มีตัวอย่างที่สร้างสรรค์เหตุผลก็คือใน NFA คุณสามารถอยู่ที่สถานะย่อยใด ๆ หลังจากอ่านสตริงอินพุตที่แน่นอนและเซตย่อยแต่ละอันอาจทำงานแตกต่างกันเมื่อสังเกตอักขระหนึ่งตัว สมมติว่าภาษาที่มีอักขระสองตัวในตัวอักษร (a และ b) และ NFA N ที่มี n รัฐที่เริ่มต้นด้วยสถานะการยอมรับที่ s_0 ตอนนี้ระบุชุดย่อยทั้งหมดของสถานะของ N และสร้างตารางการเปลี่ยนแปลงเช่นการสังเกต "a" จากชุดย่อย S_i พาคุณไปเซ็ตย่อย S_i + 1 และการสังเกต b นำคุณไปเซตย่อย S_i-1 (นี่เป็นไปได้สำหรับการแจกแจงบางอย่าง ) ตอนนี้ออโตมาตะนี้มี n สหรัฐอเมริกาและยอมรับลำดับของ ma และ nb เช่นนั้น mn = 0 mod 2 ^ | N |, และไม่สามารถแสดงด้วย DFA ที่มีน้อยกว่า 2 ^ | N | สถานะ (เนื่องจากอาจจำเป็นต้องวนผ่านชุดย่อยทั้งหมดของสถานะของ NFA N)


สิ่งนี้สามารถกลายเป็นข้อโต้แย้งที่บอกว่า "ถ้า (สิ่งที่ไม่ดี) ถูกหลีกเลี่ยงใน NFA หรือไม่แล้ว DFA จะมีสถานะจำนวนไม่เกินจำนวน"?
András Salamon

1
@ Andrásใช่ "หากการหลีกเลี่ยง nondeterminism ใน NFA แสดงว่า DFA นั้นมีจำนวนของสถานะต่ำเกินไป"
P Shved

2
พาเวลใช่แน่นอน มีคุณสมบัติที่ไม่สำคัญอื่น ๆ ที่สามารถรับรู้ได้อย่างมีประสิทธิภาพซึ่งรับประกันการระเบิดแบบเอ็กซ์โปเนนเชียลหรือไม่?
András Salamon
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.