✖

Minimisasi otomaton

Minimisasi otomaton berarti mencari otomaton ekuivalen yang memuat state sesedikit mungkin. Otomaton yang tidak memuat state berlebih pun masih dapat disederhanakan.

Contoh

Perhatikan otomaton berikut:

Otomaton ini hanya menerima string 01 dan 11. Jelas ada otomaton yang lebih sederhana dengan tiga state yang menerima bahasa yang sama. State q1 dan q2 dapat digabung menjadi satu state baru {q1, q2}. Transisi yang tadinya menuju state q1 atau q2 akan menuju state baru, begitu pula transisi yang keluar dari q1 dan q2. Kita memperoleh otomaton berikut:

Jelas otomaton ini menerima bahasa yang sama dengan otomaton sebelumnya, tetapi memiliki lebih sedikit state.

State ekuivalen

Misalkan ada otomaton A = ⟨Q, Σ, δ, q0, F⟩. Bahasa state q ∈ Q, dilambangkan dengan L(q), didefinisikan sebagai

L(q)=L(⟨Q,Σ,δ,q,F⟩)

Artinya, kita mengganti state awal otomaton A dari q0 menjadi q, lalu menentukan bahasa yang diterima otomaton ini. Dengan kata lain, bahasa L(q) memuat semua string w sedemikian sehingga pada otomaton A string w membawa kita dari state q ke state akhir. Jika kita kembali ke otomaton sebelumnya, L(q1) = {1}.

Dua state berbeda q1 dan q2 disebut ekuivalen jika berlaku

L(q1)=L(q2)

Apa artinya? Jika state q1, q2 ekuivalen dan masing-masing kita jadikan state awal otomaton, keduanya akan menghasilkan bahasa yang sama. Dengan kata lain, jika otomaton sampai di konfigurasi ⟨q1, w⟩ dan ⟨q2, w⟩, otomaton harus menerima string pada kedua kasus atau menolaknya pada kedua kasus.

Kembali ke otomaton sebelumnya: state q1 dan q2 ekuivalen, karena jika kita berada di state q1, string input hanya dapat diterima jika bagian string yang belum dibaca sama dengan 1. Hal yang sama berlaku jika kita berada di state q2.

Jadi, minimisasi otomaton bertujuan mencari state-state ekuivalen dan menghilangkannya dengan menggabungkan state-state tersebut menjadi satu state baru, seperti yang kita lakukan pada contoh di atas.

Cara mencari state ekuivalen

State mana yang pasti tidak ekuivalen? State akhir dan state bukan akhir pasti tidak ekuivalen, karena bahasa state akhir berbeda dari bahasa state bukan akhir — state akhir pasti menerima string ε, sedangkan state bukan akhir tidak. Prosedurnya langsung kita tunjukkan pada contoh. Misalkan ada otomaton berikut:

Kita mulai dengan membuat dua himpunan state

S1=F={q3,q6},S2=Q∖F={q0,q1,q2,q4,q5}.

Sekarang kita buat tabel transisi dan tetap mencatat informasi tentang kelompok S1 dan S2:

kelompokstate01S1q3q5q4q6——S2q0q1q2q1—q3q2—q3q4q6—q5q6—

Sekarang tabel kita ubah: alih-alih menuliskan state tujuan untuk setiap simbol, kita hanya mencatat kelompok tujuannya. Misalnya, dari state q3 untuk 0 kita sampai di state q5, yang termasuk kelompok S2. Jadi, sebagai ganti q5, kita tuliskan S2 ke dalam tabel:

kelompokstate01S1q3S2S2q6——S2q0S2S2q1—S1q2—S1q4S1—q5S1—

Sekarang kedua kelompok kita bagi lagi. Ke dalam kelompok yang sama selalu kita masukkan state-state yang untuk semua simbol berpindah ke kelompok yang sama. Misalnya, state q3 dan q6 tidak berada di kelompok yang sama, karena baik untuk 0 maupun untuk 1 keduanya tidak menuju kelompok yang sama. Sebaliknya, state q1 dan q2 berada di kelompok yang sama, karena keduanya tidak memiliki transisi untuk 0 dan keduanya menuju kelompok S1 untuk 1. Jadi, kita membuat kelompok-kelompok baru:

kelompokstate01q3S2S2q6——q0S2S2q1—S1q2—S1q4S1—q5S1—

Dalam setiap kelompok, transisinya sama. Kelompok-kelompok yang baru terbentuk kita beri nama, lalu kita cari lagi ke kelompok baru mana state-state tersebut mengarah:

kelompokstate01S1q3S5S5S2q6——S3q0S4S4S4q1—S1q2—S1S5q4S2—q5S2—

Pada titik ini, kita lakukan pembagian kelompok berikutnya. Namun, terlihat bahwa kita tidak dapat membagi lebih jauh lagi, karena kita akan memperoleh kelompok yang sama — state q1 dan q2 memang memiliki transisi yang sama dalam hal kelompok, tetapi keduanya sudah berada di kelompok yang sama, dan tidak ada state lain di kelompok S4. Algoritma pencarian state ekuivalen selesai. Dari setiap kelompok, cukup kita pilih satu state, state lainnya kita hapus, dan semua transisi yang tadinya menuju state yang dihapus diarahkan ke satu state yang kita pilih.

Jadi, kita dapat memilih agar otomaton baru kita memiliki state q3, q6, q0, q1, q4, sedangkan state q2 dan q5 kita hapus. Semua transisi yang tadinya menuju q2 sekarang menuju q1, dan semua transisi yang tadinya menuju q5 sekarang menuju q4:

Langkah-langkah minimisasi otomaton

  1. Hapus state tak tercapai,
  2. hapus state berlebih,
  3. hapus state ekuivalen.

Sumber

Daftar isi: State tak tercapai, State berlebih, Minimisasi otomaton