materi

Chapter 7: Minimisasi DFA dan Eliminasi State Redundan

Konsep & Pembahasan Terperinci

1. Tiga Kategori State Redundan

  1. Unreachable State (Keadaan Tak Terjangkau):

    State pp sedemikian hingga tidak ada string masukan wΣw \in \Sigma^* yang mampu membawa mesin dari state awal q0q_0 menuju pp (w,δ^(q0,w)p\forall w, \hat{\delta}(q_0, w) \ne p). State ini dapat langsung dihapus beserta seluruh transisi keluarnya tanpa mengubah bahasa mesin.

  2. Dead State (Keadaan Mati / Perangkap):

    State non-final pp sedemikian hingga untuk seluruh input, transisi selalu berputar di dalam pp atau menuju state non-final lainnya, sehingga mustahil mencapai state final manapun.

  3. Non-Distinguishable State (Keadaan Ekuivalen):

    Dua state pp dan qq dikatakan saling ekuivalen (pqp \equiv q) jika mesin tidak dapat membedakan keduanya dengan string penguji apapun:

    • Jika dari pp membaca ww berakhir di Final, maka dari qq membaca ww harus berakhir di Final.

    • Jika dari pp membaca ww berakhir di Non-Final, maka dari qq membaca ww harus berakhir di Non-Final.


2. Algoritma Partisi Kelas Ekuivalen Rekursif

  • Langkah 0:

    Bagi QQ menjadi 2 grup besar (berdasarkan kemampuan membedakan string kosong ϵ\epsilon berpanjang 0):

C1=FdanC2=QFC_1 = F \quad \text{dan} \quad C_2 = Q - F
  • Langkah k+1k+1:

    Untuk setiap grup yang berisi lebih dari 1 state, periksa transisi untuk setiap simbol masukan aΣa \in \Sigma.

    Dua state pp dan qq tetap berada dalam kelas yang sama jika dan hanya jika untuk setiap aΣa \in \Sigma, δ(p,a)\delta(p, a) dan δ(q,a)\delta(q, a) 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:

  • Q={1,2,3,4,5,6}Q = \{1, 2, 3, 4, 5, 6\}, Alfabet: Σ={0,1}\Sigma = \{0, 1\}, State Awal: $1$, State Final: F={3,4}F = \{3, 4\}.

  • Fungsi Transisi δ\delta:

    • State 1: δ(1,0)=2,δ(1,1)=3\delta(1, 0) = 2, \delta(1, 1) = 3

    • State 2: δ(2,0)=1,δ(2,1)=4\delta(2, 0) = 1, \delta(2, 1) = 4

    • State 3: δ(3,0)=3,δ(3,1)=4\delta(3, 0) = 3, \delta(3, 1) = 4

    • State 4: δ(4,0)=2,δ(4,1)=3\delta(4, 0) = 2, \delta(4, 1) = 3

    • State 5: δ(5,0)=5,δ(5,1)=3\delta(5, 0) = 5, \delta(5, 1) = 3

    • State 6: δ(6,0)=5,δ(6,1)=3\delta(6, 0) = 5, \delta(6, 1) = 3


Pelacakan Partisi Langkah demi Langkah:

Langkah 0 (Partisi Final vs Non-Final):

C1={1,2,5,6}(Non-Final),C2={3,4}(Final)C_1 = \{1, 2, 5, 6\} \quad (\text{Non-Final}), \qquad C_2 = \{3, 4\} \quad (\text{Final})

Langkah 1:

  • Cek C2={3,4}C_2 = \{3, 4\} pada input $0$:

    • δ(3,0)=3C2\delta(3, 0) = 3 \in C_2
    • δ(4,0)=2C1\delta(4, 0) = 2 \in C_1

    Karena transisi input $0$ membawa ke kelas yang berbeda, maka $3$ dan $4$ harus dipisah!

    Partisi baru:

C1={1,2,5,6},C2={3},C3={4}C_1 = \{1, 2, 5, 6\}, \quad C_2 = \{3\}, \quad C_3 = \{4\}

Langkah 2:

  • Cek C1={1,2,5,6}C_1 = \{1, 2, 5, 6\} pada input $1$:

    • δ(1,1)=3C2\delta(1, 1) = 3 \in C_2
    • δ(2,1)=4C3\delta(2, 1) = 4 \in C_3
    • δ(5,1)=3C2\delta(5, 1) = 3 \in C_2
    • δ(6,1)=3C2\delta(6, 1) = 3 \in C_2

    State 2 membawa ke C3C_3, sedangkan 1, 5, 6 membawa ke C2C_2. Maka state 2 memisahkan diri!

    Partisi baru:

C1={1,5,6},C2={2},C3={3},C4={4}C_1 = \{1, 5, 6\}, \quad C_2 = \{2\}, \quad C_3 = \{3\}, \quad C_4 = \{4\}

Langkah 3:

  • Cek C1={1,5,6}C_1 = \{1, 5, 6\} pada input $0$:

    • δ(1,0)=2C2\delta(1, 0) = 2 \in C_2
    • δ(5,0)=5C1\delta(5, 0) = 5 \in C_1
    • δ(6,0)=5C1\delta(6, 0) = 5 \in C_1

    State 1 membawa ke C2C_2, sedangkan 5 dan 6 tetap di C1C_1. Maka state 1 memisahkan diri!

    Partisi baru:

C1={1},C2={2},C3={3},C4={4},C5={5,6}C_1 = \{1\}, \quad C_2 = \{2\}, \quad C_3 = \{3\}, \quad C_4 = \{4\}, \quad C_5 = \{5, 6\}

Langkah 4:

  • Evaluasi ulang: Seluruh kelas berisi 1 state kecuali C5={5,6}C_5 = \{5, 6\}.

  • Cek {5,6}\{5, 6\}:

    • Input $0$: δ(5,0)=5C5\delta(5, 0) = 5 \in C_5, δ(6,0)=5C5\delta(6, 0) = 5 \in C_5 (Sama)

    • Input $1$: δ(5,1)=3C3\delta(5, 1) = 3 \in C_3, δ(6,1)=3C3\delta(6, 1) = 3 \in C_3 (Sama)

  • Tidak ada pemecahan baru. Algoritma Berhenti!


Observasi Eliminasi State Tak Terjangkau (*Unreachable State*):

Tinjau kelas C5={5,6}C_5 = \{5, 6\}:

  • Apakah ada panah dari state {1,2,3,4}\{1, 2, 3, 4\} 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 1C11 \in C_1, maka kelas C5={5,6}C_5 = \{5, 6\} adalah Unreachable State dan dihilangkan sepenuhnya dari DFA minimal!


Hasil Akhir DFA Minimal MM':

DFA minimal hanya memiliki 4 state:

  • Q={C1,C2,C3,C4}Q' = \{C_1, C_2, C_3, C_4\}
  • State Awal: C1C_1 (memuat state awal 1)

  • State Final: C3C_3 dan C4C_4 (memuat state final 3 dan 4)

Tabel Transisi DFA Minimal:

State MinimalRepresentasi State LamaInput $0$Input $1$Status
C1\to C_1{1}\{1\}C2C_2C3C_3State Awal
C2C_2{2}\{2\}C1C_1C4C_4Biasa
C3*C_3{3}\{3\}C3C_3C4C_4Final
C4*C_4{4}\{4\}C2C_2C3C_3Final

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:

  1. Unreachable State (state tak terjangkau)

  2. Dead State / Trap State (state buntu)

  3. 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 Q|Q| langkah).


Level 2 - Intermediate

Soal 2.1

Pada Langkah 0 algoritma partisi di atas, mengapa himpunan state langsung dibagi menjadi dua kelas C1=FC_1 = F dan C2=QFC_2 = Q - F?


Pembahasan/Jawaban

Karena string kosong ϵ\epsilon (panjang 0) langsung menjadi pembeda antara state final dan non-final. Untuk state pFp \in F, δ^(p,ϵ)=pF\hat{\delta}(p, \epsilon) = p \in F. Sedangkan untuk state qQFq \in Q - F, δ^(q,ϵ)=qF\hat{\delta}(q, \epsilon) = q \notin F. Karena string ϵ\epsilon membedakan keduanya, maka state final dan non-final pasti tidak ekuivalen (p̸0qp \not\equiv_0 q) dan wajib dipisahkan sejak awal.


Level 3 - Advanced

Soal 3.1

Mengapa kelas C5={5,6}C_5 = \{5, 6\} 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 C5C_5 dan C3C_3), keduanya tidak memiliki lintasan masuk yang dapat dicapai dari state awal (q0=1q_0 = 1). 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: pq    w,(δ^(p,w)F    δ^(q,w)F)p \equiv q \iff \forall w, (\hat{\delta}(p, w) \in F \iff \hat{\delta}(q, w) \in F).

  • Langkah 0 Partisi: Selalu C1=FC_1 = F dan C2=QFC_2 = Q - F.

  • Langkah k+1k+1: Pecah grup jika aΣ\exists a \in \Sigma sedemikian hingga δ(p,a)\delta(p, a) dan δ(q,a)\delta(q, a) berada di partisi berbeda.

  • Pembersihan Akhir: Hapus kelas yang tidak memiliki jalur masuk dari state awal (unreachable).

  • Kompleksitas: Berhenti paling banyak dalam Q|Q| langkah iterasi.


Referensi & Bahan Bacaan

  1. John E. Hopcroft. An n log n Algorithm for Minimizing States in a Finite Automaton (Stanford Computer Science Department, 1971).

  2. Hopcroft, John E., Rajeev Motwani, Jeffrey D. Ullman. Introduction to Automata Theory (Section 4.4: Minimization of DFA).

  3. Michael Sipser. Introduction to the Theory of Computation (State Equivalence and Myhill-Nerode Theorem).

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.