Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Ekspresi Regular Ekuivalensi Non Deterministic Finite Automata ke Deterministic Finite Automata.

Presentasi serupa


Presentasi berjudul: "Ekspresi Regular Ekuivalensi Non Deterministic Finite Automata ke Deterministic Finite Automata."— Transcript presentasi:

1 Ekspresi Regular Ekuivalensi Non Deterministic Finite Automata ke Deterministic Finite Automata

2  Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat menerimanya  Bahasa-bahasa yang diterima oleh suatu finite state automata bisa dinyatakan secara sederhana dengan ekspresi regular (regular expression)  ER.  Memberikan suatu pola (pattern) atau template untuk string dari suatu bahasa  String yang menyusun suatu bahasa regular akan cocok (match) dengan pola bahasa itu  Penerapan ekspresi regular yang tampak misalnya string search pada suatu file, biasanya fasilitas ini ada pada text editor.

3  Contoh : Suatu field masukan hanya menerima input bilangan (0..9). q1q1 q0q0 q2q2 0,1,2,…9 0,1,…9 selain 0,1,2,…9 selain 0,1,2,…9 FSA menerima bilangan integer tak bertanda Ekrspresi Regular yang dihasilkan adalah (digit) (digit)* dengan digit 0..9

4  ER juga dapat diaplikasikan untuk melakukan analisis leksikal dalam sebuah kompilator. Yaitu mengidentifikasikan unit-unit leksikal (token) yang dikenal dalam program.  Token-token pada suatu bahasa pemrograman kebanyakan tanpa kecuali dinyatakan sebagai sebuah ER.  Contoh: Suatu identifier baik huruf besar atau huruf kecil yang kemudian diikuti huruf atau digit, dengan tanpa pembatasan jumlah panjang bisa dinyatakan sebagai: (huruf)(huruf+digit)* q1q1 q0q0 huruf atau digit huruf

5 Terdapat 5 notasi dalam ER yaitu: ‘*’, ‘ +’, ‘+’, ‘  ’, ‘.’  * (karakter asterisk), berarti bisa tidak muncul, bisa juga muncul berhingga kali (0-n)  + (pada posisi superscript/ diatas) berarti minimal muncul satu kali (1-n)  + atau  berarti union . (titik) berarti konkatensi, biasanya titik bisa dihilangkan, misal ab bermakna seperti a.b

6  ER: ab*cc Contoh string: abcc, abbcc, abbbcc, abbbbcc, acc, (b bisa tidak muncul atau muncul sejumlah berhingga kali)  ER: 010* Contoh string : 01, 010, 0100, (jumlah 0 diujung bisa tidak muncul, bisa muncul berhingga kali)  ER: a*d Contoh string : d, ad, aad, aaad  ER: a + d Contoh string: ad, aad, aaad --- (a minimal muncul sekali)

7  ER: a*  b* (ingat ‘  ’ berarti atau) Contoh string : a, b, aa, bb, aaa, bbb, aaaa, bbbb  ER: (a  b)--- Contoh string: a, b  ER: (a  b)* Contoh string : a, b, ab, ba, abb, bba, aaaa, bbbb (string yang memuat a atau b) ---- * perhatikan : notasi ‘  ’ kadang dituliskan juga sebagai ‘+’ ---  ER: 01*+0 Contoh string: 0, 01, 011, 0111, 01111, (string yang berawalan dengan 0, dan selanjutnya boleh diikuti deretan 1)

8 q2q2 q0q0 q1q1 b a NFA untuk ER: ab q1q1 q0q0 q2q2 a b NFA untuk ER: a  b q0q0 q1q1 0,1 0 untuk ER: 0 (1  0)*

9

10  Dari sebuah mesin Non-deterministic Finite Automata dapat dibuat mesin Deterministic Finite Automata-nya yang ekivalen (bersesuaian)  Ekivalen disini artinya mampu menerima bahasa yang sama  L(M1) = L(M2) q2q2 q1q1 q0q ,1 q1q1 q0q0 0

11  Membuat tabel transisi  Mulai dari state awal  Ikuti transisinya untuk membentuk state-state baru  Untuk setiap state yang terbentuk diikuti lagi transisinya sampai ter’cover’ semua

12 q1q1 q0q0 0, Mesin otomata NFA  01 q0q0  q 0, q 1 q1q1 q1q1   Buat Tabel Transisi

13  Mulai dari state awal ( q 0 ) q0q0 state  q 0  bila memperoleh input 0 menjadi state  q 0, q 1  state  q 0  bila memperoleh input 1 menjadi state  q 1   q 0, q 1  q0q0 q1q1 0 1 Hasil dari penelusuran  q 0   Telusuri state berikutnya * Setiap state dituliskan sebagai himpunan state

14  Ikuti transisinya untuk membentuk state-state baru state  q 1  bila memperoleh input 0 menjadi state  state  q 1  bila memperoleh input 1 menjadi state  q 0, q 1  state  q 0, q 1  bila memperoleh input 0 menjadi state  q 0, q 1 , ini di peroleh dari  (q 0,0)=  q 0, q 1  di gabung dengan  (q 1,0) = , maka hasilnya  (  q 0, q 1 , 0) =  q 0, q 1  state  q 0, q 1  bila memperoleh input 1 menjadi state  q 0, q 1 , ini di peroleh dari  (q 0,1)=  q 1  di gabung dengan  (q 1,1) =  q 0, q 1 , maka hasilnya  (  q 0, q 1 , 1) =  q 0, q 1  * Setiap state dituliskan sebagai himpunan state

15 Hasil setelah penusuran  q 1  dan  q 0, q 1  *  merupakan sebuah state  q 0, q 1  q0q0 q1q1 0 1  0 1 0,1 State  menerima input 0 atau 1 menjadi state , atau  ( ,1)=   Telusuri state   q 0, q 1  q0q0 q1q1 0 1  0 1 0,1

16 Dari NFA, kita tahu bahwa himpunan state akhjr adalah  q 1 , maka pada DFA yg dihasilkan state-state akhir merupakan semua state yg mengandung  q 1 . F = {{q 1 }, {q 0, q 1 }} q0q0 0 1  0 1 0,1 q1q1  q 0, q 1  Mesin DFA yang ekivalen dengan NFA

17 Pembuktian : String ‘001’ Dari diagram NFA kita bisa lihat bahwa ∂(q 0,001) dapat diterima oleh NFA tsb. Untuk DFA kita lihat: ∂(q 0,001) = ∂(  q 0, q 1 ,01)= ∂ (  q 0, q 1 ,1)=  q 0, q 1  Karena state  q 0, q 1  termasuk state akhir, maka berarti string tersebut diterima.


Download ppt "Ekspresi Regular Ekuivalensi Non Deterministic Finite Automata ke Deterministic Finite Automata."

Presentasi serupa


Iklan oleh Google