Pertemuan 4 Finite Automata Teori Bahasa dan Otomata (KOM208) SKS: 3(3-0)
TIK dan Waktu Penyajian Tinjauan Instruksional Khusus: Mahasiswa akan dapat menjelaskan cara kerja Deterministic Finite Automata (DFA), Non-Deterministic Finite Automata (NDFA), Non deterministic Finite Automata (NFA) dengan transisi ε. Waktu penyajian: 3 x 150 menit
Subtopik DFA: Definisi DFA, Bagaimana DFA memproses string, Notasi-notasi untuk DFA, Fungsi transisi yang diperluas, Bahasa dari DFA NFA: Definisi NFA, Bagaimana NFA memproses string, Fungsi transisi yang diperluas, Bahasa dari NFA, Ekuivalensi DFA dan NFA ε-NFA: Penggunaan transisi-ε, Notasi formal untuk ε-NFA, Epsilon-Closure, Fungsi transisi yang diperluas dan bahasa untuk ε-NFA, Mengeliminasi Transisi -
Nondeterministic Finite Automata Perbedaan antara DFA dan NFA adalah dalam bentuk . Untuk NFA, adalah fungsi yang memiliki argumen sebuah state dan sebuah simbol (seperti dalam DFA), tetapi mengembalikan himpunan dari nol, satu atau lebih state.
Contoh 6 Gambar berikut adalah sebuah NFA yang menerima string yang terdiri dari 0 dan 1 dan diakhiri oleh 01.
Definisi NFA Sebuah NFA dinyatakan sebagai sebuah tuple 5 elemen, yaitu A = (Q, , , q0, F), dimana : Q : Sebuah himpunan berhingga dari state-state : Sebuah himpunan berhingga dari simbol-simbol input q0 : Sebuah start state q0 Q F : Sebuah himpunan final state, F Q : Fungsi transisi yang memiliki argumen sebuah state dalam Q dan sebuah simbol input dalam dan mengembalikan sebuah himpunan bagian dari Q.
NFA dalam Contoh 6 dapat dinyatakan A = ({q0, q1, q2}, {0, 1}, , q0, {q2}) dengan fungsi transisi : 1 q0 {q0, q1} {q0} q1 {q1} * q2 Jika tidak terdapat transisi dari state tertentu untuk simbol input yang diberikan, fungsi transisi mengembalikan himpunan kosong, dinotasikan
Fungsi Transisi yang Diperluas Definisi fungsi transisi yang diperluas ( ) untuk sebuah fungsi transisi () dari NFA: Basis: (q,) = {q}. Yaitu, tanpa membaca simbol input, NFA tidak berubah. NFA berada dalam state pada saat mulai membaca input. Induksi: Anggap bahwa w berbentuk w = xa, dimana a adalah simbol terakhir dari w dan x adalah simbol-simbol lain dalam w selain simbol terakhir. Anggap bahwa (q,x) = {p1, p2, ..., pk}, dan misalkan Maka (q,w) = {r1, r2, ..., rm}
Contoh 7 Fungsi digunakan untuk menjelaskan pemrosesan input 00101 oleh NFA dalam Contoh 6. Langkah-langkahnya adalah sebagai berikut :
Contoh 7 (lanjutan) String w dikatakan diterima oleh NFA A = (Q, , , q0, F), apabila (q0,w) F Sehingga (q0,00101) = {q0, q2} Karena F = {q2} sehingga 00101 diterima oleh NFA dalam Contoh 6.
Bahasa dari NFA Jika A = (Q, , , q0, F) adalah sebuah NFA, maka Artinya bahwa, L(A) adalah himpunan dari string-string dalam * sedemikian sehingga (q0,w) mengandung sedikitnya satu accepting state.
Ekuivalensi dari DFA dan NFA (1) Dalam banyak kasus lebih mudah membuat NFA yang menerima bahasa tertentu daripada DFA yang menerima bahasa yang sama. Akan tetapi semua bahasa yang dapat dijelaskan oleh NFA juga dapat dijelaskan oleh DFA. Bukti bahwa DFA dapat mengerjakan apa yang dikerjakan oleh NFA melibatkan “ konstruksi subset”, yaitu mengkonstruksi semua subset dari state-state NFA.
Ekuivalensi dari DFA dan NFA (2) Konstruksi subset bermula dari sebuah NFA, N = (QN, , N, q0, FN). Tujuannya adalah ingin ditentukan deskripsi dari DFA D = (QD, , D, {q0}, FD) sedemikian sehingga L(D) = L(N). Perhatikan bahwa alphabet input untuk N dan D sama yaitu , dan start state dari D adalah himpunan yang hanya mengandung start state dari N.
Ekuivalensi dari DFA dan NFA (3) Komponen/elemen lain dikonstruksi sebagai berikut: QD adalah himpunan dari himpunan bagian (subset) dari QN, yaitu QD adalah himpunan kuasa (power set) dari QN. Jika QN memiliki n state, maka QD mempunyai 2n state. Seringkali tidak semua dari state-state ini dapat diakses dari start state dari QD. State-state yang tidak dapat diakses dapat dibuang, sehingga banyaknya state-state dari D dapat lebih sedikit dari 2n.
Ekuivalensi dari DFA dan NFA (4) FD adalah himpunan dari subset-subset S dari QN sedemikian sehingga S FN , bahwa FD adalah semua himpunan-himpunan dari state-state N yang mengandung sedikitnya accepting state dari N. Untuk setiap S QN dan untuk setiap simbol input a, bahwa untuk menghitung D(S, a), kita lihat semua state-state p dalam S, selanjutnya ditentukan state yang dituju state N dari p pada input a, dan ambil union dari semua state-state tersebut.
Contoh 8 Misal N adalah NFA dalam Contoh 6 yang menerima semua string yang diakhiri oleh 01. N = ({q0, q1, q2}, {0, 1}, N, q0, {q2}) konstruksi subset dilakukan sebagai berikut: Karena QN = {q0 , q1 , q2}, maka banyaknya state dalam QD adalah 23 = 8, yaitu semua subset-subset dari ketiga state tersebut.
Contoh 8 (lanjutan) Tabel transisi dari kedelapan state: D 1 {q0} 1 {q0} {q0, q1} {q0} {q1} *{q2} {q0, q2} *{q0, q2} *{q1, q2} {q2} *{q0, q1, q2}
Contoh 8 (lanjutan) Fungsi transisi N N 1 {q0} {q0, q1} {q0} {q1} {q2} *{q2} Untuk menghitung baris-baris dalam tabel transisi D, perhatikan bahwa untuk setiap S QN dan setiap a,
Contoh 8 (lanjutan) sehingga
Contoh 8 (lanjutan) Cara yang sama dapat digunakan untuk menentukan elemen lain dalam tabel transisi D. Start state dari N adalah q0 sehingga start state dari D adalah {q0}. Himpunan final state dari N adalah FN = {q2} sehingga himpunan final state, FD, dari A adalah himpunan dari subset-subset dari QN = {q0, q1, q2} sedemikian sehingga S FN dengan demikian FD = ({q2}, {q0, q2}, {q1, q2}, {q0, q1, q2}).
Contoh 8 (lanjutan) D 1 A B E B C D *D F *F *G *H Perhatikan bahwa elemen-elemen dalam tabel N adalah himpunan, bahwa state-state dari DFA yang telah dikonstruksi adalah himpunan. Ganti nama-nama state ini, sebagai contoh A untuk , B untuk {q0}, H untuk {q0, q1, q2} dan seterusnya. D 1 A B E B C D *D F *F *G *H
Lazy evaluation (1) Untuk menghindari langkah untuk membuat elemen-elemen dari tabel transisi yang memerlukan waktu eksponensial untuk setiap subset dari state-state. Caranya: Basis: singleton set yang hanya berisi start state dari N dapat diakses. Induksi: anggaplah kita telah menentukan bahwa himpunan S dari state-state dapat diakses. Kemudian untuk setiap simbol input a, hitung himpunan dari state-state D(S, a), himpunan-himpunan dari state ini juga dapat diakses.
Lazy evaluation (2) Dengan menggunakan lazy evaluation, diperoleh DFA yang ekuivalen dengan NFA pada Contoh 6:
Teorema Teorema 1: Jika D = (QD, , D, {q0}, FD) adalah DFA yang dibuat dari NFA N = (QN, , N, q0, FN) dengan konstruksi subset, maka L(D) = L(N). Teorema 2: Sebuah bahasa L diterima oleh suatu DFA jika dan hanya jika L diterima oleh suatu NFA. Bukti : dapat dilihat pada buku rujukan.
Daftar Pustaka John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman. 2001. Introduction to Automata Theory, Languange, and Computation. Edisi ke-2. Addison-Wesley.