NFA

Teori Bahasa dan Automata

Viska Mutiawani - Informatika FMIPA
1
Unsyiah

NFA
• NFA: Nondeterministic Finite Automata
– Atau Automata Hingga NonDeterministik
(AHND)
– Salah satu bentuk dari Finite Automata
• NFA memiliki kemampuan untuk berada pada
beberapa state pada waktu yang sama
• Transisi dari suatu state terhadap suatu
simbol input dapat berpindah ke beberapa
state
Viska Mutiawani - Informatika FMIPA
2
Unsyiah

NFA
• Bermula dari state awal
• Output “terima” jika pemilihan transisi
berdasarkan input berakhir di state akhir
• Secara intuisi: NFA selalu “menebak yang
benar”

Viska Mutiawani - Informatika FMIPA
3
Unsyiah

Nondeterministic Finite Automaton (NFA) Alphabet = {a} q1 a q2 a q0 a q3 Viska Mutiawani .Informatika FMIPA 4 Unsyiah .

Informatika FMIPA 5 Unsyiah .Alphabet = {a} Ada dua pilihan q1 a q2 Tidak ada transisi a q0 a q3 Tidak ada transisi Viska Mutiawani .

Pilihan pertama a a q1 a q2 a q0 a q3 Viska Mutiawani .Informatika FMIPA 6 Unsyiah .

Informatika FMIPA 7 Unsyiah . Pilihan pertama a a q1 a q2 a q0 a q3 Viska Mutiawani .

First Choice a a Semua input berhasil dihabiskan q1 a q2 “terima” a q0 a q3 Viska Mutiawani .Informatika FMIPA 8 Unsyiah .

Pilihan kedua a a q1 a q2 a q0 a q3 Viska Mutiawani .Informatika FMIPA 9 Unsyiah .

Pilihan kedua a a Tidak semua input berhasil dihabiskan q1 a q2 a q0 Automaton Halt/berhenti a q3 “tolak” Viska Mutiawani .Informatika FMIPA 10 Unsyiah .

Suatu NFA menerima input string: Jika ada suatu proses komputasi pada NFA yang menerima string tersebut Maksudnya: semua input string berhasil diproses dan automaton berada di state penerima Viska Mutiawani .Informatika FMIPA 11 Unsyiah .

Informatika FMIPA 12 Unsyiah . aa diterima oleh NFA di bawah: “terima” q1 a q2 q1 a q2 a a q0 q0 a a q3 q3 “tolak” Ini komputasi Komputasi ini diabaikan yang menerima aa Viska Mutiawani .

Informatika FMIPA 13 Unsyiah . Contoh penolakan a q1 a q2 a q0 a q3 Viska Mutiawani .

Informatika FMIPA 14 Unsyiah . Pilihan pertama a “tolak” q1 a q2 a q0 a q3 Viska Mutiawani .

Informatika FMIPA 15 Unsyiah . Pilihan kedua a q1 a q2 a q0 a q3 Viska Mutiawani .

Pilihan kedua a q1 a q2 a q0 a “tolak” q3 Viska Mutiawani .Informatika FMIPA 16 Unsyiah .

Contoh penolakan lainnya a a a q1 a q2 a q0 a q3 Viska Mutiawani .Informatika FMIPA 17 Unsyiah .

Informatika FMIPA 18 Unsyiah . Pilihan pertama a a a q1 a q2 a q0 a q3 Viska Mutiawani .

Informatika FMIPA 19 Unsyiah . Pilihan pertama a a a Tidak semua input berhasil dihabiskan q1 a q2 “tolak” a q0 a Automaton halt/berhenti q3 Viska Mutiawani .

Informatika FMIPA 20 Unsyiah . Pilihan kedua a a a q1 a q2 a q0 a q3 Viska Mutiawani .

Informatika FMIPA 21 Unsyiah . Pilihan kedua a a a Tidak semua input berhasil dihabiskan q1 a q2 a Automaton halt/berhenti q0 a q3 “tolak” Viska Mutiawani .

Informatika FMIPA 22 Unsyiah . Untuk setiap proses komputasi: • Semua input berhasil dihabiskan namun automaton berada bukan pada state penerima ATAU • Belum semua input berhasil dihabiskan Viska Mutiawani .Suatu NFA menolak input string: Jika tidak ada suatu proses komputasi pada NFA yang menerima string tersebut.

Informatika FMIPA 23 Unsyiah . a ditolak oleh NFA di bawah “tolak” q1 a q2 q1 a q2 a a q0 q0 a a q3 “tolak” q3 Semua komputasi yang mungkin berakhir dengan penolakan Viska Mutiawani .

Informatika FMIPA 24 Unsyiah . aaa ditolak oleh NFA di bawah “tolak” q1 a q2 q1 a q2 a a q0 q0 a a q3 q3 “tolak” Semua komputasi yang mungkin berakhir dengan penolakan Viska Mutiawani .

Informatika FMIPA 25 Unsyiah .Bahasa yang diterima: L  {aa} q1 a q2 a q0 a q3 Viska Mutiawani .

Transisi Lambda q0 a q1  q2 a q3 Viska Mutiawani .Informatika FMIPA 26 Unsyiah .

Informatika FMIPA 27 Unsyiah .a a q0 a q1  q2 a q3 Viska Mutiawani .

Informatika FMIPA 28 Unsyiah .a a q0 a q1  q2 a q3 Viska Mutiawani .

Kepala input tape head tidak bergerak a a q0 a q1  q2 a q3 Automaton berpindah state Viska Mutiawani .Informatika FMIPA 29 Unsyiah .

Informatika FMIPA 30 Unsyiah .Semua input berhasil dihabiskan a a “terima” q0 a q1  q2 a q3 String aa diterima Viska Mutiawani .

Contoh penolakan a a a q0 a q1  q2 a q3 Viska Mutiawani .Informatika FMIPA 31 Unsyiah .

Informatika FMIPA 32 Unsyiah .a a a q0 a q1  q2 a q3 Viska Mutiawani .

Informatika FMIPA 33 Unsyiah .Kepala tape tidak bergerak a a a q0 a q1  q2 a q3 Viska Mutiawani .

Informatika FMIPA 34 Unsyiah .Belum semua input berhasil dihabiskan a a a Automaton halt/berhenti “tolak” q0 a q1  q2 a q3 String aaa ditolak Viska Mutiawani .

Informatika FMIPA 35 Unsyiah .Bahasa yang diterima: L  {aa} q0 a q1  q2 a q3 Viska Mutiawani .

Contoh lain NFA q0 a q1 b q2  q3  Viska Mutiawani .Informatika FMIPA 36 Unsyiah .

a b q0 a q1 b q2  q3  Viska Mutiawani .Informatika FMIPA 37 Unsyiah .

Informatika FMIPA 38 Unsyiah .a b q0 a q1 b q2  q3  Viska Mutiawani .

a b “terima” q0 a q1 b q2  q3  Viska Mutiawani .Informatika FMIPA 39 Unsyiah .

String yang lain a b a b q0 a q1 b q2  q3  Viska Mutiawani .Informatika FMIPA 40 Unsyiah .

a b a b q0 a q1 b q2  q3  Viska Mutiawani .Informatika FMIPA 41 Unsyiah .

Informatika FMIPA 42 Unsyiah .a b a b q0 a q1 b q2  q3  Viska Mutiawani .

a b a b

q0 a q1 b q2  q3


Viska Mutiawani - Informatika FMIPA
43
Unsyiah

a b a b

q0 a q1 b q2  q3


Viska Mutiawani - Informatika FMIPA
44
Unsyiah

a b a b

q0 a q1 b q2  q3


Viska Mutiawani - Informatika FMIPA
45
Unsyiah

a b a b “terima” q0 a q1 b q2  q3  Viska Mutiawani .Informatika FMIPA 46 Unsyiah .

abab. Bahasa yang diterima L  ab. ababab. ..Informatika FMIPA 47 Unsyiah .   ab q0 a q1 b q2  q3  Viska Mutiawani ..

Contoh lain NFA 0 q0 q1 0. 1 q2 1  Viska Mutiawani .Informatika FMIPA 48 Unsyiah .

1010. 10. 101010..Informatika FMIPA 49 Unsyiah . .Bahasa yang diterima L(M ) = {λ..} = {10} * 0 q0 q1 0. 1 q2 1 (redundant state)  Viska Mutiawani .

Perhatikan: •Simbol  tidak pernah muncul pada input tape •Automata sederhana: M1 M2 q0 q0 L( M1 ) = {} L( M 2 ) = {λ} Viska Mutiawani .Informatika FMIPA 50 Unsyiah .

•NFA lebih menarik karena kita dapat mengekspresikan bahasa lebih sederhana dibanding DFA NFA M1 DFA M2 a q2 q0 a q1 a q0 a q1 L( M 1 ) = {a} L( M 2 ) = {a} Viska Mutiawani .Informatika FMIPA 51 Unsyiah .

F  Q: Set/kumpulan state q0 . q2  : Alfabet input. Definisi Formal dari NFA M  Q. contoh a. q1. q0 .Informatika FMIPA 52 Unsyiah . . b    : Fungsi transisi q0 : State awal F: Set/kumpulan state penerima Viska Mutiawani .  .

qk  x qk Viska Mutiawani . q2 . . Fungsi transisi  Fungsi transisi DFA:  : Q    Q Fungsi transisi NFA:  : Q  (  {})  (Q) q1 x State hasil dengan satu transisi terhadap simbol x q x q1  q. x   q1 .Informatika FMIPA 53 Unsyiah .

 q0 .Informatika FMIPA 54 Unsyiah . 1 q 2 1  Viska Mutiawani . 1  q1 0 q0 q1 0.

Informatika FMIPA 55 Unsyiah . (q1. 1 q 2 1  Viska Mutiawani .0)  {q0 . q2 } 0 q0 q1 0.

1 q 2 1  Viska Mutiawani .Informatika FMIPA 56 Unsyiah .  )  {q2 } 0 q0 q1 0.  (q0 .

1)   0 q0 q1 0.Informatika FMIPA 57 Unsyiah . 1 q 2 1  Viska Mutiawani .  (q2 .

Informatika FMIPA 58 Unsyiah .Bisakah anda membuat tabel transisi untuk NFA? 0 1 λ q0 {} {q1} {q2} q1 {q0. q2} {q2} {} q2 {} {} {} Viska Mutiawani .

Informatika FMIPA Unsyiah 59 . a   q1 * q4 q5 a a q0 a q1 b q2  q3  Viska Mutiawani . * Fungsi transisi diperluas  Sama saja dengan  namun berlaku pada string  q0 .

q5  * q4 q5 a a q0 a q1 b q2  q3  Viska Mutiawani .Informatika FMIPA Unsyiah 60 . aa   q4 .  q0 .

 q0 .Informatika FMIPA Unsyiah 61 . ab   q2 . q0  * q4 q5 a a q0 a q1 b q2  q3  Viska Mutiawani . q3 .

Kasus khusus: Untuk setiap state q q   q.Informatika FMIPA 62 Unsyiah .  * Viska Mutiawani .

Informatika FMIPA 63 Unsyiah . w Bermakna ada jalan dari qi * menuju q j dengan label w qi w qj w   1 2  k 1 2 k qi qj Viska Mutiawani .Secara umum q j   qi .

.. Bahasa dari NFA M Bahasa yang diterima oleh M adalah: LM   w1 ..Informatika FMIPA 64 Unsyiah .  ..wn  * dimana  ( q0 .. qk . wm )  {qi .. q j } dan terdapat qk  F (state penerima) Viska Mutiawani .. w2 .

Informatika FMIPA 65 Unsyiah . wm ) qi wm qk qk  F q0 w m wm qj Viska Mutiawani . * wm  LM   (q0 .

q5 *  aa  L(M ) F Viska Mutiawani .Informatika FMIPA 66 Unsyiah .q5  q4 q5 a a q0 a q1 b q2  q3    q0 .F  q0 . aa   q4 .

q0 *  ab  LM  F Viska Mutiawani .Informatika FMIPA 67 Unsyiah . q3 .F  q0 . ab   q2 .q5  q4 q5 a a q0 a q1 b q2  q3    q0 .

abaa   q4 .F  q0 .q5  q4 q5 a a q0 a q1 b q2  q3    q0 . q5 *  aaba  L(M ) F Viska Mutiawani .Informatika FMIPA 68 Unsyiah .

Informatika FMIPA 69 Unsyiah .F  q0 .q5  q4 q5 a a q0 a q1 b q2  q3   q0 . aba   q1  * aba  LM  F Viska Mutiawani .

q4 q5 a a q0 a q1 b q2  q3  LM   ab*  ab* {aa} Viska Mutiawani .Informatika FMIPA 70 Unsyiah .

NFA menerima Bahasa Regular Viska Mutiawani .Informatika FMIPA 71 Unsyiah .

Informatika FMIPA 72 Unsyiah . Ekuivalensi Mesin Otomata Definisi: Mesin M1 dikatakan ekuivalen dengan mesin M 2 jika L M1   L M 2  Viska Mutiawani .

1 0 LM 2   {10} * q0 q1 1 q2 1 Viska Mutiawani .Informatika FMIPA Unsyiah 0 73 .Contoh mesin yang ekuivalen NFA M1 0 LM1   {10} * q0 q1 1 DFA M2 0.

Teorema: Bahasa diterima oleh NFA  Bahasa Regular Bahasa yang diterima oleh DFA NFA dan DFA memiliki kekuatan komputasi yang sama.Informatika FMIPA 74 Unsyiah . dan menerima set bahasa yang sama Viska Mutiawani .

Set equality A = B dapat dibuktikan Pembuktian: dengan A subset B dan A superset dari B Kita tunjukkan: Bahasa diterima oleh NFA  Bahasa Regular AND Bahasa diterima oleh NFA  Bahasa Regular Viska Mutiawani .Informatika FMIPA 75 Unsyiah .

Pembuktian tahap 1 Bahasa Bahasa diterima oleh NFA  Regular Setiap DFA secara otomatis juga merupakan NFA Setiap bahasa L yang diterima oleh DFA Pastilah juga diterima oleh NFA Viska Mutiawani .Informatika FMIPA 76 Unsyiah .

Informatika FMIPA 77 Unsyiah . Pembuktian tahap 2 Bahasa Bahasa diterima oleh NFA  Regular Setiap NFA dapat dikonversi ke bentuk DFA yang ekuivalen Setiap bahasa L yang diterima oleh NFA Pastilah juga diterima oleh DFA Viska Mutiawani .

Konversi NFA ke DFA NFA M a q0 a q1  q2 b DFA M q0  Viska Mutiawani .Informatika FMIPA 78 Unsyiah .

q2 } NFA M a q0 a q1  q2 b DFA M q0  a q1. a )  {q1 .  * (q0 .Informatika FMIPA 79 Unsyiah . q2  Viska Mutiawani .

 * ( q0 .Informatika FMIPA 80 Unsyiah . q2  b State jebakan  Viska Mutiawani . b )   Set kosong NFA M a q0 a q1  q2 b DFA M q0  a q1.

q2  b  Viska Mutiawani . a )  {q1 .  * (q1 .Informatika FMIPA 81 Unsyiah . q2 } NFA M a  * ( q2 . q2  DFA a M q0  a q1. a )   a  union q0 q1 q2 b q1.

q2  b  Viska Mutiawani .Informatika FMIPA 82 Unsyiah . b)  {q0 } a  union q0 q1 q2 b q0  DFA b a M q0  a q1. b)  {q0 } NFA M a  * ( q2 . *  (q1 .

q2  b  a.NFA M a q0 a q1  q2 b DFA b a M q0  a q1.Informatika FMIPA 83 Unsyiah . b trap state Viska Mutiawani .

q2  F  b  a.Informatika FMIPA 84 Unsyiah . Akhir konstruksi NFA M a q0 a q1  q2 q1  F b a DFA M b q0  a q1. b Viska Mutiawani . q2  q1.

Informatika FMIPA 85 Unsyiah . Prosedur konversi NFA ke DFA Input: suatu NFA M Output: suatu DFA M yang ekuivalen sehingga L M   L(M ) Viska Mutiawani .

. q1.. q0 .. Viska Mutiawani . q1 . q3 .Jika NFA memiliki state q0 .. q2 ... q0 .. Maka DFA memiliki state yang berasal dari power set . q1 . q2 . q1 .Informatika FMIPA 86 Unsyiah .

Langkah-langkah konversi langkah 1.  Viska Mutiawani .Informatika FMIPA 87 Unsyiah .    q0 .  * state awal DFA: q0 . State awal NFA: q0  q0 .

   q0  * NFA M a q0 a q1  q2 b DFA M q0  Viska Mutiawani .  q0 .Informatika FMIPA 88 Unsyiah .

.. a   {qk .... Untuk setiap state DFA {qi .. qn } .. a   {qk .qm} komputasikan pada NFA  * qi . a  Union   * q j ... q j ..Informatika FMIPA 89 Unsyiah .. qn } Viska Mutiawani .langkah 2.. qm }. ql..   * qm . ql.. q j .... a  tambah transisi ke DFA  {qi ..

q2 } NFA M a q0 a q1  q2 b DFA M q0  a q1. q2  Viska Mutiawani . q2   q0 . a   q1.Example  * ( q0 .Informatika FMIPA 90 Unsyiah . a )  {q1.

Ulangi langkah 2 untuk setiap state pada DFA dan semua simbol dalam alfabet hingga tidak ada lagi state yang bisa ditambahkan ke DFA Viska Mutiawani .Informatika FMIPA 91 Unsyiah .langkah 3.

Informatika FMIPA 92 Unsyiah . b Viska Mutiawani .NFA M a q0 a q1  q2 b DFA b a M q0  a q1. q2  b  a.

.. q j .. qm } merupakan state penerima pada DFA Viska Mutiawani ... {qi .langkah 4.Informatika FMIPA 93 Unsyiah . Untuk setiap state pada DFA {qi .... q j . qm } jikaq j merupakan state penerima pada NFA maka.

NFA
M a
q0 a q1  q2 q1  F
b
a
DFA
M b

q0  a
q1, q2 
q1, q2  F 
b

 a, b
Viska Mutiawani - Informatika FMIPA
94
Unsyiah

Lemma:

Jika kita berhasil mengkonversi NFA M
ke DFA M  maka kedua otomata
tersebut ekuivalen L M  L M     

Proof:
Kita akan tunjukkan: L M   L M  
dan
L M   L M  
Viska Mutiawani - Informatika FMIPA
95
Unsyiah

Pertama sekali tunjukkan:

L M   L M 
Kita buktikan dengan cara:

w L(M ) w  L(M )

Viska Mutiawani - Informatika FMIPA
96
Unsyiah

NFA Kita pertimbangkan: w L(M ) q0 w qf simbol w   1 2  k 1 2 k q0 qf Viska Mutiawani .Informatika FMIPA 97 Unsyiah .

Informatika FMIPA 98 Unsyiah . simbol i qi qj Merupakan ringkasan dari sub-path simbol   i  qi qj Viska Mutiawani .

} {q f . Kita tunjukkan jika w L(M ) w   1 2  k 1 2 k NFA M: q0 qf maka DFA 1 2 k M: {q0 .} state w  L(M ) state label Viska Mutiawani .Informatika FMIPA label 99 Unsyiah .

} {q j . kita tunjukkan bahwa pada M (string apapun) v  a1a2  an a1 a2 an NFA M: q0 qi qj ql qm maka a1 a2 an DFA M: {q0 . Secara lebih umum.} Viska Mutiawani .} {ql .} {qm . } {qi .Informatika FMIPA 100 Unsyiah .

} Adalah benar sewaktu pengkonversian menjadi M Viska Mutiawani .Informatika FMIPA 101 Unsyiah . } {qi . Pembuktian secara induksi |v| Dasar induksi: |v | 1 v  a1 a1 NFA M: q0 qi a1 DFA M: {q0 .

} {q j . } {qi .} {qd .Informatika FMIPA 102 Unsyiah .} Viska Mutiawani . Hipotesis induksi: 1 | v | k v  a1a2  ak Anggap seperti di bawah a1 a2 ak NFA M: q0 qi qj qc qd a1 a2 ak DFA M: {q0 .} {qc .

} Unsyiah v Viska Mutiawani . Langkah induksi: | v | k  1 v  a1a2  ak ak 1  vak 1   v Maka terbukti benar dengan adanya konstruksi M a1 a2 ak ak 1 NFA M: q0 qi qj qc qd qe v DFA a1 a2 ak ak 1 M: {q0 .} {q j .} {qd .Informatika FMIPA 103 . } {qi .} {qc .} {qe .

} {q f .Informatika FMIPA 104 Unsyiah .} w  L(M ) Viska Mutiawani . Oleh karena itu jika w L(M ) w   1 2  k 1 2 k NFA M: q0 qf maka 1 2 k DFA M: {q0 .

Informatika FMIPA 105 Unsyiah . Kita telah tunjukkan: L M   L M   Dengan cara yang sama. kita juga dapat buktikan: L M   L M   Maka: LM   LM  Akhir pembuktian Viska Mutiawani .

Jadi apa kesimpulan akhirnya? Viska Mutiawani .Informatika FMIPA 106 Unsyiah .