slide ke:5 nfa

Post on 21-Jun-2015

2.082 Views

Category:

Education

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

TERI BAHASA OTOMATA

TRANSCRIPT

NFANon-Deterministic Finite Automata (NFA)

DFA

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

q0 q1

0

1

Non-deterministic Finite Automata (NFA)

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

◦Setiap DFA merupakan 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.

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.

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.

Cara Kerja NFA (2)Jika muncul keadaan dengan

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

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.

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.

Pohon Kemungkinan (2)

Contoh 1

Bagaimana cara membaca input 010110?

BentukPohon Kemungkinan

Simbol input

NFA yang menerima semua string yang memiliki

substring 11 dan 101

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)

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.

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

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.

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?

Contoh 3

NFA M3 berikut memiliki alfabet input {0}

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

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.

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.

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

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.

Contoh 4

Tuliskan definisi formal NFA berikut ini.

q1

q0

q2

ab

a, b

a, b

M4

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

Contoh 5Buatlah NFA M5 yang dapat

menerima semua string dengan akhiran 00.

Buatlah menggunakan 3 keadaan!

Jawab

NFA M5 yang dapat menerima semua string berakhiran 00

q0 q1 q30

0,1

0

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

Penerapan NFA: mencari kataNFA yang mencari kata web dan

ebay pada dokumen.

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}

Latihan

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

a. 01001b. 10101

3. Tuliskandefinisi 5-tupleNFA tersebut.

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)

top related