Chapter 7: Minimisasi DFA dan Eliminasi State Redundan
Konsep & Pembahasan Terperinci
1. Tiga Kategori State Redundan
Unreachable State (Keadaan Tak Terjangkau):
State sedemikian hingga tidak ada string masukan yang mampu membawa mesin dari state awal menuju (). State ini dapat langsung dihapus beserta seluruh transisi keluarnya tanpa mengubah bahasa mesin.
Dead State (Keadaan Mati / Perangkap):
State non-final sedemikian hingga untuk seluruh input, transisi selalu berputar di dalam atau menuju state non-final lainnya, sehingga mustahil mencapai state final manapun.
Non-Distinguishable State (Keadaan Ekuivalen):
Dua state dan dikatakan saling ekuivalen () jika mesin tidak dapat membedakan keduanya dengan string penguji apapun:
Jika dari membaca berakhir di Final, maka dari membaca harus berakhir di Final.
Jika dari membaca berakhir di Non-Final, maka dari membaca harus berakhir di Non-Final.
2. Algoritma Partisi Kelas Ekuivalen Rekursif
Langkah 0:
Bagi menjadi 2 grup besar (berdasarkan kemampuan membedakan string kosong berpanjang 0):
Langkah :
Untuk setiap grup yang berisi lebih dari 1 state, periksa transisi untuk setiap simbol masukan .
Dua state dan tetap berada dalam kelas yang sama jika dan hanya jika untuk setiap , dan berada pada kelas partisi yang sama di langkah sebelumnya.
Jika ada simbol yang memetakan ke kelas yang berbeda, grup tersebut harus dipecah (split).
Kondisi Berhenti:
Proses berhenti ketika pada suatu iterasi tidak ada satu pun kelas yang pecah lagi.
Studi Kasus Minimisasi State
Diberikan DFA dengan 6 state:
, Alfabet: , State Awal: $1$, State Final: .
Fungsi Transisi :
State 1:
State 2:
State 3:
State 4:
State 5:
State 6:
Pelacakan Partisi Langkah demi Langkah:
Langkah 0 (Partisi Final vs Non-Final):
Langkah 1:
Cek pada input $0$:
Karena transisi input $0$ membawa ke kelas yang berbeda, maka $3$ dan $4$ harus dipisah!
Partisi baru:
Langkah 2:
Cek pada input $1$:
State 2 membawa ke , sedangkan 1, 5, 6 membawa ke . Maka state 2 memisahkan diri!
Partisi baru:
Langkah 3:
Cek pada input $0$:
State 1 membawa ke , sedangkan 5 dan 6 tetap di . Maka state 1 memisahkan diri!
Partisi baru:
Langkah 4:
Evaluasi ulang: Seluruh kelas berisi 1 state kecuali .
Cek :
Input $0$: , (Sama)
Input $1$: , (Sama)
Tidak ada pemecahan baru. Algoritma Berhenti!
Observasi Eliminasi State Tak Terjangkau (*Unreachable State*):
Tinjau kelas :
Apakah ada panah dari state yang menuju ke state 5 atau 6?
Dari graf transisi, tidak ada satu pun transisi yang masuk ke state 5 maupun 6.
Karena state awal adalah , maka kelas adalah Unreachable State dan dihilangkan sepenuhnya dari DFA minimal!
Hasil Akhir DFA Minimal :
DFA minimal hanya memiliki 4 state:
State Awal: (memuat state awal 1)
State Final: dan (memuat state final 3 dan 4)
Tabel Transisi DFA Minimal:
| State Minimal | Representasi State Lama | Input $0$ | Input $1$ | Status |
|---|---|---|---|---|
| State Awal | ||||
| Biasa | ||||
| Final | ||||
| Final |
Latihan Soal & Pembahasan
Level 1 - Basic
Soal 1.1
Sebutkan 3 jenis keadaan (state) yang menjadi fokus eliminasi/penggabungan dalam minimisasi DFA.
Soal 1.2
Kapan algoritma partisi pembentukan kelas ekuivalen dihentikan?
Pembahasan/Jawaban
1.1 Tiga kategori state redundan:
Unreachable State (state tak terjangkau)
Dead State / Trap State (state buntu)
Non-distinguishable State (state-state yang ekuivalen)
1.2 Algoritma dihentikan ketika dalam satu putaran iterasi tidak ditemukan lagi kelas partisi baru yang terpecah (paling banyak dalam langkah).
Level 2 - Intermediate
Soal 2.1
Pada Langkah 0 algoritma partisi di atas, mengapa himpunan state langsung dibagi menjadi dua kelas dan ?
Pembahasan/Jawaban
Karena string kosong (panjang 0) langsung menjadi pembeda antara state final dan non-final. Untuk state , . Sedangkan untuk state , . Karena string membedakan keduanya, maka state final dan non-final pasti tidak ekuivalen () dan wajib dipisahkan sejak awal.
Level 3 - Advanced
Soal 3.1
Mengapa kelas harus dieliminasi, padahal state 5 dan 6 saling ekuivalen satu sama lain?
Pembahasan/Jawaban
Meskipun state 5 dan 6 saling ekuivalen (memiliki transisi identik ke dan ), keduanya tidak memiliki lintasan masuk yang dapat dicapai dari state awal (). State yang tidak terjangkau (unreachable) tidak akan pernah dieksekusi oleh string masukan manapun yang sah. Oleh karena itu, keberadaannya mubazir dan wajib dieliminasi demi efisiensi memori.
Exam Cheat Sheet
Definisi Ekuivalensi: .
Langkah 0 Partisi: Selalu dan .
Langkah : Pecah grup jika sedemikian hingga dan berada di partisi berbeda.
Pembersihan Akhir: Hapus kelas yang tidak memiliki jalur masuk dari state awal (unreachable).
Kompleksitas: Berhenti paling banyak dalam langkah iterasi.
Referensi & Bahan Bacaan
Catatan Penutup
Bab 7 melengkapi pembahasan mengenai representasi mesin otomatis. Pada bab berikutnya, Chapter 8: Regular Expression (Ekspresi Reguler), kita beralih ke notasi aljabar deklaratif untuk mendefinisikan bahasa reguler tanpa harus menggambar state.