อัลกอริทึมของ Brzozowski สำหรับการลด DFA


16

อัลกอริทึมการลดขนาด DFA ของ Brzozowski สร้าง DFA ขั้นต่ำสำหรับ DFA Gโดย:

  1. การกลับขอบทั้งหมดในGทำให้สถานะเริ่มต้นเป็นสถานะยอมรับและยอมรับสถานะเริ่มต้นเพื่อรับ NFA Nสำหรับภาษาย้อนกลับ
  2. ใช้การสร้าง powerset เพื่อรับGสำหรับภาษาย้อนกลับ
  3. ย้อนกลับขอบ (และเริ่มต้นยอมรับสลับ) ในGที่จะได้รับ NFA Nสำหรับภาษาต้นฉบับและ
  4. Gmin

แน่นอนเนื่องจาก DFA บางตัวมี DFA ใหญ่แบบย้อนกลับแบบทวีคูณอัลกอริทึมนี้จะทำงานในเวลาเอ็กซ์โพเนนเชียลในกรณีที่เลวร้ายที่สุดในแง่ของขนาดของอินพุตดังนั้นให้ติดตามขนาดของ DFA ย้อนกลับ

ถ้าคือขนาดของอินพุต DFA,คือขนาดของ DFA ที่น้อยที่สุดและที่มีขนาดของ DFA ย้อนกลับน้อยที่สุดดังนั้นเวลารันไทม์ของอัลกอริทึมของ Brzozowski ในแง่ของ ,และคืออะไร?ยังไม่มีข้อความnม.n เมตรยังไม่มีข้อความnม.

โดยเฉพาะอย่างยิ่งภายใต้ความสัมพันธ์ระหว่างและอัลกอริทึมของ Brzozowski มีประสิทธิภาพเหนือกว่าอัลกอริทึมของ Hopcroft หรือ Moore หรือไม่nม.

ฉันเคยได้ยินว่าในตัวอย่างทั่วไปในทางปฏิบัติ / แอปพลิเคชันอัลกอริทึมของ Brzozowski มีประสิทธิภาพเหนือกว่าผู้อื่น อย่างไม่เป็นทางการตัวอย่างทั่วไปเหล่านี้เป็นอย่างไร


มันจะมีประโยชน์ถ้าคุณรวมการประมาณ O (f (n)) ของอัลกอริทึมเหล่านี้ พวกเขาทั้งหมด O (n log (n)) ในกรณี "เฉลี่ย" หรือไม่ ถ้าเป็นเช่นนั้นการถกเถียงเรื่องประสิทธิภาพการทำงานของญาติส่วนใหญ่อาจเป็นการทดสอบที่ใช้ขึ้นอยู่กับลักษณะทางสถิติ / โครงสร้างของอินพุต ... ดูเหมือนว่า Brzozowski ทำงานได้อย่างรวดเร็วเมื่อ NFA ย้อนกลับคือ "ไม่ใหญ่" ... ?
vzn

ระวังจะมีการดำเนินการของอัลกอริทึมที่คุณอาจจะอยากที่จะแนะนำรัฐเริ่มต้นเสมือนเมื่อดำเนินการ 1 และ 3 ซึ่งจะนำไปสู่ผลลัพธ์ที่ไม่ถูกต้อง - ดูที่นี่ (มันไม่ผิดในคำถามคุณเพียงแค่ต้องระวังไม่ให้เข้าใจผิด)
A.Schulz

คำตอบ:


5

นี่คือคำตอบบางส่วนเกี่ยวกับคำถามที่สามของคุณ ในความเป็นจริงบางทีอัลกอริทึมของ Brzozowski จริง ๆ แล้วไม่ได้มีประสิทธิภาพสูงกว่าอัลกอริธึมอื่นทั้งหมด

ใน [1] ผู้เขียนตรวจสอบประสิทธิภาพการทำงานของอัลกอริธึมการลดขนาด DFA / NFA อัลกอริธึมคือ Hopcroft's, Brzozowski's และอีกสองสายพันธุ์ของ Watson พวกเขาสรุปว่าไม่มีผู้ชนะที่ชัดเจน แต่อัลกอริทึมของ Hopcroft ทำงานได้ดีขึ้นสำหรับ DFAs ที่มีตัวอักษรขนาดเล็ก สำหรับ NFA นั้น Brzozowski นั้นชัดเจนที่สุด

กระดาษนั้นค่อนข้างสั้นและชัดเจน นอกจากนี้ยังมีการสนทนาและการอ้างอิงเพิ่มเติมที่อาจเป็นประโยชน์


[1] Almeida M. , Moreira N. และ Reis R. ต่อประสิทธิภาพของอัลกอริธึมการลดขนาดอัตโนมัติการประชุมที่สี่เกี่ยวกับการคำนวณในยุโรปมิถุนายน 2551


ขอบคุณฉันจะดูที่กระดาษและดูว่าฉันสามารถใช้การอ้างอิงเพื่อค้นหาคำตอบที่สมบูรณ์
Artem Kaznatcheev

5

ส่วนใหญ่มาจากทฤษฎีการแยกวิเคราะห์โดย Sippu และ Soisalon-Soininen

ให้เป็นชุดของ DFA ให้เป็นตัวอักษรอินพุต ให้เป็นขนาดของเครื่อง แบบฝึกหัด 3.40 ให้อัลกอริทึมสำหรับการย่อขนาดสถานะ ตามที่Wikipedia อธิบายอัลกอริทึมของ Hopcroft มีเวลาทำงานของและอัลกอริทึมของ Moore มีเวลาทำงานของ .T | M | = O ( | T || Q | ) O ( | T || Q | 2 ) O ( | T || Q |เข้าสู่ระบบ| T | ) O ( | T | 2| Q | )QT|M|=O(|T||Q|)O(|T||Q|2)O(|T||Q|เข้าสู่ระบบ|T|)O(|T|2|Q|)

ทฤษฎีบท 3.30 ระบุว่าการสร้างชุดย่อยสามารถทำได้ในให้ผลเป็นออโตเมติกขนาด (อันที่จริงถ้าผลลัพธ์ที่ได้คือสถานะเวลาทำงานคือ ) การกลับรายการสองครั้งและการกำหนดครั้งที่สองจึงไม่สำคัญในเวลาใช้งานดังนั้นเวลาการทำงานแบบซีมโทติคของอัลกอริทึมของ Brzozowski จึงเหมือนกับการสร้างชุดย่อยO ( 2 | T | + log | Q | ) | T | ( | T ' | + | T || M | ) | Q |O(2|T|+เข้าสู่ระบบ|T|+เข้าสู่ระบบ|Q|)O(2|T|+เข้าสู่ระบบ|Q|)|T'|(|T'|+|T||M|)|Q|

ซึ่งหมายความว่าในกรณีที่เลวร้ายที่สุดอัลกอริทึมของ Brzozowski นั้นช้ากว่าชี้แจงสามอัลกอริธึมอื่น ๆ โปรดทราบว่ากรณีที่เลวร้ายที่สุดเกิดขึ้นจริง: ตัวอย่างคลาสสิกของ NFA สำหรับภาษามีสถานะและ DFA ที่เกี่ยวข้องน้อยที่สุดมีสถานะในขณะที่ตรงกันข้าม ของ NFA นั้นถูกกำหนดไว้แล้วดังนั้นการเรียกใช้อัลกอริทึมของ Brzozowski กับ NFA ที่กลับด้านนี้ทำให้เกิดพฤติกรรมที่เลวร้ายที่สุด k + 1 O ( 2 k )(a|)* * * *akk+1O(2k)

อย่างไรก็ตามถ้าการสร้างเซตย่อยให้ออโตมาตาขนาดดังนั้นเวลาทำงานของมันก็คือซึ่งมักจะเป็นกรณี ในอินพุตจริง นอกจากนี้หากใช้ความระมัดระวังอย่างเหมาะสมเมื่อคำนวณการปิดของรัฐสิ่งนี้สามารถทำได้เร็วกว่ามากในกรณีส่วนใหญ่ (นั่นคือกรณีที่การปิดมีขนาดเล็ก) ช่วยประหยัดปัจจัยในทางปฏิบัติ (ด้วยเหตุผลเดียวกันกับที่สกรรมกริยาสามารถคำนวณได้อย่างรวดเร็วในโลกแห่งความเป็นจริงตัวอย่าง) นอกจากนี้หากอินพุทและออโตเมติกกลางมีเบาบางซึ่งหมายความว่าสถานะมีการเปลี่ยนผ่านเล็กน้อยดังนั้นปัจจัยถูกบันทึกไว้ซึ่งจะให้เวลาทำงานในอินพุต 'ดี'|T'|=O(|T|)O(|T|2|Q|2)|T||Q|O(|T||Q|)

น่าเสียดายที่ฉันไม่คุ้นเคยกับอัลกอริทึมของ Hopcroft หรือ Moore เพื่อให้วิเคราะห์เวลาการทำงานในกรณีทั่วไป วิกิพีเดียพูดถึงเวลาทำงานในบางกรณีซึ่งจะทำให้อัลกอริทึมทั้งสามนี้เปรียบได้O(|T|เข้าสู่ระบบเข้าสู่ระบบ|T|)


1

De Felice และ Nicaud แสดงให้เห็นว่าอัลกอริทึมของ Brzozowski นั้นเป็นแบบพหุนามแบบ hyper-asymptotically เดวิดแสดงให้เห็นว่าสำหรับอัลกอริทึมของ Hopcroft หลาย ๆ ครั้งนั้นช้ากว่าอัลกอริธึมของ Moore

อ้างอิง

S. De Felice และ C. Nicaud "อัลกอริธึมของ Brzozowski นั้นเป็นชื่อพหุนามแบบ Super-Polynomial สำหรับ Automata แบบกำหนดได้" ในการประชุมวิชาการนานาชาติครั้งที่ 17 เรื่องการพัฒนาทฤษฎีภาษา (DLT 2013) , เอกสารประกอบการบรรยายในวิทยาการคอมพิวเตอร์, หน้า 170–190, 2013. ( PDF )

J. David "ความซับซ้อนเฉลี่ยของอัลกอริธึมของ Moore และ Hopcroft" ทฤษฎีวิทยาการคอมพิวเตอร์ , 417: 50–65, 2012 ( วิทยาศาสตร์โดยตรง )

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