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:

  1. Himpunan State DFA (Q_D)

Sama seperti sebelumnya, setiap state di DFA baru adalah sebuah himpunan (subset) dari state-state di ε-NFA lama.

  1. 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.
  2. 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.
    • .
  3. 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:
      1. 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).

      1. 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.

Summary

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.