SLIDE KE:5 NFA
-
Upload
rahmatdi-black -
Category
Education
-
view
2.082 -
download
5
description
Transcript of SLIDE KE:5 NFA
![Page 1: SLIDE KE:5 NFA](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/1.jpg)
NFANon-Deterministic Finite Automata (NFA)
![Page 2: SLIDE KE:5 NFA](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/2.jpg)
DFA
DFA (Deterministic Finite Automata)◦1 keadaan + 1 input 1 keadaan
q0 q1
0
1
![Page 3: SLIDE KE:5 NFA](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/3.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/4.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/5.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/6.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/7.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/8.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/9.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/10.jpg)
Pohon Kemungkinan (2)
![Page 11: SLIDE KE:5 NFA](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/11.jpg)
Contoh 1
Bagaimana cara membaca input 010110?
![Page 12: SLIDE KE:5 NFA](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/12.jpg)
BentukPohon Kemungkinan
Simbol input
![Page 13: SLIDE KE:5 NFA](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/13.jpg)
NFA yang menerima semua string yang memiliki
substring 11 dan 101
![Page 14: SLIDE KE:5 NFA](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/14.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/15.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/16.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/17.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/18.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/19.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/20.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/21.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/22.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/23.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/24.jpg)
Contoh 4
Tuliskan definisi formal NFA berikut ini.
q1
q0
q2
ab
a, b
a, b
M4
![Page 25: SLIDE KE:5 NFA](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/25.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/26.jpg)
Contoh 5Buatlah NFA M5 yang dapat
menerima semua string dengan akhiran 00.
Buatlah menggunakan 3 keadaan!
![Page 27: SLIDE KE:5 NFA](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/27.jpg)
Jawab
NFA M5 yang dapat menerima semua string berakhiran 00
q0 q1 q30
0,1
0
![Page 28: SLIDE KE:5 NFA](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/28.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/29.jpg)
Penerapan NFA: mencari kataNFA yang mencari kata web dan
ebay pada dokumen.
![Page 30: SLIDE KE:5 NFA](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/30.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/31.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022062514/55863243d8b42a4c578b502f/html5/thumbnails/32.jpg)
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)