2014
Ir. Ahmad Haidaroh, M.Kom.
Definisi
• Mesin abstrak berupa
sistem model
matematika dengan
masukan dan keluaran
diskrit yang dapat
mengenali bahasa
paling sederhana
(bahasa reguler) dan
dapat
diimplementasikan
secara nyata.
Jenis FSA
• Deterministik (DFSA/DFA)
pada setiap input, hanya ada satu keadaan
(state) tujuan dari keadaan saat ini.
• Nondeterministik (NFSA/NFA)
pada setiap input terdapat lebih dari satu
keadaan tujuan dari keadaan saat ini.
D-FSA/DFA
1. Himpunan keadaan (Q).
2. Himpunan simbol input ()
3. Fungsi transisi (), memuat satu keadaan asal
dan satu simbol input dan satu keadaan tujuan.
4. Keadaan awal (q0)merupakan salah satu dari
Q.
5. Himpunan keadaan final atau yang diterima,
dinotasikan dengan F (FQ)
5-TUPLE D-FSA
A = (Q, , , q0, F)
1. Himpunan keadaan (Q).
2. Himpunan simbol input ()
3. Fungsi transisi (), memuat satu keadaan asal dan satu simbol
input dan satu keadaan tujuan.
4. Keadaan awal (q0)merupakan salah satu dari Q.
5. Himpunan keadaan final atau yang diterima, dinotasikan dengan
F (FQ)
Notasi Lain DFSA
1. Diagram Transisi / State Diagram
• Tiap keadaan merupakan simpul
• Tiap keadaan q Q dan tiap simbol a , dituliskan
sebagai (q,a) = p. Artinya, diagram transisi memiliki
panah dari q ke p, yang berlabel a.
• Keadaan awal (q0) ditandai dengan adanya panah
tanpa sumber.
• Simpul yang menjadi keadaan final ditandai dengan
lingkaran bergaris tepi ganda
Notasi Lain DFSA
2. Tabel Transisi
• Representasi daftar dari suatu fungsi
• Baris menunjukkan keadaan dan kolom
menunjukkan input.
• Isi dari baris menunjukkan keadaan q dan isi dari
kolom input a menunjukkan keadaan (q,a)
Contoh: A = (Q, , , q0, F)
DFSA yang dapat menerima string berakhiran 01
A = ({q0, q1, q2}, {0,1}, , q0, {q2})
dengan fungsi transisi diberikan dalam bentuk
tabel: 0 1
q0 q1 q0
q1 q1 q2
* q2 q2 q1
1 0 0
1
0 1
q0 q1 q2
State Diagram
0
Contoh DFSA :
M = (Q, , , s, F), dimana :
0 1
q0 q1 q2
11101, lakukan
Contoh : diberikan input pada mesin DFSA 010111, lakukantracer
tracer: :
,11101)
(q0,010111) ├M (q0,10111)
,1101)
├M (q0,0111)
,101)
├M (q0,111)
,01)
├M (q01,11)
,1)
├M (q02,1)
,e)
Karena berhenti di├Mq(q
2, 0maka
,e) 11101 diterima oleh mesin DFSA
Karena berhenti bukan di q2, maka 010111 tidak diterima oleh mesin DFSA
DFA nya
Tabel Transisi
Q = {q0 , q1 , q2 , q3 }
0 1
= {0,1}
S = q0 q0 q2 q1
F = { q0} q1 q3 q0
q2 q0 q3
q3 q1 q2
(q0,1010) = (q1,010)
= (q3,10)
=(q2,0)
State Diagram = (q0,e) Diterima
Perluasan Fungsi Transisi untuk String
• DFSA mendefinisikan bahasa sebagai
himpunan semua string yang hasilnya dalam
bentuk urutan transisi keadaan dari keadaan
awal sampai keadaan final (yang diterima)
Perluasan Fungsi Transisi untuk String (lanj.)
• Fungsi Transisi Diperluas
• Mendeskripsikan yang terjadi ketika suatu keadaan
dimulai dan sembarang urutan input diikuti.
• Jika adalah fungsi transisi, maka fungsi transisi
diperluas dinotasikan dengan 𝛿
• Fungsi transisi diperluas merupakan fungsi saat
keadaan q untuk masukan berupa string w, dan
menghasilkan keadaan p (keadaan yang dicapai
otomaton ketika memulai di keadaan q dan memproses
urutan input w)
Definisi Formal dari Fungsi Transisi Diperluas
•
Definisi Formal dari Fungsi Transisi Diperluas
0 1
q0 q1 q2
Definisi Formal NFSA
5-tuple NFSA dituliskan sebagai
A = (Q, , , q0, F)
0 1
q0 q1 q2
Fungsi Transisi Diperluas
Basis: 𝜹(q,) = {q}
Tanpa mendapat simbol input, kita tetap berada di keadaan semula.
Induksi:
• Misalkan w adalah string dalam bentuk xa; dengan a merupakan
symbol terakhir dari w dan x suatu string yang ada dalam w selain
symbol terakhir.
• Misalkan 𝛿(q,x) = {p1, p2, …, pk}
• Bila
𝒌
0 1
q0 q1 q2
Untuk w = 00101
1. 𝛿(q0,) = {q0}
2. 𝛿(q0,0) = {q0,0} = {q0, q1}
3. 𝛿(q0,00) = {q0,0} {q1,0} = {q0, q1} = {q0, q1}
4. 𝛿(q0,001) = {q0,1} {q1,1} = {q0} {q2} = {q0, q2}
5. 𝛿(q0,0010) = {q0,0} {q2,0} = {q0, q1} = {q0, q1}
6. 𝛿(q0,00101) = {q0,1} {q1,1} = {q0} {q2} = {q0, q2}
Bahasa NFSA
Bahasa suatu NFSA A = (Q, , , q0, F) dinotasikan
dengan L(A) yang didefinisikan sebagai
L(A) = {w | 𝜹(q0,w) F }
0 1
q0 q1 q2
0 1
q0 q1 q2
0 1
{q0} {q0, q1} {q0}
{q1} {q2}
* {q2}
{q0, q1} {q0, q1} {q0, q2}
* {q0, q2} {q0, q1} {q0}
* {q1, q2} {q2}
* {q0,q1,q2} {q0, q1} {q0, q2}
Contoh: dengan nama baru
• Catatan: keadaan D berkaitan dengan himpunan
bagian dari keadaan N, namun kita dapat
notasikan keadaan D menggunakan A – F.
0 1 0 1
A A A
{q0} {q0, q1} {q0} B E B
{q1} {q2} C A D
* {q2} * D A A
{q0, q1} {q0, q1} {q0, q2} E E F
* {q0, q2} {q0, q1} {q0} * F E B
* {q1, q2} {q2} * G A D
* {q0,q1,q2} {q0, q1} {q0, q2} * H E F
Transformasikan
NFSA berikut
menjadi DFSA.
Langkah ke–1
Membuat state DFSA
Himpunan state yang
baru :
q0’= {1,3}
Langkah ke – 3.
Membuat Final State DFSA
Final state yang baru :
Semua yg dimulai
dari 1.
Langkah ke–4
Membuat Diagram Transisi DFSA
= a b
1
1 2
2 2,3 2,3 b a
3 1
1,2 2,3 2,3
2 3
1,3 1 2 a, b
2,3 1,2,3 2,3
a, b
1,2,3 1,2,3 2,3
a b
Langkah ke–5
1 2
Penghapusan State tak-perlu 2 2,3 2,3
3 1,3
1,2 2,3 2,3
1,3 1,3 2
2,3 1,2,3 2,3
1,2,3 1,2,3 2,3
Langkah ke–5
Penghapusan state tak-perlu