✖

Konversi NFA ke DFA

Kita akan melihat cara mengonversi otomaton nondeterministik menjadi otomaton deterministik. Dengan begitu, kita membuktikan bahwa daya komputasi otomaton nondeterministik dan deterministik ekuivalen.

Ide dasar

Misalkan ada otomaton nondeterministik ⟨QN, ΣN, δN, q0, FN⟩ tanpa transisi epsilon. Kita susun otomaton deterministik ⟨QD, ΣD, δD, p0, FD⟩ sedemikian sehingga

  • QD ⊆ 2QN
  • ΣD = ΣN
  • p0 = {q0}
  • FD = {Q ∈ QD | Q ∩ FN ≠ ∅}

Fungsi transisi δD didefinisikan sebagai berikut:

∀Q∈QD,a∈ΣD:δD(Q,a)=⋃q∈QδN(q,a)

Apa artinya? Otomaton nondeterministik dapat berada di beberapa state sekaligus. Misalnya, bisa terjadi bahwa otomaton nondeterministik kita berada di state {q0, q1}. Dengan membaca simbol berikutnya, misalnya 1, kita dapat sampai di himpunan state {q0, q2, q3}. Pada versi deterministik dari otomaton yang sama, hal ini tercermin sebagai berikut: kita membuat dua state, menamainya {q0, q1} dan {q0, q2, q3}, lalu membuat transisi untuk simbol 1 di antara keduanya. Secara formal, kita berpindah dari satu state ke state lain, tetapi berkat penamaan tersebut kita tahu bahwa pada otomaton nondeterministik kita akan berada di dua state, lalu di tiga state.

Contoh

Misalkan ada otomaton nondeterministik berikut:

Untuk mengonstruksi otomaton deterministik, yang terutama kita perlukan adalah fungsi transisi yang baru. Untuk itu, kita gunakan tabel yang memuat semua transisi. Pada awalnya, tabelnya terlihat seperti ini:

state/simbol01{q0}

Pada akhir algoritma, kolom kiri akan memuat semua state otomaton deterministik. Tabel yang sudah terisi kemudian menentukan fungsi transisinya. Sekarang kita tuliskan ke dalam tabel state mana saja yang dapat dicapai jika kita berada di state {q0} dan inputnya simbol 0 dan 1.

state/simbol01{q0}{q1}{q1,q2}

Dari state q0, untuk simbol 0 hanya ada transisi ke state q1, sedangkan untuk simbol 1 ada transisi ke state q1 dan q2. Sekarang kita tambahkan dua state baru ke tabel: {q1} dan {q1, q2}. Mengapa? Setiap kali kita mengisi tabel dengan himpunan state yang belum ada di kolom kiri, himpunan state tersebut kita tambahkan ke kolom kiri.

state/simbol01{q0}{q1}{q1,q2}{q1}{q1,q2}

lalu kita isi lagi. Untuk state {q1, q2}, jangan lupa memeriksa kedua state, yaitu gabungan dari state yang dapat dicapai dari q1 dan state yang dapat dicapai dari q2.

state/simbol01{q0}{q1}{q1,q2}{q1}{q0,q1,q3}{q0,q3}{q1,q2}{q0,q1,q3}{q0,q3}

Kita memperoleh beberapa state baru yang harus ditambahkan ke tabel:

state/simbol01{q0}{q1}{q1,q2}{q1}{q0,q1,q3}{q0,q3}{q1,q2}{q0,q1,q3}{q0,q3}{q0,q1,q3}{q0,q3}

…lalu kita isi lagi transisinya:

state/simbol01{q0}{q1}{q1,q2}{q1}{q0,q1,q3}{q0,q3}{q1,q2}{q0,q1,q3}{q0,q3}{q0,q1,q3}{q0,q1,q3}{q0,q1,q2,q3}{q0,q3}{q1}{q1,q2}

State {q0, q1, q3}, {q1}, dan {q1,q2} sudah ada, jadi kita hanya menambahkan state {q0,q1,q2,q3}.

state/simbol01{q0}{q1}{q1,q2}{q1}{q0,q1,q3}{q0,q3}{q1,q2}{q0,q1,q3}{q0,q3}{q0,q1,q3}{q0,q1,q3}{q0,q1,q2,q3}{q0,q3}{q1}{q1,q2}{q0,q1,q2,q3}{q0,q1,q3}{q0,q1,q2,q3}

Tidak ada lagi state baru yang ditambahkan, sehingga tabel sudah terisi lengkap. Sekarang tinggal menyusun diagramnya. State otomaton deterministik ada di kolom pertama, sedangkan transisi untuk simbol 0 dan 1 ada di kolom-kolom berikutnya. Setiap state yang memuat suatu state akhir dari otomaton semula juga menjadi state akhir pada otomaton ini. Artinya, setiap state yang memuat q3 adalah state akhir. Otomatonnya terlihat seperti ini:

Kita dapat menunjukkan bahwa otomaton ini memang bekerja dengan benar. Kita coba menerima string 11001. Pada otomaton deterministik, kita menempuh jalur

q0→1q1,q2→1q0,q3→0q1→0q0,q1,q3→1q0,q1,q2,q3

dan otomaton menerima string tersebut, karena state terakhir {q0, q1, q2, q3} adalah state akhir. Pada otomaton nondeterministik, selama simulasi kita akan sampai di state-state yang sama. Kita mulai dari state q0, dan untuk simbol 1 kita sampai di state {q1, q2}. Simbol 1 berikutnya membawa kita ke state {q0,q3}, dan seterusnya untuk state-state berikutnya. Akhirnya, kita berada di semua state {q0, q1, q2, q3}, dan otomaton menerima string tersebut.

Sumber

Daftar isi: Otomaton hingga, Otomaton lengkap, Otomaton hingga nondeterministik, Simulasi otomaton nondeterministik, Konversi NFA ke DFA