อัลกอริธึมของ Brzozowski สามารถขยายไปยังออโตเมตของมัวร์ได้ แต่ความซับซ้อนของเวลานั้นมีความซับซ้อนโดยทั่วไป มีอัลกอริธึมอื่น ๆ สำหรับการลดขนาดออโตเมติกให้เล็กที่สุดหรือไม่? อะไรคือเวลาทำงานของอัลกอริทึมเหล่านี้ถ้ามี?
อัลกอริธึมของ Brzozowski สามารถขยายไปยังออโตเมตของมัวร์ได้ แต่ความซับซ้อนของเวลานั้นมีความซับซ้อนโดยทั่วไป มีอัลกอริธึมอื่น ๆ สำหรับการลดขนาดออโตเมติกให้เล็กที่สุดหรือไม่? อะไรคือเวลาทำงานของอัลกอริทึมเหล่านี้ถ้ามี?
คำตอบ:
อัลกอริธึมการลดขนาด DFA ดั้งเดิมนั้นได้รับการออกแบบมาสำหรับ Moore Machinesโดยมีพฤติกรรมที่สังเกตได้ชัดเจนกว่า แต่อัลกอริทึมที่นำเสนอในที่นี้คือการสร้างใหม่จากการย่อขนาด DFA เนื่องจากฉันค้นพบหลักฐานทางประวัติศาสตร์หลังจากข้อเท็จจริง
หลังจาก Wikipedia (มีการเปลี่ยนแปลงที่น่าสังเกต):
เครื่องมัวร์สามารถกำหนดเป็น 6 tuple ประกอบด้วยต่อไปนี้:
- ชุด จำกัด ของรัฐ
- สถานะเริ่มต้น (เรียกอีกอย่างว่าสถานะเริ่มต้น) ซึ่งเป็นองค์ประกอบของQ
- เซต จำกัด ที่เรียกว่าตัวอักษรอินพุต
- ชุด จำกัด เรียกว่าเอาต์พุตตัวอักษร
- ฟังก์ชั่นการเปลี่ยนแปลงการแมปสถานะและตัวอักษรอินพุตไปยังสถานะถัดไป
- ฟังก์ชั่นการส่งออกการแมปแต่ละรัฐกับตัวอักษรที่ส่งออก
จากคำจำกัดความนี้เครื่อง Moore เป็นตัวแปลงสัญญาณสถานะ จำกัด แน่นอน
ฉันไม่มีการอ้างอิงสำหรับการลดขนาดออโตเมติกให้เหลือน้อยที่สุด อย่างไรก็ตามมันไม่ยากเกินกว่าจะจินตนาการถึงอัลกอริธึมที่ได้มาจากอัลกอริธึมที่ใช้สำหรับสถานะออโตมาตะ จำกัด
ความคิดในการลด DFA จะขึ้นอยู่ในลักษณะ Myhill-Nerode ภาษาปกติ
ดังนั้นการย่อเล็กสุดของ DFA จริง ๆ แล้วประกอบด้วยการรวมสถานะ (ถือว่าเป็นชุดของสตริงที่เทียบเท่า) เมื่อใดก็ตามที่มันแสดงให้เห็นว่าสองสถานะที่แตกต่างมีสตริงที่เทียบเท่ากัน
อัลกอริทึมต่อไปนี้เลียนแบบอัลกอริทึม Moore สำหรับการย่อขนาด DFA
เมื่อไม่มีคลาสเหลือที่จำเป็นต้องแยกคลาสที่เหลือของรัฐจะสร้างสถานะของเครื่อง Moore ขั้นต่ำสุด
โดยการก่อสร้างทุกรัฐในชั้นเรียนมีผลลัพธ์เดียวกันซึ่งเป็นผลลัพธ์สำหรับชั้นเรียน
ฉันไม่มีข้อมูลอ้างอิงสำหรับการลดขนาดของเครื่อง Moore นี้ อาจรวมอยู่ในกระดาษของเขา:
มัวร์เอ็ดเวิร์ดเอฟ (1956) "Gedanken- การทดลองเกี่ยวกับเครื่องตามลำดับ" การศึกษาแบบออโตมาตะ , พงศาวดารของคณิตศาสตร์ศึกษา (พรินซ์ตัน, นิวเจอร์ซีย์: สำนักพิมพ์มหาวิทยาลัยพรินซ์ตัน) (34): 129-153
กระดาษนี้คือการอ้างอิงหลักแนะนำมัวร์เครื่อง นอกจากนี้ยังมีการอ้างอิงสำหรับขั้นตอนวิธีการลดปริมาณของมัวร์ DFA ดังนั้นจึงน่าแปลกใจถ้าการปรับอัลกอริธึมเพื่อการลดขนาดของ Moore Machines ไม่ได้มีการเสนอแนะอย่างน้อยในกระดาษนั้น ฉันตรวจสอบกระดาษและเวอร์ชันของอัลกอริธึมการย่อขนาดเล็กสุดที่แสดงนั้นเป็นจริงสำหรับเครื่อง Moore ไม่ใช่สำหรับ DFA กระดาษเขียนได้ดี แต่รูปแบบของเวลาทำให้อ่านยากขึ้นเล็กน้อย เป็นที่น่าสนใจที่จะเห็นว่าความคิดมากมายเกี่ยวกับทฤษฎี Myhill-Nerode ของเครื่องจักรไฟไนต์สเตทได้ถูกร่างไว้ในบทความนี้แล้ว
เวอร์ชั่นของอัลกอริธึมของ Brzozowski ที่ใช้อนุพันธ์ของนิพจน์ทั่วไปนั้นให้ไว้ใน [2], ตอนที่ 12, ตอนที่ 4, ซึ่งให้เครดิตกับ [4] ดู [1] และ [3] สำหรับกรณีทั่วไปของตัวแปลงสัญญาณแบบอนุกรม (คำศัพท์นั้นล้าสมัยไปเล็กน้อยและคำว่าตัวเรียงลำดับแบบลำดับอาจเป็นสิ่งที่เหมาะสมกว่าในปัจจุบัน)
[1] C. Choffrut, การลดทรานสดิวเซอร์ทรานสิดิเนชันตามลำดับ: การสำรวจ, ทฤษฎีบท คอมพ์ วิทย์ 292 (2003), 131–143
[2] S. Eilenberg, Automata, ภาษาและเครื่อง, ฉบับที่ A, Academic Press, 1974
[3] J.-E. Pin, กวดวิชาในการทำงานตามลำดับ (สไลด์)
[4] GN Raney, ฟังก์ชันลำดับ, JACM 5 (1958), 177–180
อัลกอริธึมของ Brzozowskiเป็นจุดเริ่มต้นที่ไม่ดี แม้แต่ Wikipedia ก็บอกคุณมาก:
ดังที่ Brzozowski (1963) ตั้งข้อสังเกตการพลิกกลับขอบของ DFA ทำให้เกิดเครื่องจักร จำกัด (NFA) สำหรับการกลับรายการของภาษาดั้งเดิมและเปลี่ยน NFA นี้เป็น DFA โดยใช้การสร้างมหาอำนาจมาตรฐาน (สร้างเฉพาะสถานะที่เข้าถึงได้ของ DFA ที่แปลงแล้ว) นำไปสู่ DFA ขั้นต่ำสำหรับภาษาที่ตรงกันข้าม ทำซ้ำการดำเนินการกลับรายการนี้เป็นครั้งที่สองที่สร้าง DFA น้อยที่สุดสำหรับภาษาต้นฉบับ ความซับซ้อนของกรณีที่เลวร้ายที่สุดของอัลกอริธึมของ Brzozowski คือเลขชี้กำลังเนื่องจากมีภาษาปกติที่ DFA ที่น้อยที่สุดของการกลับรายการมีขนาดใหญ่กว่า DFA ขั้นต่ำของภาษาอย่างมาก [6] แต่บ่อยครั้งมันจะทำงานได้ดีกว่ากรณีที่เลวร้ายที่สุด
อัลกอริธึมมีรันไทม์กรณีเลวร้ายที่สุดแบบเอกซ์โปเนนเชียลแม้ใน DFAเพราะมันคำนวณออโตเมตันสำหรับการย้อนกลับซึ่งอาจต้องมีขนาดใหญ่แทน ดังนั้นปัญหาของคุณไม่ได้มาจากการขยายไปยังก้อน
พยายามปรับอัลกอริธึมการลด DFA อื่น