Chapter 4: Deterministic Finite Automata (DFA) dan Non-Deterministic Finite Automata (NFA)
Konsep & Pembahasan Terperinci
1. Determinisme (DFA) vs Non-Determinisme (NFA)
DFA (Deterministic Finite Automaton):
Untuk setiap state dan simbol , transisi menghasilkan tepat satu state berikutnya.
Alur eksekusi bersifat deterministik: string input yang sama pada mesin yang sama pasti menghasilkan urutan lintasan yang identik dan dapat diprediksi.
NFA (Non-Deterministic Finite Automaton):
Untuk suatu state dan simbol , transisi menghasilkan himpunan state (bisa kosong , satu state, atau beberapa state sekaligus).
Eksekusi tidak membentuk garis lurus tunggal, melainkan pohon pelacakan eksekusi (tree of execution).
2. Tiga Cara Memandang Komputasi NFA
Bagaimana kita mengonseptualisasikan cara NFA bekerja ketika menghadapi banyak cabang pilihan?
NFA adalah "Penebak Sempurna": Asumsikan mesin selalu memilih cabang transisi yang membawanya ke state Final (jika memang ada jalur sukses).
NFA Menggandakan Diri (Cloning): Setiap kali menjumpai persimpangan dengan cabang, mesin menduplikasi dirinya menjadi proses independen.
Komputasi Paralel: Mesin menelusuri seluruh kemungkinan konfigurasi state secara serentak (concurrently).
Kriteria Keputusan:
Diterima (Accept): Jika terdapat paling sedikit satu cabang di pohon eksekusi yang berhasil mencapai state Final setelah seluruh string input habis dibaca.
Ditolak (Reject): Jika seluruh cabang yang mungkin mengalami stuck (tidak memiliki transisi lanjutan) atau berakhir di state yang bukan Final.
3. Definisi Formal NFA
NFA didefinisikan sebagai 5-tuple:
Struktur tuple sama dengan DFA, kecuali pada fungsi transisi :
Di mana adalah powerset (himpunan kuasa) dari , yaitu himpunan seluruh himpunan bagian dari . Nilai adalah himpunan .
Studi Kasus: NFA Bahasa Berakhiran '01' & Subset Construction
1. Desain NFA
Bahasa:
Himpunan State: , State Awal: , State Final:
Tabel Transisi NFA:
| State | Input $0$ | Input $1$ |
|---|---|---|
Ide non-deterministik: Di state , mesin bebas "menebak" apakah simbol 0 yang dibacanya adalah awal dari akhiran 01 (pindah ke ), atau sekadar bagian dari prefiks awal (tetap di ).
2. Algoritma Subset Construction (Konversi NFA ke DFA)
DFA yang ekuivalen dibangun dengan menjadikan himpunan bagian state NFA sebagai state tunggal pada DFA.
- State Awal DFA:
Transisi dari State :
Baca
0:Baca
1:
Transisi dari State :
Baca
0:Baca
1:
Transisi dari State :
Baca
0:Baca
1:
Menentukan State Final DFA:
Setiap state komposit yang memuat state final NFA () menjadi state Final DFA. Karena hanya yang memuat , maka .
Tabel Transisi DFA Hasil Konversi:
| State Komposit | Label State DFA | Input $0$ | Input $1$ | Status Final? |
|---|---|---|---|---|
| Bukan Final | ||||
| Bukan Final | ||||
| Final (Accepting) |
Perbandingan Konsep
| Parameter | Deterministic Finite Automata (DFA) | Non-Deterministic Finite Automata (NFA) |
|---|---|---|
| Fungsi Transisi | (Tepat 1 state) | (Himpunan subset state) |
| Bentuk Eksekusi | Lintasan sekuensial tunggal | Pohon percabangan (Execution Tree) |
| Syarat Terima | Lintasan berakhir di state final | Minimal 1 cabang berakhir di state final |
| Kemudahan Desain | Cenderung kompleks & kaku | Sangat intuitif untuk mencocokkan pola |
| Implementasi Komputer | Sangat cepat & efisien () | Perlu simulasi subset / backtracking |
| Daya Komputasi | Setara (Bahasa Reguler) | Setara (Bahasa Reguler) |
Latihan Soal & Pembahasan
Level 1 - Basic
Soal 1.1
Apa yang membedakan fungsi transisi pada DFA dengan NFA secara matematis?
Soal 1.2
Jelaskan 3 cara memandang dan menginterpretasikan cara kerja komputasi pada NFA.
Pembahasan/Jawaban
1.1 Pada DFA, memetakan ke sebuah state tunggal (), sedangkan pada NFA, memetakan ke himpunan bagian dari ().
1.2 Tiga cara memandang komputasi NFA:
NFA selalu mengambil tebakan yang benar
NFA menggandakan diri (copy) pada setiap percabangan
NFA menjelajahi seluruh kemungkinan secara paralel
Level 2 - Intermediate
Soal 2.1
Diberikan NFA berakhiran 01 di atas. Lacak eksekusi string menggunakan pohon eksekusi dan tunjukkan mengapa string ini diterima.
Pembahasan/Jawaban
Mulai di .
Baca
0: Cabang terbagi menjadi .Baca
0:Dari dengan
0cabang menjadi .Dari dengan
0(stuck).Total cabang aktif saat ini: .
Baca
1:Dari dengan
1.Dari dengan
1.Total cabang aktif akhir: .
Karena salah satu cabang berakhir di , string $001$ diterima (Accepted).
Level 3 - Advanced
Soal 3.1
Jika suatu NFA memiliki buah state, berapa jumlah maksimum state yang mungkin terbentuk pada DFA hasil konversi Subset Construction? Mengapa?
Pembahasan/Jawaban
Jumlah maksimum state pada DFA adalah state. Hal ini karena setiap state pada DFA merepresentasikan sebuah himpunan bagian (subset) dari himpunan state NFA. Powerset dari sebuah himpunan berkardinalitas memiliki tepat elemen. Meskipun dalam praktiknya banyak subset yang tidak dapat dicapai (unreachable), batas atas teoretisnya adalah eksponensial ().
Exam Cheat Sheet
Pemetaan NFA: .
Syarat Terima NFA: .
Ekuivalensi: . NFA tidak lebih sakti dari DFA dalam mengenali bahasa, keduanya persis mencakup Regular Languages.
Tujuan NFA DFA: NFA untuk spesifikasi manusia (pattern matching, lexer), DFA untuk eksekusi deterministik cepat pada mesin.
Prinsip Subset Construction: Gabungkan state-state yang dapat dicapai secara bersamaan menjadi satu kesatuan state komposit.
Referensi & Bahan Bacaan
Catatan Penutup
Bab 4 telah membuktikan bahwa non-determinisme memberikan fleksibilitas tanpa menambah batas komputasi. Pada bab berikutnya, Chapter 5: NFA dengan ε-move, kita akan melengkapi NFA dengan kemampuan transisi spontan tanpa membaca simbol masukan.