NFA umum (GNFA)
NFA umum, disingkat GNFA (generalized nondeterministic finite automaton), adalah otomaton nondeterministik yang transisinya tidak hanya boleh berupa simbol alfabet, tetapi juga ekspresi reguler.
Definisi
GNFA akan kita perlukan dalam algoritma konversi otomaton hingga menjadi ekspresi reguler. Jadi, GNFA adalah NFA yang transisinya didefinisikan dengan ekspresi reguler. Contoh GNFA seperti itu:
Terlihat, misalnya, bahwa dari state q2 ada transisi ke state qf yang diberi label ekspresi reguler a∗ b. Syarat-syarat lain untuk GNFA:
- State awal q0 harus memiliki transisi ke semua state lainnya. Pada gambar terlihat bahwa dari state q0 ada transisi ke semua state lainnya.
- GNFA hanya memiliki satu state akhir, dan semua state lainnya memiliki transisi ke state ini. Seperti terlihat pada gambar, semua state memiliki panah yang mengarah ke qf.
- State awal tidak boleh sama dengan state akhir. Jadi, GNFA memiliki setidaknya dua state.
- Semua state lainnya, selain state awal dan state akhir, harus memiliki transisi ke semua state lainnya, selain state awal dan state akhir, termasuk loop (transisi dari state qi ke state qi).
Konversi NFA biasa menjadi GNFA
Jika ada suatu NFA, konversinya menjadi GNFA cukup sederhana.
- Buat state awal baru qs dan buat transisi epsilon ke state awal semula.
- Buat state akhir baru qf, lalu dari semua state akhir semula buat transisi epsilon ke state qf. State akhir semula dijadikan state biasa.
- Jika di suatu tempat ada transisi ganda (misalnya dari state q1 kita dapat sampai di state q2 melalui simbol 0 maupun simbol 1), aturan-aturan tersebut kita gabungkan menjadi satu ekspresi reguler, dan semua simbol semula kita sambung dengan operator gabungan (artinya, panah kita beri label ekspresi reguler 0|1).
- Jika pada otomaton tidak ada transisi yang menurut definisi seharusnya ada, transisi tersebut kita buat dan kita beri label ekspresi reguler ∅. Dengan begitu, bahasa yang diterima otomaton tidak berubah, karena transisi seperti itu tidak pernah dijalankan.
Otomaton ini dapat digunakan untuk mengonversi otomaton menjadi ekspresi reguler.
Daftar isi: Ekspresi reguler, Konversi ekspresi reguler menjadi otomaton, NFA umum (GNFA), Konversi otomaton menjadi ekspresi reguler