slide ke:5 nfa

32
NFA Non-Deterministic Finite Automata (NFA)

Upload: rahmatdi-black

Post on 21-Jun-2015

2.078 views

Category:

Education


5 download

DESCRIPTION

TERI BAHASA OTOMATA

TRANSCRIPT

Page 1: SLIDE KE:5 NFA

NFANon-Deterministic Finite Automata (NFA)

Page 2: SLIDE KE:5 NFA

DFA

DFA (Deterministic Finite Automata)◦1 keadaan + 1 input 1 keadaan

q0 q1

0

1

Page 3: SLIDE KE:5 NFA

Non-deterministic Finite Automata (NFA)

Non-deterministic◦1 keadaan + 1 input ≥ 1 keadaan.◦Atau, 1 keadaan + 1 input 0 keadaan

◦Setiap DFA merupakan NFA.

Page 4: SLIDE KE:5 NFA

NFA vs DFA (1)

Setiap keadaan di DFA memiliki tepat satu anak panah transisi untuk setiap simbol alfabet.

Pada NFA, satu keadaan dapat memiliki nol, satu, atau lebih anak panah untuk setiap simbol transisi.

Page 5: SLIDE KE:5 NFA

NFA vs DFA (2)DFA: Label transisi berupa

simbol-simbol alfabet.NFA: Label transisi dapat berupa

simbol alfabet, dan/atau .◦Nol, satu, atau lebih anak panah

berlabel dapat berasal dari tiap keadaan.

Page 6: SLIDE KE:5 NFA

Cara Kerja NFA (1)Misal: kita berada di keadaan q1 suatu NFA N1.Diberikan simbol input 1.

◦ Setelah membaca input tersebut, mesin menuju semua keadaan berikutnya yang berlabel 1.

Kemudian mesin membaca input berikutnya.◦ Bila keadaan berikutnya ada lebih dari satu

keadaan, ikuti semua keadaan tersebut.◦ Bila tidak ditemukan keadaan berikutnya, maka

runtutan string tersebut mati.Jika salah satu dari cabang urutan string

mencapai keadaan akhir/ final state/ keadaan yang diterima, NFA menerima string yang diberikan.

Page 7: SLIDE KE:5 NFA

Cara Kerja NFA (2)Jika muncul keadaan dengan

simbol , maka tanpa membaca input lagi mesin menuju ke semua keadaan berikutnya yang dituju simbol .

Page 8: SLIDE KE:5 NFA

NFA sebagai Komputasi Paralel

NFA dapat dipandang sebagai bentuk komputasi paralel◦beberapa ‘proses’ dijalankan bersamaan.

NFA yang bercabang/mengikuti sejumlah pilihan berarti mengalami proses pemisahan menjadi sejumlah ‘anak’ dengan proses yang saling terpisah.

Jika salah satu proses percabangan ini sampai ke keadaan akhir, maka seluruh komputasi untuk string tersebut diterima.

Page 9: SLIDE KE:5 NFA

Pohon Kemungkinan (1)

Salah satu cara membayangkan komputasi NFA yakni dengan pohon kemungkinan.◦Sebagai akarnya adalah keadaan awal

komputasi.◦Setiap titik cabang pada pohon adalah

titik cabang komputasi.Mesin menerima masukan string jika

salah satu cabang komputasi berakhir di keadaan akhir/ keadaan yang diterima.

Page 10: SLIDE KE:5 NFA

Pohon Kemungkinan (2)

Page 11: SLIDE KE:5 NFA

Contoh 1

Bagaimana cara membaca input 010110?

Page 12: SLIDE KE:5 NFA

BentukPohon Kemungkinan

Simbol input

Page 13: SLIDE KE:5 NFA

NFA yang menerima semua string yang memiliki

substring 11 dan 101

Page 14: SLIDE KE:5 NFA

NFA menjadi DFASetiap NFA dapat diubah menjadi

suatu bentuk DFA.Membuat NFA kadangkala lebih

mudah dibandingkan dengan membuat DFA.

Fungsi NFA lebih mudah dipahami daripada DFA.

(akan dipelajari pada pertemuan berikutnya)

Page 15: SLIDE KE:5 NFA

Contoh 2

Misalkan L adalah bahasa yang terdiri dari alfabet {0,1}, dimana L memiliki satu simbol 1 di posisi ketiga dari belakang (misal 000100 termasuk dalam L, 0011 tidak termasuk dalam L).

Buatlah NFA yang mengenali bahasa L tersebut.

Page 16: SLIDE KE:5 NFA

Jawab

q0 q1 q31 1

0,1

q20, 1 0, 1

L memiliki simbol1 di posisi ketiga dari belakang

(misal 000100 termasuk dalam L, 0011 tidak termasuk dalam L)

M1

Page 17: SLIDE KE:5 NFA

Salah satu cara untuk membuat komputasi mesin M1 adalah tetap berada pada keadaan awal, q0, hingga bit ketiga dari belakang.

Artinya, jika simbol input adalah 1, maka percabangan akan menuju q1. Keadaan q2 dan q3 digunakan untuk memeriksa tebakan benar atau tidak.

Page 18: SLIDE KE:5 NFA

Penambahan pada MMisal kita menambahkan label

pada anak panah dari q1 ke q2 dan dari q2 ke q3 menjadi NFA M2

Artinya, kedua anak panah memiliki label 0, 1, ; bukan hanya 0, 1.

Dengan modifikasi tersebut, bahasa seperti apakah yang akan dikenali M2?

Page 19: SLIDE KE:5 NFA

Contoh 3

NFA M3 berikut memiliki alfabet input {0}

Alfabet yang memiliki hanya satu simbol input disebut dengan unary alphabet.

Page 20: SLIDE KE:5 NFA

Keterangan NFA M3

Mesin M3 menunjukkan kemudahan dari penggunaan tanda panah berlabel .

N3 menerima semua string dalam bentuk 0k dengan k adalah kelipatan 2 atau 3. (ingat bahwa pangkat menandakan pengulangan, bukan tanda eksponesial). Sebagai contoh, M3 menerima string , 00, 000, dan 000000; tidak menerima string 0 atau 00000.

Page 21: SLIDE KE:5 NFA

Keterangan NFA M3

Mesin M3 digunakan untuk menguji jumlah 0 kelipatan 2 atau kelipatan 3 dengan membuat percabangan siklus atas ataupun siklus bawah.

Mesin M3 dapat digantikan dengan mesin lain yang tidak memiliki atau NFA murni. Namun M3 menujukkan cara termudah untuk memahami Language yang dimaksud.

Page 22: SLIDE KE:5 NFA

Definisi Formal NFA

5-tuple NFA dan DFA berbeda dalam hal fungsi transisinya.◦DFA, : Q Q

◦NFA, : Q P(Q) adalah {}P(Q) adalah himpunan bagian yang

mungkin dari Q.◦P(Q) disebut dengan POWER SET DARI Q.◦Banyaknya P(Q) adalah 2k, dengan k =

jumlah state

Page 23: SLIDE KE:5 NFA

5-tuple NFA

5-tuple NFA, (Q, , , q0, F).

dengan:Q = himpunan keadaan NFA. = himpunan alfabet masukan. = fungsi transisi = Q

P(Q).q0 = keadaan awal, q0 Q.F = himpunan keadaan akhir, F

Q.

Page 24: SLIDE KE:5 NFA

Contoh 4

Tuliskan definisi formal NFA berikut ini.

q1

q0

q2

ab

a, b

a, b

M4

Page 25: SLIDE KE:5 NFA

Jawab: 5-Tuple NFA untuk M4

M4 = ({q0, q1, q2}, {a,b}, , q0, {q0})

=

a b

q0 q1 q2

q1 {q1,q

2}q1,q2

q2 q0

= stuck / die / errorq1

q0

q2

ab

a, b

a, b

Page 26: SLIDE KE:5 NFA

Contoh 5Buatlah NFA M5 yang dapat

menerima semua string dengan akhiran 00.

Buatlah menggunakan 3 keadaan!

Page 27: SLIDE KE:5 NFA

Jawab

NFA M5 yang dapat menerima semua string berakhiran 00

q0 q1 q30

0,1

0

Page 28: SLIDE KE:5 NFA

5–tuple NFA M5

q0 q1 q20

0,1

0

N4 = ({q0, q1, q2}, {0,1}, , q0, {q2})

=

0 1

q0 {q0, q1}

q0

q1 q2

q2

Page 29: SLIDE KE:5 NFA

Penerapan NFA: mencari kataNFA yang mencari kata web dan

ebay pada dokumen.

Page 30: SLIDE KE:5 NFA

Latihan

1. Gambarkan diagram transisi NFA berikut ini.

Q = {q0, q1,q2, q3, q4}Σ = {0,1}S = q0F = {q2, q4}

0 1

q0 {q0, q3}

{q0, q1}

q1 {} {q2}

q2 {q2} {q2}

q3 {q4} {}

q4 {q4} {q4}

Page 31: SLIDE KE:5 NFA

Latihan

2. Selidiki apakah string berikut ini diterima oleh NFA di bawah. Gambarkan pohon kemungkinannya.

a. 01001b. 10101

3. Tuliskandefinisi 5-tupleNFA tersebut.

Page 32: SLIDE KE:5 NFA

Latihan

4. Jika = {a, b, c}, rancanglah NFA yang menerima bahasa berikut ini.

a. String yang mengandung minimal 1 simbol a dan 1 simbol b

b. String dalam bentuk ambncp (m, n, p ≥ 0)