Upload
vonhan
View
299
Download
12
Embed Size (px)
Citation preview
PERTEMUAN 4
TEORI BAHASA DAN OTOMATA
[TBO]
Jenis FSA
Deterministic Finite Automata (DFA)
Dari suatu state ada tepat satu state berikutnyauntuk setiap simbol masukan yang diterima
Non-deterministic Finite Automata (NFA)
Dari suatu state ada 0, 1 atau lebih state berikutnyauntuk setiap simbol masukan yang diterima
DFA[Deterministic Finite Automata]
Semua FA yang telah kita lihat sampai sekarangadalah DFA
Pada Deterministic Finite Automata, dari satu stateada tepat satu state berikutnya untuk setiap simbolmasukan yang diterima
Apapun state saat itu (current state) ataumasukan/input nya, selalu terdapat satu dan hanyasatu state berikutnya
Catatan Penting !!
δ(q, a) unik; setiap state q memiliki satu (dan hanya
satu) transisi keluar untuk setiap simbol a ∈ Σ
Untuk setiap string input tertentu w, eksekusi benar-benar dapat diprediksi dan dapat diulangi. Olehkarena itu hasil dari eksekusi yang sama mesti sama.Sifat ini disebut dengan determinisme
Catt: δ Greek lowercase Delta; Σ Greek uppercase Sigma
Contoh DFA
State a b
Start x y z
y x z
Final z z za
b b
a
a
b
x y
z
NFANon-Deterministic Finite Automata
Pada Non-Deterministic Finite Automata, dari suatustate bisa terdapat 0, 1 atau lebih busur keluar(transisi) berlabel simbol input yang sama
Pada setiap pasangan state-input, dapat memiliki 0(nol) atau lebih pilihan untuk state berikutnya
NFA Lanjt..
δ(q, a) adalah himpunan state-state: bisa jadi himpunan kosong, atau
lebih dari satu state
Dengan demikian, q bisa memiliki beberapa(atau tidak ada sama sekali) transisi keluaruntuk setiap a ∈ Σ
NFA dapat “menebak” langkah yang tepat,tanpa harus ditentukan (di dalam struktur NFAitu) terlebih dahulu. Tebakan ini muncul karenaadanya beberapa pilihan. Sifat ini disebut dengannon-determinisme.
Contoh 1 : NFA
L = {w ∈ {0, 1}*| w berakhir dengan 01}
Ide: Di suatu state NFA “menebak” bahwa akhir dariinput sudah akan dimulai dan oleh karena itu NFAkemudian menunggu 01, dengan menggunakannon-determinisme.
Contoh 2 : NFA
State a b
Start x {x,y} {y}
Final
y{y} Ø
x y
a, b
a
a
Non-deterministic FA [NFA] Menerima: jika terdapat paling sedikit satu path yang
berakhir di state Final di pohon trace eksekusi
Menolak: jika semua path yang mungkin “terhenti”(stuck, halt) atau berakhir di state yang bukan Final
Interpretasi:
NFA selalu mengambil pilihan yang benar untukmemastikan penerimaan (asumsi: path yang berakhir distate Final memang ada)
NFA membuat copy dirinya sendiri untuk menelusurisemua path yang mungkin
NFA menjelajahi semua path secara parallel.
PENTING!
Semua NFA dengan bahasa L harus memastikan:
∀x L : semua path yang mungkin di pohon
trace eksekusi menolak
∀x L : paling sedikit satu path di pohon trace
eksekusi menerima
Meskipun NFA bebas “menebak”, NFA harusmemastikan bahwa salah satu dari tebakannyabenar. Caranya adalah dengan menebak semuatebakan yang mungkin.
Secara Formal
NFA N = (Q,Σ,δ,q0,F) memiliki struktur yang
sama dengan DFA kecuali untuk fungsi transisi δ
δ : Q × Σ → 2Q
⇒ δ(q, a) adalah himpunan bagian dari Q.
Catt.
Ingat : 2Q
adalah powerset dari Q
Contoh 3 : Penggabungan 2 FA
Berikut diperlihatkan sebuah NFA yang merupakangabungan dari 2 buah FA, yaitu dengan caramenumpuk start state
Dua FA berikut ini (FA1 dan FA2) masing-masingmenerima language yang didefinisikan oleh regularexpression r1 dan r2
Contoh 3 : Penggabungan 2 FA Lanjt..
+
a
a
a
a
b
bb
b
a, b
b
a
a
b
a
b
a, b
Contoh Penggabungan 2 FALanjt..
NFA yang akan dibuat untuk bisa mendefinisikankedua language yang diterima oleh masing-masingFA terlihat seperti berikut ini:
b
a
a
+a
a
a
b
b
b
a, b
b
a
a
b
b
a, b
Contoh 4
Perbedaan dengan NFA: fungsi transisi dapatmemiliki 0 atau lebih fungsi transisi
G = ({q0,q1,q2,q3,q4}, {0,1}, δ, q0, {q2, q4}}
δ 0 1
q0 { q0,q3} {q0,q1}
q1 ε {q2}
q2 {q2} {q2}
q3 {q4} ε
q4 {q4} {q4}
Contoh 4 Lanjt..
String diterima NFA bila terdapat suatu urutan transisiberdasar input, dari state awal ke state akhir.
harus mencoba semua kemungkinan.
Contoh : string 01001
Contoh 4 : string 01001