Algoritma minimisasi DFA Brzozowski membangun DFA minimal untuk DFA dengan:
- membalikkan semua tepi dalam , menjadikan status awal sebagai kondisi terima, dan status terima sebagai awal, untuk mendapatkan NFA untuk bahasa terbalik,
- menggunakan konstruksi powerset untuk mendapatkan untuk bahasa terbalik,
- membalikkan tepian (dan swap penerimaan-awal) di untuk mendapatkan NFA untuk bahasa asli, dan
Tentu saja, karena beberapa DFA's memiliki DFA terbalik besar yang eksponensial, algoritma ini berjalan dalam waktu eksponensial dalam kasus terburuk dalam hal ukuran input, jadi mari kita melacak ukuran DFA terbalik.
Jika adalah ukuran input DFA, adalah ukuran DFA minimal, dan ukuran minimum DFA terbalik, lalu berapa jangka waktu algoritma Brzozowski dalam hal , , dan ?n m N n m
Secara khusus, di bawah hubungan apa antara dan apakah algoritma Brzozowski mengungguli algoritma Hopcroft atau Moore?m
Saya telah mendengar bahwa pada contoh-contoh umum dalam praktik / aplikasi , algoritma Brzozowski mengungguli yang lain. Secara informal, seperti apa contoh-contoh khas ini?
sumber
Jawaban:
Ini jawaban parsial tentang pertanyaan ketiga Anda. Bahkan, mungkin algoritma Brzozowski benar-benar tidak mengungguli semua algoritma lainnya dengan sangat jelas dalam minimisasi DFA.
Dalam [1], penulis menyelidiki kinerja praktis dari algoritma minimalisasi DFA / NFA. Algoritma tersebut adalah Hopcroft's, Brzozowski's, dan dua varian Watson's. Mereka menyimpulkan bahwa tidak ada pemenang yang jelas, tetapi algoritma Hopcroft berkinerja lebih baik untuk DFA dengan huruf kecil. Untuk NFA, Brzozowski jelas yang tercepat.
Makalah itu sendiri cukup singkat dan ditulis dengan jelas. Ada juga diskusi dan referensi tambahan yang mungkin bisa membantu.
[1] Almeida M., Moreira N., dan Reis R. Tentang Kinerja Algoritma Minimisasi Automata, Konferensi Keempat tentang Komputasi di Eropa, Juni 2008.
sumber
Sebagian besar di bawah ini adalah dari Parsing Theory oleh Sippu dan Soisalon-Soininen.
Biarkan menjadi himpunan status DFA. Biarkan T menjadi alfabet input. Biarkan | M | = O ( | T | ⋅ | Q | ) menjadi ukuran mesin. Latihan 3.40 menghasilkan O ( | TQ T |M|=O(|T|⋅|Q|) O(|T|⋅|Q|2) O(|T|⋅|Q|⋅log|T|) O(|T|2⋅|Q|)
Ini berarti bahwa dalam kasus terburuk, algoritma Brzozowski secara eksponensial lebih lambat daripada tiga algoritma lainnya. Perhatikan bahwa kasus terburuk benar-benar terjadi: contoh klasik NFA untuk bahasa tersebut(a|b)∗ak k+1 O(2k)
sumber
De Felice dan Nicaud menunjukkan bahwa algoritma Brzozowski adalah asimtotik hiper-polinomial. David telah menunjukkan bahwa, untuk beberapa distribusi pada kondisi akhir, algoritma Hopcroft lebih lambat daripada algoritma Moore.
Referensi
S. De Felice dan C. Nicaud, "Algoritma Brzozowski pada umumnya super polinomial untuk Deterministic Automata". Dalam Prosiding 17 Konferensi Internasional tentang Perkembangan dalam Teori Bahasa (DLT 2013) , Catatan Kuliah dalam Ilmu Komputer, hal. 170–190, 2013. ( PDF )
J. David, "Kompleksitas rata-rata algoritma Moore dan Hopcroft". Ilmu Komputer Teoritis , 417: 50–65, 2012. ( Sains Langsung )
sumber