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 (p≡qp \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=Q−FC_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)=3∈C2\delta(3, 0) = 3 \in C_2
    • δ(4,0)=2∈C1\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)=3∈C2\delta(1, 1) = 3 \in C_2
    • δ(2,1)=4∈C3\delta(2, 1) = 4 \in C_3
    • δ(5,1)=3∈C2\delta(5, 1) = 3 \in C_2
    • δ(6,1)=3∈C2\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)=2∈C2\delta(1, 0) = 2 \in C_2
    • δ(5,0)=5∈C1\delta(5, 0) = 5 \in C_1
    • δ(6,0)=5∈C1\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)=5∈C5\delta(5, 0) = 5 \in C_5, δ(6,0)=5∈C5\delta(6, 0) = 5 \in C_5 (Sama)

    • Input $1$: δ(5,1)=3∈C3\delta(5, 1) = 3 \in C_3, δ(6,1)=3∈C3\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 1∈C11 \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 M′M':

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=Q−FC_2 = Q - F?


Pembahasan/Jawaban

Karena string kosong ϵ\epsilon (panjang 0) langsung menjadi pembeda antara state final dan non-final. Untuk state p∈Fp \in F, δ^(p,ϵ)=p∈F\hat{\delta}(p, \epsilon) = p \in F. Sedangkan untuk state q∈Q−Fq \in Q - F, δ^(q,ϵ)=q∉F\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: p≡q  ⟺  ∀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=Q−FC_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.