Pertemuan 4 Finite Automata

Download Report

Transcript Pertemuan 4 Finite Automata

Pertemuan 4
Finite Automata
Teori Bahasa dan Otomata (KOM208)
SKS: 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, Bagaimana DFA memproses string, Notasinotasi untuk DFA, Fungsi transisi yang diperluas, Bahasa dari
DFA
NFA: Definisi NFA, Bagaimana 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 -
Nondeterministic Finite Automata


Perbedaan antara DFA dan NFA adalah dalam
bentuk .
Untuk NFA,  adalah fungsi yang memiliki argumen
sebuah state dan sebuah simbol (seperti dalam
DFA), tetapi mengembalikan himpunan dari nol, satu
atau lebih state.
Contoh 6

Gambar berikut adalah sebuah NFA yang
menerima string yang terdiri dari 0 dan 1 dan
diakhiri oleh 01.
0,1
start
q0
0
q1
1
q2
Definisi NFA
1.
2.
3.
4.
5.
Sebuah NFA dinyatakan sebagai sebuah tuple 5
elemen, yaitu A = (Q, , , q0, F), dimana :
Q : Sebuah himpunan berhingga dari state-state
 : Sebuah himpunan berhingga dari simbol-simbol
input
q0 : Sebuah start state q0  Q
F : Sebuah himpunan final state, F  Q
 : Fungsi transisi yang memiliki argumen sebuah
state dalam Q dan sebuah simbol input dalam 
dan mengembalikan sebuah himpunan bagian dari
Q.

NFA dalam Contoh 6 dapat dinyatakan
A = ({q0, q1, q2}, {0, 1}, , q0, {q2})
dengan fungsi transisi :
0
1
 q0
{q0, q1}
{q0}
q1

{q1}
* q2


Jika tidak terdapat transisi
dari state tertentu untuk
simbol input yang
diberikan, fungsi transisi
mengembalikan himpunan
kosong, dinotasikan 
Fungsi Transisi yang Diperluas




Definisi fungsi transisi yang diperluas (  ) untuk sebuah fungsi
transisi ()
dari NFA:

Basis:  (q,) = {q}. Yaitu, tanpa membaca simbol input, NFA
tidak berubah. NFA berada dalam state pada saat mulai
membaca input.
Induksi: Anggap bahwa w berbentuk w = xa, dimana a adalah
simbol terakhir dari w dan x adalah simbol-simbol lain dalam w
selain simbol terakhir. Anggap bahwa
 (q,x) = {p1, p2, ..., pk}, dan misalkan
k


Maka  (q,w) = {r1, r2, ..., rm}
  p , a   r , r ,...,r 
i
i 1
1
2
m
Contoh 7


Fungsi  digunakan
untuk menjelaskan
pemrosesan input
00101 oleh NFA
dalam Contoh 6.
Langkah-langkahnya
adalah sebagai
berikut :
Contoh 7 (lanjutan)

String w dikatakan diterima oleh NFA A = (Q,
, , q0, F), apabila

 (q0,w)  F  

Sehingga

 (q0,00101) = {q0, q2}
Karena F = {q2} sehingga 00101 diterima
oleh NFA dalam Contoh 6.

Bahasa dari NFA

Jika A = (Q, , , q0, F) adalah sebuah NFA,
maka


 

LA   w  q 0 , w   F   




Artinya bahwa, L(A) adalah himpunan dari string string dalam * sedemikian sehingga
 (q0,w) mengandung sedikitnya satu accepting state.

Ekuivalensi dari DFA dan NFA (1)



Dalam banyak kasus lebih mudah membuat NFA
yang menerima bahasa tertentu daripada DFA yang
menerima bahasa yang sama.
Akan tetapi semua bahasa yang dapat dijelaskan
oleh NFA juga dapat dijelaskan oleh DFA.
Bukti bahwa DFA dapat mengerjakan apa yang
dikerjakan oleh NFA melibatkan “ konstruksi subset”,
yaitu mengkonstruksi semua subset dari state-state
NFA.
Ekuivalensi dari DFA dan NFA (2)



Konstruksi subset bermula dari sebuah NFA,
N = (QN, , N, q0, FN).
Tujuannya adalah ingin ditentukan deskripsi
dari DFA D = (QD, , D, {q0}, FD) sedemikian
sehingga L(D) = L(N).
Perhatikan bahwa alphabet input untuk N dan
D sama yaitu , dan start state dari D adalah
himpunan yang hanya mengandung start
state dari N.
Ekuivalensi dari DFA dan NFA (3)

Komponen/elemen lain dikonstruksi sebagai berikut:



QD adalah himpunan dari himpunan bagian (subset) dari
QN, yaitu QD adalah himpunan kuasa (power set) dari QN.
Jika QN memiliki n state, maka QD mempunyai 2n state.
Seringkali tidak semua dari state-state ini dapat diakses
dari start state dari QD.
State-state yang tidak dapat diakses dapat dibuang,
sehingga banyaknya state-state dari D dapat lebih sedikit
dari 2n.
Ekuivalensi dari DFA dan NFA (4)


FD adalah himpunan dari subset-subset S dari QN
sedemikian sehingga S  FN  , bahwa FD adalah
semua himpunan-himpunan dari state-state N yang
mengandung sedikitnya accepting state dari N.
Untuk setiap S  QN dan untuk setiap simbol input
a,
 D S , a     N p , a 
P dalam S

bahwa untuk menghitung D(S, a), kita lihat semua
state-state p dalam S, selanjutnya ditentukan state
yang dituju state N dari p pada input a, dan ambil
union dari semua state-state tersebut.
Contoh 8

Misal N adalah NFA dalam Contoh 6 yang menerima
semua string yang diakhiri oleh 01.
N = ({q0, q1, q2}, {0, 1}, N, q0, {q2})
konstruksi subset dilakukan sebagai berikut:
Karena QN = {q0 , q1 , q2}, maka banyaknya state
dalam QD adalah 23 = 8, yaitu semua subset-subset
dari ketiga state tersebut.
Contoh 8 (lanjutan)

Tabel transisi dari
kedelapan state:
D
0
1



 {q0}
{q0, q1}
{q0}
{q1}

{q1}
*{q2}


{q0, q1}
{q0, q1}
{q0, q2}
*{q0, q2}
{q0, q1}
{q0}
*{q1, q2}

{q2}
*{q0, q1, q2}
{q0, q1}
{q0, q2}
Contoh 8 (lanjutan)

Fungsi transisi N
• Untuk menghitung
baris-baris dalam tabel
transisi D, perhatikan
bahwa untuk setiap S
 QN dan setiap a,
N
0
1
 {q0}
{q0, q1}
{q0}
{q1}

{q2}
*{q2}


 D S, a  
  N p, a 
p dalams
Contoh 8 (lanjutan)

sehingga
Contoh 8 (lanjutan)



Cara yang sama dapat digunakan untuk
menentukan elemen lain dalam tabel transisi D.
Start state dari N adalah q0 sehingga start state dari
D adalah {q0}.
Himpunan final state dari N adalah FN = {q2}
sehingga himpunan final state, FD, dari A adalah
himpunan dari subset-subset dari QN = {q0, q1, q2}
sedemikian sehingga
S  FN  
dengan demikian
FD = ({q2}, {q0, q2}, {q1, q2}, {q0, q1, q2}).
Contoh 8 (lanjutan)


Perhatikan bahwa elemenelemen dalam tabel N adalah
himpunan, bahwa state-state dari
DFA yang telah dikonstruksi
adalah himpunan.
Ganti nama-nama state ini,
sebagai contoh A untuk , B
untuk {q0}, H untuk {q0, q1, q2} dan
seterusnya.
D
A
B
0
A
E
1
A
B
C
*D
E
*F
*G
*H
A
A
E
E
A
E
D
A
F
B
D
F
Lazy evaluation (1)


Untuk menghindari langkah untuk membuat elemenelemen dari tabel transisi yang memerlukan waktu
eksponensial untuk setiap subset dari state-state.
Caranya:


Basis: singleton set yang hanya berisi start state dari N
dapat diakses.
Induksi: anggaplah kita telah menentukan bahwa
himpunan S dari state-state dapat diakses.
Kemudian untuk setiap simbol input a, hitung himpunan
dari state-state D(S, a), himpunan-himpunan dari state ini
juga dapat diakses.
Lazy evaluation (2)

Dengan menggunakan lazy evaluation, diperoleh
DFA yang ekuivalen dengan NFA pada Contoh 6:
0
1
Start
q 0 
0
1
q 0 , q 1 
1
0
q 0 , q 2 
Teorema
Teorema 1:
 Jika D = (QD, , D, {q0}, FD) adalah DFA yang
dibuat dari NFA N = (QN, , N, q0, FN) dengan
konstruksi subset, maka L(D) = L(N).
Teorema 2:
 Sebuah bahasa L diterima oleh suatu DFA jika dan
hanya jika L diterima oleh suatu NFA.
Bukti : dapat dilihat pada buku rujukan.
Daftar Pustaka

John E. Hopcroft, Rajeev Motwani, Jeffrey D.
Ullman. 2001. Introduction to Automata
Theory, Languange, and Computation. Edisi
ke-2. Addison-Wesley.