materi

Chapter 5: NFA dengan ε-move (ε-NFA) dan ε-Closure

Konsep & Pembahasan Terperinci

1. Hakikat dan Manfaat ϵ\epsilon-Move

  • Apa itu ϵ\epsilon-move?

    Transisi ϵ\epsilon adalah transisi "bebas biaya" (free transition): mesin dapat melompat dari state pp ke state qq tanpa membaca simbol apapun dari string input. Head pembaca pita input tidak bergeser.

  • Mengapa Diperlukan Jika Tidak Menambah Daya Mesin?

    Dalam rekayasa sistem, kita sering kali ingin merancang modul-modul logika terpisah lalu menggabungkannya. Misalnya:

    • Modul M1M_1 mengenali bahasa L1L_1.

    • Modul M2M_2 mengenali bahasa L2L_2.

    Untuk membuat mesin yang mengenali gabungan bahasa L1L2L_1 \cup L_2, kita cukup membuat satu state awal baru qstartq_{\text{start}}, lalu menarik transisi ϵ\epsilon dari qstartq_{\text{start}} ke state awal M1M_1 dan ke state awal M2M_2. Inilah prinsip dasar modularitas automata.


2. Definisi Formal ϵ\epsilon-NFA

ϵ\epsilon-NFA didefinisikan sebagai 5-tuple:

N=(Q,Σ,δ,q0,F)N = (Q, \Sigma, \delta, q_0, F)

Perbedaan tunggal dengan NFA biasa terletak pada domain fungsi transisi:

δ:Q×(Σ{ϵ})2Q\delta : Q \times (\Sigma \cup \{\epsilon\}) \longrightarrow 2^Q

Artinya, transisi diperbolehkan menerima input simbol alfabet Σ\Sigma maupun simbol kosong ϵ\epsilon.


3. Konsep Kunci: ϵ\epsilon-Closure (ECLOSE\text{ECLOSE})

Untuk setiap state qQq \in Q:

ECLOSE(q)\text{ECLOSE}(q)

adalah himpunan semua state dalam QQ yang dapat dicapai dari state qq hanya dengan menelusuri transisi bertanda ϵ\epsilon (termasuk rantai transisi ϵϵ\epsilon \to \epsilon \to \dots).

Sifat Mutlak:

  1. Refleksif: Setiap state selalu termasuk ke dalam ECLOSE\text{ECLOSE}-nya sendiri melalui barisan ϵ\epsilon kosong (panjang 0):
qECLOSE(q)q \in \text{ECLOSE}(q)
  1. Transitif: Jika pECLOSE(q)p \in \text{ECLOSE}(q) dan rδ(p,ϵ)r \in \delta(p, \epsilon), maka rECLOSE(q)r \in \text{ECLOSE}(q).

Untuk sebuah himpunan state SQS \subseteq Q:

ECLOSE(S)=qSECLOSE(q)\text{ECLOSE}(S) = \bigcup_{q \in S} \text{ECLOSE}(q)

4. Extended Transition Function pada ϵ\epsilon-NFA

Pada DFA dan NFA biasa, membaca satu simbol aa cukup dengan δ(q,a)\delta(q, a). Namun pada ϵ\epsilon-NFA, mesin bisa melakukan transisi ϵ\epsilon sebelum dan sesudah membaca simbol aa!

Oleh karena itu, fungsi transisi satu simbol yang diperluas dirumuskan sebagai:

δ^(q,a)=ECLOSE(δ(ECLOSE(q),a))\hat{\delta}(q, a) = \text{ECLOSE}\Big(\delta\big(\text{ECLOSE}(q), a\big)\Big)

Tiga Tahap Eksekusi:

  1. Ekspansi Awal: Cari seluruh state yang dapat dicapai dari qq via ϵ\epsilon (ECLOSE(q)\text{ECLOSE}(q)).

  2. Konsumsi Input: Dari himpunan state tersebut, lakukan transisi dengan membaca simbol masukan aa (δ(,a)\delta(\dots, a)).

  3. Ekspansi Akhir: Dari himpunan state hasil pembacaan, cari kembali seluruh state yang dapat dicapai via ϵ\epsilon (ECLOSE()\text{ECLOSE}(\dots)).


Studi Kasus & Perhitungan Evaluasi Transisi

Contoh Evaluasi Transisi State:

Diberikan konfigurasi automata di mana:

  • Dari q0q_0, terdapat transisi ϵ\epsilon ke q1q_1, dan dari q1q_1 terdapat transisi ϵ\epsilon ke q3q_3.

  • Maka: ECLOSE(q0)={q0,q1,q3}\text{ECLOSE}(q_0) = \{q_0, q_1, q_3\}.

  • Nilai transisi langsung: δ(q0,ϵ)={q1}\delta(q_0, \epsilon) = \{q_1\}.

  • Nilai extended transition dengan ϵ\epsilon: δ^(q0,ϵ)=ECLOSE(q0)={q0,q1,q3}\hat{\delta}(q_0, \epsilon) = \text{ECLOSE}(q_0) = \{q_0, q_1, q_3\}.

  • Jika dari state q1q_1 ada transisi dengan simbol $0$ menuju q1q_1, dan dari q3q_3 ada transisi dengan simbol $0$ menuju q3q_3:

δ^(q0,0)=ECLOSE(δ({q0,q1,q3},0))=ECLOSE({q1,q3})={q1,q3}\hat{\delta}(q_0, 0) = \text{ECLOSE}(\delta(\{q_0, q_1, q_3\}, 0)) = \text{ECLOSE}(\{q_1, q_3\}) = \{q_1, q_3\}

Algoritma Konversi ϵ\epsilon-NFA ke NFA Biasa (Tanpa ϵ\epsilon)

Untuk mengeliminasi seluruh transisi ϵ\epsilon dan menghasilkan NFA standar N=(Q,Σ,δ,q0,F)N' = (Q, \Sigma, \delta', q_0, F'):

  1. Himpunan state QQ dan alfabet Σ\Sigma tetap sama.

  2. State awal tetap q0q_0.

  3. Tentukan fungsi transisi baru δ\delta' untuk setiap qQq \in Q dan aΣa \in \Sigma:

δ(q,a)=δ^(q,a)=ECLOSE(δ(ECLOSE(q),a))\delta'(q, a) = \hat{\delta}(q, a) = \text{ECLOSE}\Big(\delta\big(\text{ECLOSE}(q), a\big)\Big)
  1. Tentukan himpunan state final baru FF':
F={qQECLOSE(q)F}F' = \{q \in Q \mid \text{ECLOSE}(q) \cap F \ne \emptyset\}

(Jika dari state qq kita bisa mencapai salah satu state final lama hanya via ϵ\epsilon, maka qq otomatis dijadikan state final pada NFA baru).


Latihan Soal & Pembahasan

Level 1 - Basic

Soal 1.1

Jelaskan apa yang dimaksud dengan ϵ\epsilon-move dan apakah keberadaannya meningkatkan daya komputasi (computational power) dari Finite Automata?

Soal 1.2

Apa arti dari pernyataan qECLOSE(q)q \in \text{ECLOSE}(q)?


Pembahasan/Jawaban

1.1 ϵ\epsilon-move adalah transisi yang terjadi tanpa mengkonsumsi/membaca simbol masukan dari pita input. Fitur ini tidak meningkatkan daya komputasi FA; bahasa yang dikenali tetaplah persis kelas Bahasa Reguler.

1.2 Pernyataan tersebut menyatakan sifat refleksif: setiap state selalu dapat mencapai dirinya sendiri melalui barisan transisi ϵ\epsilon berpanjang 0 (tanpa melompat ke mana-mana).


Level 2 - Intermediate

Soal 2.1

Diberikan ϵ\epsilon-NFA dengan Q={A,B,C}Q = \{A, B, C\}, transisi: δ(A,ϵ)={B}\delta(A, \epsilon) = \{B\}, δ(B,ϵ)={C}\delta(B, \epsilon) = \{C\}, δ(C,0)={A}\delta(C, 0) = \{A\}. Hitung: (a) ECLOSE(A)\text{ECLOSE}(A), (b) ECLOSE(B)\text{ECLOSE}(B), (c) ECLOSE(C)\text{ECLOSE}(C), dan (d) δ^(A,0)\hat{\delta}(A, 0).


Pembahasan/Jawaban

  • (a) Dari AA bisa ke AA (panjang 0), ke BB via ϵ\epsilon, dan ke CC via BϵCB \xrightarrow{\epsilon} C. Maka ECLOSE(A)={A,B,C}\text{ECLOSE}(A) = \{A, B, C\}.

  • (b) Dari BB bisa ke BB dan ke CC. Maka ECLOSE(B)={B,C}\text{ECLOSE}(B) = \{B, C\}.

  • (c) Dari CC tidak ada transisi ϵ\epsilon keluar. Maka ECLOSE(C)={C}\text{ECLOSE}(C) = \{C\}.

  • (d) Menghitung δ^(A,0)\hat{\delta}(A, 0):

    1. ECLOSE(A)={A,B,C}\text{ECLOSE}(A) = \{A, B, C\}
    2. δ({A,B,C},0)=δ(A,0)δ(B,0)δ(C,0)={A}={A}\delta(\{A, B, C\}, 0) = \delta(A, 0) \cup \delta(B, 0) \cup \delta(C, 0) = \emptyset \cup \emptyset \cup \{A\} = \{A\}
    3. ECLOSE({A})={A,B,C}\text{ECLOSE}(\{A\}) = \{A, B, C\}

    Maka δ^(A,0)={A,B,C}\hat{\delta}(A, 0) = \{A, B, C\}.


Level 3 - Advanced

Soal 3.1

Kapan state awal q0q_0 harus dimasukkan ke dalam himpunan state final FF' saat mengonversi ϵ\epsilon-NFA ke NFA biasa?


Pembahasan/Jawaban

State awal q0q_0 harus dimasukkan ke dalam FF' jika dan hanya jika ECLOSE(q0)F\text{ECLOSE}(q_0) \cap F \ne \emptyset. Artinya, dari state awal q0q_0 terdapat jalur transisi ϵ\epsilon murni yang mampu mencapai minimal satu state final tanpa membaca satu pun simbol input. Hal ini menandakan bahwa string kosong ϵ\epsilon termasuk anggota bahasa yang diterima (ϵL(N)\epsilon \in L(N)).


Exam Cheat Sheet

  • Definisi Fungsi Transisi: δ:Q×(Σ{ϵ})2Q\delta : Q \times (\Sigma \cup \{\epsilon\}) \to 2^Q.

  • Rumus Evaluasi Transisi Utama:

δ^(q,a)=ECLOSE(δ(ECLOSE(q),a))\hat{\delta}(q, a) = \text{ECLOSE}\Big(\delta\big(\text{ECLOSE}(q), a\big)\Big)
  • Kondisi Penerimaan: δ^(q0,w)F\hat{\delta}(q_0, w) \cap F \ne \emptyset.

  • Aturan State Final Baru: F={qECLOSE(q)F}F' = \{q \mid \text{ECLOSE}(q) \cap F \ne \emptyset\}.

  • Manfaat Utama: Modularitas perancangan (penggabungan union dua automata secara praktis).


Referensi & Bahan Bacaan

  1. Hopcroft, John E., Rajeev Motwani, Jeffrey D. Ullman. Introduction to Automata Theory (Section 2.5: Finite Automata With Epsilon-Transitions).

  2. Michael Sipser. Introduction to the Theory of Computation (Equivalence of NFA and Epsilon-NFA).

Catatan Penutup

Setelah menguasai automata pengenal bahasa murni (Accept/Reject), pada bab berikutnya, Chapter 6: Moore dan Mealy, kita akan mempelajari automata yang menghasilkan deretan keluaran (Finite State Transducers).