Algoritma Brzozowski untuk meminimalkan DFA

15

Algoritma minimisasi DFA Brzozowski membangun DFA minimal untuk DFA G dengan:

  1. membalikkan semua tepi dalam G , menjadikan status awal sebagai kondisi terima, dan status terima sebagai awal, untuk mendapatkan NFA N untuk bahasa terbalik,
  2. menggunakan konstruksi powerset untuk mendapatkan G untuk bahasa terbalik,
  3. membalikkan tepian (dan swap penerimaan-awal) di G untuk mendapatkan NFA N untuk bahasa asli, dan
  4. Gmin

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 mNnmNnm

Secara khusus, di bawah hubungan apa antara dan apakah algoritma Brzozowski mengungguli algoritma Hopcroft atau Moore?mnm

Saya telah mendengar bahwa pada contoh-contoh umum dalam praktik / aplikasi , algoritma Brzozowski mengungguli yang lain. Secara informal, seperti apa contoh-contoh khas ini?

Artem Kaznatcheev
sumber
akan sangat membantu jika Anda memasukkan perkiraan O (f (n)) dari algoritma ini. Apakah mereka semua O (n log (n)) dalam kasus "rata-rata"? jika demikian perdebatan mengenai kinerja relatif mereka mungkin sebagian besar merupakan tes yang diterapkan tergantung pada karakteristik statistik / struktur input ... sepertinya Brzozowski berjalan cepat ketika NFA terbalik "tidak besar" ...?
vzn
Hati-hati dengan eksekusi algoritme, Anda mungkin tergoda untuk memperkenalkan kondisi mulai virtual saat melakukan 1. dan 3., yang akan mengarah pada hasil yang salah - lihat di sini . (Tidak salah dalam pertanyaan, Anda hanya perlu berhati-hati agar tidak salah.)
A.Schulz

Jawaban:

5

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.

Juho
sumber
Terima kasih, saya akan melihat kertasnya dan melihat apakah saya dapat menggunakan referensi untuk menemukan jawaban yang lengkap.
Artem Kaznatcheev
5

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 ( | TQT|M|=O(|T||Q|)O(|T||Q|2)O(|T||Q|log|T|)O(|T|2|Q|)

O(2|T|+log|T|+log|Q|)O(2|T|+log|Q|)|T|(|T|+|T||M|)|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)akk+1O(2k)

|T|=O(|T|)O(|T|2|Q|2)|T||Q|O(|T||Q|)

O(|T|loglog|T|)

Alex ten Brink
sumber
1

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 )

nevro
sumber