Anda di halaman 1dari 57

Teori Bahasa dan

Otomata
Rezania Agramanisti Azdy
MULAI MATERI
PERTEMUAN 4-5
FINITE STATE AUTOMATA - NFA - KONSEP
NONDETERMINISTIC FINITE AUTOMATA - REDUKSI FSA -
EKUIVALENSI NFA DENGAN DFA - NFA DENGAN ε-move -
PENGGABUNGAN FSA
NFA (1)
• NFA adalah sebuah otomata yang tidak tentu arah transisinya.
• NFA dapat berada pada lebih dari satu state secara bersamaan.
• NFA dinyatakan dalam 5 buah tupel dengan notasi:
M = (Q, ∑, δ, S, F)
dimana
Q = himpunan hingga state ∑ = himpunan hingga simbol alfabet δ =
fungsi transisi S = state awal
• Sama seperti DFA, NFA juga digambarkan menggunakan graf
berarah.
Rezania Agramanisti Azdy
NFA (2)
• δ(q, a) pada NFA adalah himpunan state-state yang:
− bisa lebih dari satu state, atau − himpunan kosong. Sehingga q
dapat memiliki beberapa (atau tidak ada sama sekali) transisi
keluar untuk setiap a ∈ ∑.
• Sebuah string dinyatakan diterima oleh NFA jika terdapat
transisi yang mungkin sehingga mesin berada pada state final,
atau salah satu anggota himpunan state akhirnya adalah state
final.
• Sebuah string dinyatakan tidak diterima oleh NFA jika tidak
ada satupun trace yang mungkin untuk mesin berada pada state
final.
Rezania Agramanisti Azdy
NFA (3)
• Contoh: Diketahui sebuah NFA dengan: Q = {q
0

,q
1

,q
2

} ∑ = {0,1} S = q
0F=q
2δ=
δ01
q
0

{q
0

,q
1

}q
0

q
1

∅q
2

q
2

∅∅
Diagram transisi:
0,1

q
0

0q
1

q
2
Rezania Agramanisti Azdy
NFA (4)
• Apakah NFA tsb. dapat menerima string 00101?
0,1
Pohon trace eksekusi yang mungkin untuk
q
0

0q
1

q
2

string 00101:
q
0

q
0

q
1

0
q
0

q
1
(terhenti)

q
0

q
2 (diterima)

Karena dari seluruh kemungkinan tracking terdapat satu trace yang berakhir pada
state final, maka string 00101 diterima oleh NFA.
q
0

q
1
(terhenti)

01
q
0

δ(q
0

, 00101) ⇒ δ(q
0

, 0101) ∪ δ(q
1

, 0101) ⇒ δ(q
0

, 101) ∪ δ(q
1

, 101) ∪ ∅
q
2
⇒ δ(q
0

, 01) ∪ δ(q
2

, 01) ⇒ δ(q
0

, 1) ∪ δ(q
1

, 1) ∪ ∅ ⇒ q
0

∪q
2

= {q
0

,q
2

}
0
1
Rezania Agramanisti Azdy
NFA (5)
• Latihan 1: Diketahui NFA dengan diagram transisi berikut:
Tentukan apakah string berikut diterima oleh NFA diatas! a. ab b. abc c. aabc d.
aabb
Rezania Agramanisti Azdy
NFA (6)
• Latihan 2:
Buatlah konfigurasi formal untuk NFA disamping dan tentukan apakah NFA
menerima string 31213!
Rezania Agramanisti Azdy
Perbedaan NFA dengan DFA
DFA NFA
δ : Q x ∑ → Q δ : Q x ∑ → 2Q
Jumlah transisi yang mungkin adalah sebanyak jumlah alfabet untuk setiap state
Jumlah transisi yang mungkin adalah sebanyak powerset dari banyaknya state.
• DFA dapat diimplementasikan dengan mudah dalam komputer.
• NFA lebih mudah dimengerti, dibangun, dan dibuat spesifikasinya.
Rezania Agramanisti Azdy
Ekuivalensi Finite State Automata
Definisi:
Dua buah FSA disebut ekuivalen apabila kedua FSA tersebut menerima
bahasa yang sama.
Rezania Agramanisti Azdy
Reduksi Finite State Automata (FSA)
(1)
Untuk sebuah bahasa reguler kemungkinan akan terdapat beberapa FSA
yang dapat menerimanya.
Reduksi FSA dilakukan dengan mengurangi jumlah state dengan tidak
mengurangi kemampuannya dalam menerima bahasa.
Perhatikan:
• distinguishable (dapat dibedakan): jika salah satu state pada pasangan
state adalah state final.
• indistinguishable: >< distinguishable
Rezania Agramanisti Azdy
Reduksi Finite State Automata (FSA)
(2)
Langkah reduksi FA: 1. Identifikasi setiap kombinasi pasangan state
yang mungkin. 2. Untuk setiap state yang berpasangan dengan state
final, jika salah satu
pasangan adalah state final maka pasangan state tersebut
distinguishable. 3. Jika masing-masing state mendapat input yang sama:
bila satu state
mencapai state akhir dan yang lain tidak mencapai state akhir, maka
pasangan state dikatakan distinguishable. 4. Dari seluruh pasangan state
yang indinguishable, state-state yang saling
indistinguishable dapat dijadikan satu state. Jika p dan q
indistinguishable, q dan r indistinguishable, serta p dan r
indistinguishable. Maka p, q, dan r semua berada pada satu state. 5.
Sesuaikan transisi dari dan ke state–state gabungan tersebut.
Rezania Agramanisti Azdy
Reduksi Finite State Automata (FSA)
(3)
Contoh:
Sederhanakanlah bentuk DFA berikut:
Rezania Agramanisti Azdy
Reduksi Finite State Automata (FSA)
(4)
Langkah 1: Identifikasi setiap kombinasi state yang mungkin (p, q), dimana p ∈ F
dan q ∈ F.
1. (q
0

,q
1

) 2. (q
0

,q
2

) 3. (q
0

,q
3

) 4. (q
0

,q
4

) 5. (q
1

,q
2

) 6. (q
1

,q
3

) 7. (q
1
,q
4

) 8. (q
2

,q
3

) 9. (q
2

,q
4

) 10. (q
3

,q
4

)
Rezania Agramanisti Azdy
Reduksi Finite State Automata (FSA)
(5)
Langkah 2: Untuk setiap state yang berpasangan dengan state final, maka pasangan
state tersebut distinguishable.
F = {q
4

} 1. (q
0

,q
1

) 2. (q
0

,q
2

) 3. (q
0

,q
3

) 4. (q
0

,q
4

) : distinguishable 5. (q
1

,q
2

) 6. (q
1

,q
3
) 7. (q
1

,q
4

) : distinguishable 8. (q
2

,q
3

) 9. (q
2

,q
4

) : distinguishable 10. (q
3

,q
4

) : distinguishable
Rezania Agramanisti Azdy
Reduksi Finite State Automata (FSA)
(6)
Langkah 3: Jika masing-masing state mendapat input yang sama: bila satu state
mencapai state akhir dan yang lain tidak mencapai state akhir, maka pasangan state
dikatakan distinguishable.
1. (q
0

,q
1

) : distinguishable 2. (q
0

Untuk (q
0

,q
1

) δ(q
0

,0)=q
1

; δ(q
0

,1)=q
3 δ(q
1

Untuk (q
1

,q
2

),
q
2
) : distinguishable 3. (q
0

,0)=q
2

; δ(q
1

,1)=q
4

δ(q
1

,0)=q
2

; δ(q
1

,1)=q
4
,q
3

) : distinguishable
δ(q
2

,0)=q
1

; δ(q
2

,1)=q
4
4. (q
0

,q
4

) : distinguishable 5. (q
1
,q
2

) : indistinguishable 6. (q
1

Untuk (q
0

,q
2

) δ(q
0

,0)=q
1

; δ(q
0

,1)=q
3 δ(q
2

Untuk (q
1

,q
3

)
,q
3

) : indistinguishable 7. (q
1

,0)=q
1

; δ(q
2

,1)=q
4

δ(q
1

,0)=q
2

; δ(q
1

,1)=q
4

,q
4

) : distinguishable
δ(q
3

,0)=q
2

; δ(q
3

,1)=q
4

8. (q
2

,q
3

) : indistinguishable 9. (q
2

Untuk (q
0 δ(q
0

,q
3

)
10. (q
3

,q
4

) : distinguishable
δ(q
3

,0)=q
1

; δ(q
0

,1)=q
3

Untuk (q
2

,q
3

)
,q
4

) : distinguishable
,0)=q
2

; δ(q
3

,1)=q
4

δ(q
2

,0)=q
1

; δ(q
2

,1)=q
4 δ(q
3
,0)=q
2

; δ(q
3

,1)=q
4
Rezania Agramanisti Azdy
Reduksi Finite State Automata (FSA)
(7)
Langkah 4: Dari seluruh pasangan state yang indinguishable, state-state yang
saling indistinguishable dapat dijadikan satu state.
1. (q
1

,q
2

) : indistinguishable 2. (q
1

Karena q
1

indistinguishable dengan q
2

,
,q
3

) : indistinguishable 3. (q
2

q
1

indistinguishable dengan q
3

,,q
3

) : indistinguishable
q
2 indistinguishable sehingga q
1

dengan q
3

,,q
2

, dan q
3

saling indistingushable dan dapat dijadikan satu state.


q
123
Rezania Agramanisti Azdy
Reduksi Finite State Automata (FSA)
(8)
Langkah 5: Sesuaikan transisi dari dan ke state–state gabungan tersebut.
q
123

0
0,1

q
0

0, 1 1

q
4

DFA sesudah direduksi DFA sebelum direduksi


Rezania Agramanisti Azdy
Reduksi Finite State Automata (FSA)
(9)
• Latihan 3:
Tentukanlah bentuk sederhana dari FA berikut:
Rezania Agramanisti Azdy
Ekuivalensi NFA dengan DFA (1)
Teorema: Untuk setiap NFA M
N

, terdapat sebuah DFA M


D

s.s. L(M
N

) = L(M
D

).
• Dari sebuah mesin Non-Deterministic Finite Automata dapat dibuat mesin
Deterministic Finite Automata-nya yang ekuivalen (bersesuaian).
• Langkah:
1. Membuat tabel transisi dari NFA. 2. Membuat state awal. 3. Dari state awal,
telusuri state berikutnya setiap pembacaan input berbagai
simbol pada ∑. 4. Untuk setiap state yang terbentuk, telusuri state berikutnya
setiap
pembacaan input berbagai simbol pada ∑. Jika state berikutnya merupakan
himpunan state, maka pilih state gabungan yang telah ada. 5. Ulangi langkah 4
hingga state habis. 6. Tentukan state final (seluruh state final yang ada di NFA dan
state baru yang
mengandung state final pad NFA).
Rezania Agramanisti Azdy
Ekuivalensi NFA dengan DFA (2)
• Buatlah NFA dari DFA berikut:
Langkah 1 Membuat tabel transisi dari NFA.
{q
0

δ01
q
0

{q
0

,q
1

}q
1

q
1

∅ {q
0

,q
1

}
Langkah 2 Membuat state awal.
}
Rezania Agramanisti Azdy
Ekuivalensi NFA dengan DFA (3)
Langkah 3 Dari state awal, telusuri state berikutnya setiap pembacaan input
berbagai simbol pada ∑.
{q
0

Langkah 4 Untuk setiap state yang terbentuk, telusuri state berikutnya setiap
pembacaan input berbagai simbol pada ∑.
0
{q
0

,q
1 } {q
1

0
{q
0

,q
1}}
{q
0

}
1
}
{q
11

1
0

}
Rezania Agramanisti Azdy
Ekuivalensi NFA dengan DFA (4)
Langkah 5 Ulangi langkah 4 hingga state habis.
Langkah 5 Ulangi langkah 4 hingga state habis.
0, 1
0, 1
0
{q
0

,q
1 } {q
0

{q
0 0, 1 {q
1

0
{q
0

,q
1}}
}
{q
1

1
1
1
0

1
0

}
}
Rezania Agramanisti Azdy
Ekuivalensi NFA dengan DFA (5)
• Latihan 4a:
Buatlah DFA yang ekuivalen dengan NFA berikut. Q = {p, q, r, s} Σ = {0, 1} S = p
F = {s} Fungsi transisinya dinyatakan dalam tabel transisi berikut.
Rezania Agramanisti Azdy
Ekuivalensi NFA dengan DFA (5)
• Latihan 4b:
Buatlah DFA yang ekuivalen dengan NFA berikut.
Rezania Agramanisti Azdy
Ekuivalensi NFA dengan DFA (5)
• Latihan 4c:
Buatlah DFA yang ekuivalen dengan NFA berikut. Q = {q
0

,q
1

,q
2

} Σ = {0, 1} S = q
0F={q
1

}
Fungsi transisinya dinyatakan dalam tabel transisi berikut.
Rezania Agramanisti Azdy
NFA dengan ε-move (1)
Kegunaan:
• Berguna untuk komposisi dan penggabungan NFA (dalam
hubungannya dengan bahasa reguler)
• Dapat dikonversikan ke DFA
• Alat deskripsi yang berguna
Rezania Agramanisti Azdy
NFA dengan ε-move (2)
• ε-move adalah sebuah transisi antara 2 state tanpa adanya
input.
• ε-closure adalah himpunan state yang dapat dicapai dari suatu state
tanpa membaca input. − ε-closure(q
0

) = {q
0

,q
1

,q
2

} − ε-closure(q
1

) = {q
1

,q
2

} − ε-closure(q
2

) = {q
2

} − ε-closure(q
3

) = {q
3

} − ε-closure(q
4

) = {q
4
,q
1

,q
2

}
tanpa • Dari q
0

membaca input dapat berpindah ke q


1

• Dari q
1

tanpa membaca input dapat berpindah ke q


2

• Dari q
4

tanpa membaca input dapat berpindah ke q


1
Rezania Agramanisti Azdy
Ekuivalensi NFA dengan ε-move ke
NFA tanpa ε-move (1)
• Dari sebuah NFA dengan ε-move dapat diperoleh sebuah NFA
tanpa ε-move dengan langkah:
1. Membuat tabel transisi dari NFA ε-move. 2. Menentukan ε-
closure untuk setiap state. 3. Mencari fungsi transisi (δ') dari
hasil pengubahan NFA ε-move
ke NFA tanpa ε-move. 4. Membuat tabel transisi dari fungsi
transisi yang telah dibuat
pada langkah 3. 5. Menentukan himpunan state akhir untuk
FA tanpa ε-move
(state a dimana ε-closure lainnya tidak memuat state a).
Rezania Agramanisti Azdy
Ekuivalensi NFA dengan ε-move ke
NFA tanpa ε-move (2)
Ubahlah NFA dengan ε-move dibawah ini ke dalam bentuk
NFA tanpa ε-move!
Langkah 1 Membuat tabel transisi dari NFA ε- move.
Rezania Agramanisti Azdy
Ekuivalensi NFA dengan ε-move ke
NFA tanpa ε-move (3)
Langkah 2 Menentukan ε-closure untuk setiap state.
ε-closure(q
0

) = {q
0,

q
1

} ε-closure(q
1

) = {q
1

} ε-closure(q
2

) = {q
2

} ε-closure(q
3

) = {q
3

}
Rezania Agramanisti Azdy
Ekuivalensi NFA dengan ε-move ke
NFA tanpa ε-move (4)
Langkah 3 Mencari fungsi transisi (δ') dari hasil pengubahan NFA ε-move ke NFA
tanpa ε-move.
δ'(q
0

,a) = ε-closure(δ(ε-closure(q
0

),a)) = ε-closure(δ(q
1

,a)) = ε-closure(q
2

) = {q
2

}
δ'(q
0

,b) = ε-closure(δ(ε-closure(q
0

),b)) = ε-closure(δ(q
1

,b)) = ε-closure(q
3

) = {q
3

}
,a) δ'(q
1

= ε-closure(δ(ε-closure(q
1
),a)) = ε-closure(δ(q
1

,a)) = ε-closure(q
2

) = {q
2

}
δ'(q
1

,b) = ε-closure(δ(ε-closure(q
1

),b)) = ε-closure(δ(q
1

,b)) = ε-closure(q
3

) = {q
3

}
Rezania Agramanisti Azdy
Ekuivalensi NFA dengan ε-move ke
NFA tanpa ε-move (5)
Langkah 3 (lanjutan) Mencari fungsi transisi (δ') dari hasil pengubahan NFA ε-
move ke NFA tanpa ε-move.
δ'(q
2

,a) = ε-closure(δ(ε-closure(q
2

),a)) = ε-closure(δ(q
2

,a)) = ε-closure(Ø) = Ø
δ'(q
2

,b) = ε-closure(δ(ε-closure(q
2

),b)) = ε-closure(δ(q
2

,b)) = ε-closure(Ø) = Ø
,a) δ'(q
3

= ε-closure(δ(ε-closure(q
3

),a)) = ε-closure(δ(q
3

,a)) = Ø = Ø
δ'(q
3

,b) = ε-closure(δ(ε-closure(q
3
),b)) = ε-closure(δ(q
3

,b)) = Ø = Ø
Rezania Agramanisti Azdy
Ekuivalensi NFA dengan ε-move ke
NFA tanpa ε-move (6)
Langkah 4 Membuat tabel transisi dari fungsi transisi yang telah dibuat pada
langkah 3.
δabq
0
Langkah 5 Menentukan himpunan state final dimana ε-closure untuk state lain
tidak ada yang mengandung state final.
q
2

q
3
Untuk state final yang sebelumnya q
3

, tidak ada state lain yang ε-closure- q


1

q
2

q
3
nya memuat q
3

, maka himpunan state akhir yang baru tetap q


3
q

2
.
q
3

ØØØØ
Sehingga F = {q
3

}
Rezania Agramanisti Azdy
Ekuivalensi NFA dengan ε-move ke
NFA tanpa ε-move (7)
NFA tanpa ε-move:
Rezania Agramanisti Azdy
Ekuivalensi NFA dengan ε-move ke
NFA tanpa ε-move (8)
• Latihan 5:
Ubahlah NFA dengan ε-move dibawah ini ke dalam bentuk
NFA tanpa ε-move!
Rezania Agramanisti Azdy
Penggabungan/Konkatenasi FSA (1)
Dua buah otomata M
1

dan M
2

dapat dilakukan
penggabungan dan menghasilkan otomata baru M
3

dengan beberapa metode.


Metode 1: 1. Menambahkan state awal untuk M
3

, hubungkan dengan
state awal M
1

dan state awal M


2

menggunakan transisi ε. 2.
Menambahkan state akhir untuk M
3

, hubungkan dengan
state awal M
1

dan state awal M


2

menggunakan transisi ε.
Rezania Agramanisti Azdy
Penggabungan/Konkatenasi FSA (2)
Diketahui:
M
1

M
3

M
2
Rezania Agramanisti Azdy
Penggabungan/Konkatenasi FSA (3)
Metode 2: 1. Mengubah state awal M
1

menjadi state awal M


3

.
2. Mengubah state-state akhir M
2

menjadi state awal M


3

.
3. Hubungkan state-state akhir M
1

dengan state awal M


2
menggunakan transisi ε.
Rezania Agramanisti Azdy
Penggabungan/Konkatenasi FSA (4)
• Latihan 5:
Gabungkan dua buah FSA dibawah ini:
Rezania Agramanisti Azdy

Anda mungkin juga menyukai