Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Pertemuan 4 Finite Automata Teori Bahasa dan Otomata (KOM208) SKS: 3(3-0)

Presentasi serupa


Presentasi berjudul: "Pertemuan 4 Finite Automata Teori Bahasa dan Otomata (KOM208) SKS: 3(3-0)"— Transcript presentasi:

1 Pertemuan 4 Finite Automata Teori Bahasa dan Otomata (KOM208) SKS: 3(3-0)

2 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

3 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 - 

4 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.

5 Contoh 6  Gambar berikut adalah sebuah NFA yang menerima string yang terdiri dari 0 dan 1 dan diakhiri oleh 01.

6 Definisi NFA Sebuah NFA dinyatakan sebagai sebuah tuple 5 elemen, yaitu A = (Q, , , q 0, F), dimana : 1. Q : Sebuah himpunan berhingga dari state-state 2.  : Sebuah himpunan berhingga dari simbol-simbol input 3. q 0 : Sebuah start state q 0  Q 4. F : Sebuah himpunan final state, F  Q 5.  : Fungsi transisi yang memiliki argumen sebuah state dalam Q dan sebuah simbol input dalam  dan mengembalikan sebuah himpunan bagian dari Q.

7  NFA dalam Contoh 6 dapat dinyatakan A = ({q 0, q 1, q 2 }, {0, 1}, , q 0, {q 2 }) dengan fungsi transisi  : 01  q 0 {q 0, q 1 }{q 0 } q1q1  {q 1 } * q 2  Jika tidak terdapat transisi dari state tertentu untuk simbol input yang diberikan, fungsi transisi mengembalikan himpunan kosong, dinotasikan 

8 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) = {p 1, p 2,..., p k }, dan misalkan  Maka (q,w) = {r 1, r 2,..., r m }

9 Contoh 7  Fungsi digunakan untuk menjelaskan pemrosesan input oleh NFA dalam Contoh 6. Langkah-langkahnya adalah sebagai berikut :

10 Contoh 7 (lanjutan)  String w dikatakan diterima oleh NFA A = (Q, , , q 0, F), apabila (q 0,w)  F    Sehingga (q 0,00101) = {q 0, q 2 }  Karena F = {q 2 } sehingga diterima oleh NFA dalam Contoh 6.

11 Bahasa dari NFA  Jika A = (Q, , , q 0, F) adalah sebuah NFA, maka  Artinya bahwa, L(A) adalah himpunan dari string- string dalam  * sedemikian sehingga (q 0,w) mengandung sedikitnya satu accepting state.

12 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.

13 Ekuivalensi dari DFA dan NFA (2)  Konstruksi subset bermula dari sebuah NFA, N = (Q N, ,  N, q 0, F N ).  Tujuannya adalah ingin ditentukan deskripsi dari DFA D = (Q D, ,  D, {q 0 }, F D ) 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.

14 Ekuivalensi dari DFA dan NFA (3)  Komponen/elemen lain dikonstruksi sebagai berikut:  Q D adalah himpunan dari himpunan bagian (subset) dari Q N, yaitu Q D adalah himpunan kuasa (power set) dari Q N. Jika Q N memiliki n state, maka Q D mempunyai 2 n state.  Seringkali tidak semua dari state-state ini dapat diakses dari start state dari Q D.  State-state yang tidak dapat diakses dapat dibuang, sehingga banyaknya state-state dari D dapat lebih sedikit dari 2 n.

15 Ekuivalensi dari DFA dan NFA (4)  F D adalah himpunan dari subset-subset S dari Q N sedemikian sehingga S  F N  , bahwa F D adalah semua himpunan-himpunan dari state-state N yang mengandung sedikitnya accepting state dari N.  Untuk setiap S  Q N 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.

16 Contoh 8  Misal N adalah NFA dalam Contoh 6 yang menerima semua string yang diakhiri oleh 01. N = ({q 0, q 1, q 2 }, {0, 1},  N, q 0, {q 2 }) konstruksi subset dilakukan sebagai berikut: Karena Q N = {q 0, q 1, q 2 }, maka banyaknya state dalam Q D adalah 2 3 = 8, yaitu semua subset-subset dari ketiga state tersebut.

17 Contoh 8 (lanjutan)  Tabel transisi dari kedelapan state: DD 01     {q 0 } {q 0, q 1 } {q 0 } {q 1 }  *{q 2 }   {q 0, q 1 } {q 0, q 2 } *{q 0, q 2 }{q 0, q 1 }{q 0 } *{q 1, q 2 }  {q 2 } *{q 0, q 1, q 2 }{q 0, q 1 }{q 0, q 2 }

18 Contoh 8 (lanjutan)  Fungsi transisi  N NN 01  {q 0 } {q 0, q 1 }{q 0 } {q 1 }  {q 2 } *{q 2 }  •Untuk menghitung baris-baris dalam tabel transisi  D, perhatikan bahwa untuk setiap S  Q N dan setiap a ,

19 Contoh 8 (lanjutan)  sehingga

20 Contoh 8 (lanjutan)  Cara yang sama dapat digunakan untuk menentukan elemen lain dalam tabel transisi  D.  Start state dari N adalah q 0 sehingga start state dari D adalah {q 0 }.  Himpunan final state dari N adalah F N = {q 2 } sehingga himpunan final state, F D, dari A adalah himpunan dari subset-subset dari Q N = {q 0, q 1, q 2 } sedemikian sehingga S  F N   dengan demikian F D = ({q 2 }, {q 0, q 2 }, {q 1, q 2 }, {q 0, q 1, q 2 }).

21 Contoh 8 (lanjutan)  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 {q 0 }, H untuk {q 0, q 1, q 2 } dan seterusnya. DD 01 AAA BB EB CAD *DAA EEF *FEB *GAD *HEF

22 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.

23 Lazy evaluation (2)  Dengan menggunakan lazy evaluation, diperoleh DFA yang ekuivalen dengan NFA pada Contoh 6:

24 Teorema Teorema 1:  Jika D = (Q D, ,  D, {q 0 }, F D ) adalah DFA yang dibuat dari NFA N = (Q N, ,  N, q 0, F N ) 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.

25 Daftar Pustaka  John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman Introduction to Automata Theory, Languange, and Computation. Edisi ke-2. Addison-Wesley.


Download ppt "Pertemuan 4 Finite Automata Teori Bahasa dan Otomata (KOM208) SKS: 3(3-0)"

Presentasi serupa


Iklan oleh Google