slide ke:5 nfa
DESCRIPTION
TERI BAHASA OTOMATATRANSCRIPT
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)