Back to IF2224 Teori Bahasa Formal dan Otomata
Topic
Questions/Cues
- Apakah ε-NFA ekuivalen dengan DFA?
- Bagaimana cara mengubah ε-NFA ke DFA?
- Bagaimana menentukan start state DFA baru?
- Bagaimana menentukan fungsi transisi (delta_D) baru?
- Apa peran ECLOSE dalam konversi ini?
Reference Points
- 2022_E-NFA.pdf: 8-11
- 2021_Bab-2-FSA.pdf: 91-97
Prinsip Ekuivalensi
Sama seperti NFA, setiap ε-NFA juga terbukti ekuivalen dengan sebuah DFA. Ini berarti untuk setiap ε-NFA E, pasti ada sebuah DFA D yang menerima bahasa yang sama persis (L(E)=L(D)).
Ini melengkapi “rantai ekuivalensi”: DFA, NFA, dan ε-NFA semuanya memiliki kekuatan komputasi yang sama dan hanya bisa mengenali kelas bahasa yang sama, yaitu Bahasa Regular.
Proses konversinya menggunakan algoritma yang merupakan modifikasi dari Subset Construction, dengan mengintegrasikan operasi ECLOSE secara ekstensif.
Algoritma Konversi ε-NFA ke DFA
Diberikan sebuah ε-NFA , kita akan membangun sebuah DFA dengan aturan yang telah dimodifikasi:
Himpunan State DFA (Q_D)
Sama seperti sebelumnya, setiap state di DFA baru adalah sebuah himpunan (subset) dari state-state di ε-NFA lama.
- Start State DFA (q_D0)
- Ini adalah modifikasi pertama yang penting. Start state DFA baru bukan hanya , melainkan ECLOSE dari start state ε-NFA.
- Alasan: Kita harus langsung memperhitungkan semua state yang bisa dicapai secara “gratis” dari titik awal sebelum membaca input apa pun.
- Himpunan Final State DFA (F_D)
- Aturannya tetap sama. Sebuah state di DFA baru adalah final state jika himpunan tersebut mengandung setidaknya satu final state dari ε-NFA asli.
- .
- Fungsi Transisi DFA (delta_D)
- Ini adalah modifikasi kedua yang paling krusial. Untuk menghitung , di mana adalah state DFA saat ini dan adalah simbol input, kita melalui dua langkah:
- Hitung Tujuan Transisi: Pertama, cari tahu semua state yang bisa dicapai dari setiap state di dalam dengan membaca input . Kita sebut himpunan perantara ini
move(S, a).
- Ambil E-Closure dari Hasil: State tujuan DFA yang sebenarnya adalah ECLOSE dari himpunan perantara yang baru saja kita dapatkan.
- Intuisi: Setelah berpindah state dengan membaca input
a, mesin juga bisa langsung melakukan “lompatan-lompatan gratis” lagi dari state-state tujuannya. Langkah kedua ini memperhitungkan semua lompatan gratis tersebut.Proses ini juga paling baik dilakukan dengan metode Lazy Construction untuk hanya membangun state-state yang bisa dijangkau.
Konversi dari ε-NFA ke DFA yang ekuivalen dilakukan dengan algoritma Subset Construction yang dimodifikasi untuk menangani transisi epsilon. Peran krusial dari operasi ECLOSE terlihat pada dua langkah utama: pertama, start state dari DFA baru didefinisikan sebagai ECLOSE dari start state ε-NFA; kedua, setiap fungsi transisi di DFA baru dihitung dengan terlebih dahulu menemukan semua state tujuan dari transisi input, lalu mengambil ECLOSE dari himpunan hasil tersebut.
Additional Information (Optional)
Rantai Ekuivalensi yang Lengkap
Hasil ini melengkapi salah satu teorema paling elegan dalam teori automata:
- DFA equiv NFA equiv ε-NFA Ketiga model mesin ini, meskipun memiliki aturan dan fleksibilitas desain yang berbeda, pada akhirnya memiliki kekuatan komputasi yang sama. Mereka semua secara kolektif mendefinisikan keluarga bahasa yang sama, yang kita kenal sebagai Bahasa Regular. Ini menunjukkan bahwa penambahan fitur seperti non-determinisme atau transisi epsilon tidak menambah “kekuatan” fundamental dari finite automata, melainkan hanya berfungsi sebagai alat bantu desain yang lebih nyaman.
Eksplorasi Mandiri
- Pikirkan Alurnya: Bayangkan sebuah ε-NFA yang menerima “a” atau “b”.
- (final)
- (final)
- Coba terapkan algoritma konversi di atas.
- Apa start state dari DFA barunya? (Petunjuk: hitung ).
- Dari start state baru tersebut, apa hasil transisi untuk input ‘a’? (Petunjuk: hitung
move-nya, laluECLOSE-nya).- Anda akan melihat bagaimana DFA secara efektif mensimulasikan semua jalur ε-NFA.