Algoritma yang dikenal untuk beralih dari DFA ke ekspresi reguler

28

Saya bertanya-tanya apakah ada algoritma `` lebih baik '' (saya akan menjelaskan dalam arti apa) untuk memulai dari DFA dan membangun ekspresi reguler r sedemikian rupa sehingga L ( A ) = L ( r ) , daripada yang ada di buku karya Hopcroft and Ullman (1979). Di sana, set R k i j digunakan untuk mewakili set string yang mengambil DFA dari status q i ke q j tanpa melalui negara yang bernomor lebih tinggi dari k . Konstruksi ini, walaupun jelas benar dan sangat bermanfaat, agak teknis.ArL(A)=L(r)Rijkqiqjk

Saya sedang menulis monograf tentang teori automata aljabar dan saya tidak ingin mengalihkan perhatian audiens saya dengan terlalu banyak detail teknis (setidaknya tidak dengan detail yang tidak relevan dengan hasil yang ingin saya tampilkan), tetapi saya ingin menyertakan bukti kesetaraan antara DFA dan ekspresi reguler demi kelengkapan. Sebagai catatan, saya menggunakan Glushkov automata untuk beralih dari ekspresi reguler ke DFA. Tampaknya lebih intuitif daripada transisi , yang saya tidak mendefinisikan sama sekali (sekali lagi, karena saya tidak membutuhkannya).ε

Algoritma apa lagi yang diketahui berubah dari DFA ke ekspresi reguler? Saya menghargai kesederhanaan daripada efisiensi (itu `` lebih baik '' bagi saya dalam hal ini), tetapi itu bukan keharusan.

Terima kasih sebelumnya atas bantuan Anda!

Janoma
sumber
1
Ini bukan algoritma yang berbeda, tetapi algoritma dapat dinyatakan aljabar, menggunakan k th kekuatan matriks ekspresi reguler di aljabar yang sesuai. Mungkin Anda akan menemukan ini lebih elegan / ringkas. Saya sedang mencari referensi. Rijkk
Maks
1
The algoritma dasarnya adalah varian dari algoritma Floyd-Warshall untuk masalah All-pasangan-terpendek-jalan, sehingga Anda mungkin menemukan presentasi dalam hal perkalian matriks dengan mencari kata kunci tersebut. Rijk
Jan Johannsen
2
Saya setuju. Ini pada dasarnya adalah algoritma Floyd-Warshall. Itu juga dapat diturunkan menggunakan teknik pemrograman dinamis standar (seperti yang bisa dilakukan oleh Floyd-Warshall).
david
Saya yakin saya menjawab pertanyaan seperti ini sebelumnya, tetapi saya tidak dapat menemukannya.
Raphael
@ Max dapatkah Anda menemukan referensi? Saya tertarik dengan representasi matriks, seharusnya lebih menarik bagi para algebrists sebenarnya.
Janoma

Jawaban:

17

Dua konstruksi lagi: Brzozowski-McCluskey alias eliminasi negara [1], dan eliminasi Gaussian dalam sistem persamaan menggunakan Arden's Lemma. Sumber terbaik untuk ini mungkin adalah buku Jacques Sakarovitch [2].

[1] J. Brzozowski, E. McCluskey Jr., Teknik grafik sinyal untuk diagram keadaan rangkaian berurutan, Transaksi IEEE pada Komputer Elektronik EC-12 (1963) 67-76.

[2] J. Sakarovitch, Elemen Teori Automata. Cambridge University Press, 2009.

Sylvain
sumber
2
Saya menemukan pendekatan memecahkan persamaan menggunakan Lemma Arden yang paling sederhana dan termudah untuk dijelaskan, itu sebabnya saya menyajikannya seperti itu dalam kelas teori pengantar.
Jan Johannsen
Metode sistem persamaan terdengar brilian. Sayangnya, perpustakaan universitas saya tidak memiliki buku yang Anda sebutkan (Sakarovitch), tetapi saya akan mencari di tempat lain.
Janoma
4
Perbandingan konstruksi juga ditemukan dalam makalah Sakarovitch "Bahasa, Ekspresi dan Automaton (kecil)", CIAA 2005, LNCS 3845, Springer (2006) 15-30. Lihat infres.enst.fr/~jsaka/PUB/Files/LESA.pdf
Hermann Gruber
2
Juga, perhatikan bahwa pemesanan di mana status diproses dapat sangat mempengaruhi ukuran ekspresi reguler yang dihasilkan. Ini berlaku selalu benar: apakah Anda melakukannya dengan lemma Arden, McNaughton-Yamada, eliminasi negara, atau varian lain. Beberapa heuristik sederhana untuk memilih pemesanan eliminasi yang baik tersedia.
Hermann Gruber
15

Buku Kozen "Automata & Computability" menyebutkan generalisasi elegan dari algoritma Floyd-Warshall ini. Karena Anda menyebutkan menarik bagi para ahli aljabar, Anda mungkin menemukan itu berguna. Anda akan menemukannya di halaman 58-59 dari teks itu. (Saya pikir buku google memiliki pratinjau.)

2×2

[abcd]=[(a+bdc)(a+bdc)bd(d+cab)ca(d+cab)]

i,jij

n×na,b,c,dm×mm×(nm)(nm)×m(nm)×(nm)2×22×2

nTfF(T)s,fsT

m=1Rijk

Derivasi lain dari struktur aljabar Kleene atas matriks muncul dalam A Completeness Theorem untuk Kleene Algebra dan Aljabar Acara Reguler oleh Kozen.

mikero
sumber
12

Sejauh ini prosedur terbaik yang pernah saya lihat adalah yang disebutkan oleh Sylvain. Secara khusus, tampaknya menghasilkan ekspresi yang lebih ringkas daripada yang lain.

Saya menulis dokumen ini menjelaskan metode untuk siswa musim panas lalu. Ini berkaitan langsung dengan kuliah khusus; referensi yang disebutkan adalah definisi tipikal dari ekspresi reguler. Bukti Lemma Arden terkandung; satu untuk kebenaran metode ini hilang. Sayangnya, ketika saya mempelajarinya dalam kuliah, saya tidak punya referensi.

Raphael
sumber
Saya juga lebih suka bukti itu. Saya merasa elegan dan mudah dijelaskan. Bahkan Arden's Lemma pun tidak sulit. Saya pikir ini akan menjadi metode yang akan saya sertakan dalam dokumen saya.
Janoma
+