Pertemuan 5 Finite Automata (lanjutan)
Download
Report
Transcript Pertemuan 5 Finite Automata (lanjutan)
Session 5
Finite Automata
Theory of Languages and Automata
(KOM208)
Credits: 3(3-0)
TIK dan Waktu Penyajian
• Tinjauan Instruksional Khusus:
– Mahasiswa akan dapat menjelaskan cara kerja
•Deterministic Finite Automata (DFA),
•Non-Deterministic Finite Automata (NDFA),
•Non deterministic Finite Automata (NFA) dengan
transisi ε.
• Waktu penyajian: 3 x 150 menit
Subtopik
• DFA: Definisi DFA, Bagimana DFA memproses string,
Notasi-notasi untuk DFA, Fungsi transisi yang diperluas,
Bahasa dari DFA
• NFA: Definisi NFA, Bagimana NFA memproses string, Fungsi
transisi yang diperluas, Bahasa dari NFA, Ekuivalensi DFA
dan NFA
• ε-NFA: Penggunaan transisi-ε, Notasi formal untuk ε-NFA,
Epsilon-Closure, Fungsi transisi yang diperluas dan bahasa
untuk ε-NFA, Mengeliminasi Transisi -
Finite Automata dengan Transisi-
• FA dengan transisi- adalah FA yang
memungkinkan sebuah transisi pada (string
kosong).
• Dengan kata lain, sebuah NFA dimungkinkan
membuat transisi tanpa menerima sebuah simbol
input.
• NFA dengan transisi- dinotasikan -NFA
Contoh 9
• Sebuah -NFA menerima bilangan desimal
yang terdiri dari:
1.
2.
3.
4.
Tanda atau (optional)
Sebuah string dari digit-digit
Sebuah titik desimal
Sebuah string yang lain dari digit-digit. String
dari digit-digit ini atau string (2) dapat kosong,
tetapi sedikitnya satu dari 2 string dari digit
harus tak kosong.
Contoh 9 (lanjutan)
• Diagram transisi -NFA yang dimaksud:
0,1,...,9
0,1,...,9
, ,
Start
q0
0,1,...,9
q1
.
q2
0,1,...,9
q3
.
q4
q5
Notasi Formal untuk sebuah -NFA
• Secara formal, kita menyatakan -NFA A dengan
A = (Q, , , q0, F)
dimana semua elemen merepresentasikan hal
yang sama dengan NFA, kecuali adalah fungsi
transisi dengan argumen sebagai berikut:
1. Sebuah state dalam Q, dan
2. Sebuah elemen dari {}, yaitu simbol input atau .
3. Simbol untuk string kosong, , tak dapat manjadi
anggota dari , sehingga tidak ada hasil-hasil yang
membingungkan.
Contoh 10
• -NFA dalam Contoh 9 direpresentasikan secara formal sebagai
berikut :
E = ({q0, q1, q2, q3, q4, q5}, {., +, , 0, 1, ...,9}, , q0 , {q5})
dimana didefinisikan dalam tabel transisi berikut:
+,
.
0,1,2,...,9
q0
{q1}
{q1}
q1
{q2}
{q1, q4}
q2
{q3}
q3
{q5}
{q3}
q4
{q3}
q5
Epsilon-Closure (ECLOSE) (1)
• ECLOSE digunakan dalam menentukan fungsi transisi yang
diperluas untuk -NFA.
• ECLOSE dari state q ditentukan dengan mengikuti semua
transisi yang keluar dari q yang diberi label .
• Ketika mendapat state lain, dengan mengikuti kita
mengikuti transisi keluar dari state-state tersebut, dan
seterusnya, akhirnya menemukan setiap state yang dapat
dicapai dari q sepanjang path yang memiliki arc-arc yang
semuanya diberi label .
Epsilon-Closure (ECLOSE) (2)
• Definisi formal -closure ECLOSE(q)
– Basis: state q adalah dalam ECLOSE(q)
– Induksi: Jika state p adalah dalam ECLOSE(q), dan
terdapat sebuah transisi dari state p ke state r yang
diberi label , maka r adalah dalam ECLOSE(q).
• Dapat dinyatakan bahwa jika adalah fungsi
transisi dari -NFA, dan p adalah dalam ECLOSE(q),
maka ECLOSE(q) juga mengandung semua state
dalam (p, ).
Contoh 11
• Untuk -NFA pada Contoh 9, setiap state adalah closure-nya sendiri, kecuali
– ECLOSE(q0) = {q0, q1}
– ECLOSE(q3) = {q3, q5}
• Perhatikan bahwa hanya dua transisi , salah satu
yang menambahkan q1 ke ECLOSE(q0) dan yang
lain menambahkan q5 ke ECLOSE(q3).
Contoh lain
• Untuk -NFA sebagai berikut ECLOSE(1) =
{1,2,3,4,6}
2
3
1
6
b
4
a
5
7
Fungsi Transisi yang Diperluas dan
Bahasa untuk -NFA
• Anggaplah E = (Q, , , q0, F) adalah -NFA. Definisi
untuk fungsi transisi yang diperluas ( ) pada -NFA
ˆ
adalah
• Basis: q , ECLOSE q bahwa, jika label dari path
adalah , maka kita hanya dapat mengikuti arc
perluasan yang diberi label dari state q.
• Induksi: Anggap bahwa w adalah bentuk xa dimana a
adalah simbol terakhir dari w.
Perhatikan bahwa a adalah anggota dari ; a bukanlah
yang tidak dalam .
Menghitung q , w
1. Misal {p1, p2, ..., pk} adalah q , x.Bahwa
pi untuk semua i adalah state-state dan
hanya state-state yang dapat dicapai dari q
mengikuti path yang diberi label x.
Path ini dapat berakhir dengan 1 atau
lebih transisi yang diberi label dan juga
dapat memiliki transisi-transisi yang lain.
Menghitung q , w
k
p i , a
2. Misalkan i
adalah himpunan {r1, r2, ...,
1
rm}. Artinya bahwa ikuti semua transisi yang
diberi label a dari state-state yang dapat dicapai
dari q sepanjang path yang diberi label x.
rj adalah state-state yang dapat dicapai dari q
sepanjang path yang diberi label w.
State-state tambahan yang dapat dicapai
ditemukan dari rj dengan mengikuti arc-arc yang
diberi label pada langkah (3) berikut.
Menghitung q , w
3.
q , w
m
ECLOSE r j Langkah closure tambahan ini
j 1
meliputi semua path dari q yang diberi label w,
dengan mempertimbangkan kemungkinan
bahwa terdapat arc-arc tambahan berlabel
yang dapat kita ikuti setelah membuat sebuah
transisi pada simbol final a.
Contoh 12
• Karena
q 0 ,5 . 6 q 3 , q 5
Maka 5.6 diterima oleh -NFA pada Contoh
9.
Bahasa dari sebuah -NFA
• Bahasa dari sebuah -NFA E = (Q, , , q0, F),
adalah
L E w q 0 , w F
Mengeliminasi Transisi - (1)
• Misalkan E = (QE, , E, q0, FE). Maka DFA yang ekuivalen
D = (QD, , D, q0, FD) didefinisikan sebagai berikut:
1. QD adalah himpunan dari subset-subset dari QE.
– Akan ditentukan bahwa semua state yang dapat diakses dari D
adalah subset-subset -closed dari QE, dengan kata lain,
himpunan-himpunan S QE sedemikian sehingga S = ECLOSE(S).
– Himpunan-himpunan -closed dari state-state S adalah himpunanhimpunan sedemikian sehingga suatu transisi- yang keluar dari
satu state dalam S menuju ke sebuah state yang juga dalam S.
– adalah himpunan -closed.
Mengeliminasi Transisi - (2)
2. qD = ECLOSE(q0), yaitu kita mendapatkan start
state dari D dengan menutup himpunan yang
mengandung hanya start state dari E.
Hal ini berbeda dengan konstruksi start state
dalam NFA.
3. FD adalah himpunan-himpunan dari state yang
mengandung sedikitnya satu accepting state dari
E. Dengan kata lain, FD = {S| S adalah dalam QD
dan SFE }.
Mengeliminasi Transisi - (3)
4. D(S, a) dihitung sebagai berikut, untuk
semua a dan himpunan-himpunan
S QD
a. Misal S = {p1, p2, ..., pk}
b. Hitung
p , a Misalkan himpunan
tersebut adalah {r1, r2, ..., rm}.
c. Maka
m
D S , a ECLOSE r j
k
E
i
i 1
j 1
Contoh 13
• Diperoleh DFA yang mengeliminasi transisi dari
NFA pada Contoh 9:
0,1,...,9
0,1,...,9
q 0 , q 1
+,-
.
Start
q 2 , q 3 , q 5
q 1 , q 4
{q 1 }
0,1,...,9
.
0,1,...,9
{q 2 }
0,1,...,9
q 3 , q 5
0,1,...,9
Daftar Pustaka
• John E. Hopcroft, Rajeev Motwani, Jeffrey D.
Ullman. 2001. Introduction to Automata
Theory, Languange, and Computation. Edisi
ke-2. Addison-Wesley.