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 SFE  }.
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.