Você está na página 1de 10

Bab 7

1 DETERMINISTIC FINITE
AUTAMATA

7.1 Pentingnya Bahasa Regular dan Finite


Automata
Kita telah mempelajari bahasa regular dan ekspresi regular. Kelas
bahasa regular dapat dirincikan dengan himpunan regular, finite
automata, regular grammar, dan ekspresi regular. Terdapat dua macam
finite automata yaitu nondeterministic finite automata dan deterministic
automata, perbedaan ini tidak mempengaruhi keampuhan komputasi
finite automata.
Kita dapat menarik manfaat dari studi kelas bahas regular ini karena
seperti dan telah dan akan kiat pelajari bahwa tugas-tugas lexical
analisis dikompilator dapat direduksi menjadi sekedar proses
pencarian ditabel ( Array atau matrik ) yang sangat sderhana. Gagasan
ini juga akan dibawa kebentukan-bentukan bahasa berikutnya yaitun
sintaks bahasa pemograman. Saat merancang bahasa pemograman
beserta kompilatornya, kita lebih menyukai untuk mendasarkan
rancangan kita pada grammar yang sesederhna mungkin yang
memiliki algoritma passing yang telah terbukti paling efisien.
Pada arah leksik, persoalan benar-benar menjadi sederhana.
Selama kita dapat menyatakan himpunan regularnya, kita dapat
memperoleh ekspresi regularnya.
64 TEORI BAHASA DAN OTOMATA

1.Selanjutnya kita dapat menyatakan NDFA (non deterministic


finite automata ) nya.
2.Setelah itu NDFA dapat dikonversi menjadi DFA
(deterministic fiite automata )
3.Selanjutnya dapat dikonversi menjadi DFA minimum yang
paling efisien.
4.Implementasi atau pemograman terhadap DFA minimum ini
hanyalah sekedar persoalan pencarian tabel/array/matriks.

Kita dapat memperoleh lexical analizer paling efisien.


Dengan demikian, studi mengenai bahas regular sangan penting
untuk memperoleh implementasi yang efisien pada banyak persoalan
yang dapat dikonversi menjadi persoalan bahasa regular atau finite
otoma. Hampir seluruh persoalan sistem diskrit dapat dibantu
penyelesaianya menggunakan abstraksi finite otoma serta bila bisa
dijadikan bahasa regular yang telah diketahui penyelesaian yang
sangat efisien. Sementara itu banyak persoalan yang dapat dikonversi
menjadi persoalan bahasa regular ataupun finite otoma. Pemahaman
terhadap studi bahasa regular, serta kemahiran dalam penerapannya
akn banyak membantu dalam penyelasaian persoalan-persoalan
komputasi.

7.2 Contoh-contoh Finite-State Automata Ekivalen


Ketiga finite state automata berikut adalah ekivalen, ketiganya
menerima himpunan string sama {ba, bak, baru, baris }
DETERMINISTIC FINITE AUTAMATA 65

Q b Q a Q2 k Q3 i Q4
0 1

start i s
Q Q Q7
5 6

b a Q8
q Q Q2
o 1
b

a k
Q Q Q5
b 3 4

a k i
b Q Q Q Q9
6 7 8

u
a r
i
b Q
10
Q
11
Q
12
Q1
3

a r i
Q Q Q Q
11 15 16 17

Q1
8
66 TEORI BAHASA DAN OTOMATA

Q Q Q Q Q
0
b 1
a 2
k 3
i 4

Q i Q s Q Q9
5 6 7

Q
8

FSD 1 adalah deterministik, dimana untuk sembarang state dan simbol


alphabet hanya terdapat paling banyak satu transisi yang
dimungkinkan.
FSD 2 adalah tidak deterministik, pada transisi dari state awal,
terdapat 5 busur keluar yang semuanya dilabeli denagn b.
Otomata ketiga FSD 3 mempunyai busur , dengan demikian juga
bukan deterministik.FSD 2 adalah paling mudah dibaca, namun FSD 1
adalah paling kompak dan mempunyai simpul minimal, paling kecil.
Pada nondeterministic finite automa A, selalu dimungkinkan
membangun deterministic finite automa ekivalen yang state berikutnya
sepenuhnya ditentukan state saat itu dan alphabet simbol serta tidak
memiliki pergerakan kadang ini menghasilkan otomata denag
jumlah state lebih banyak dibandingkan otomata nondeterministik.
Otomata yang dihasilkan kemudian dapat diminimalkan sehungga
dijamin tidak ada deterministic automata yang menghasilakn bahasa
sama yang memiliki jumlah state lebih kecil. Selalu dimungkinkan
minimasi finite automata tanpa mempengaruhi bahasa yang dihasilkan.
DETERMINISTIC FINITE AUTAMATA 67

7.3 Definisi DFA


Berikut adalah definisi normal dari DFA.
Definisi
Deterministic finite automa
Deterministic finite automa adalah 5 tupel M=(Q, VT, , q0, F), di
mana :
1.Q adalah himpunan state yang berhingga.
2.VN adalah himpunan berhingga simbol yang diijinkan
3. adalah pemetan dari Q X VT ke P(Q) yang menyatakan
prilaku kendali keadaan berhingga, sering disebut fungsi
transisi state.
4.q0 dalam Q adalah keadaan mula dari kendali keadan
berhingga, dan
5.F Q adalah himpunan keadaan akhir.

Deterministic finite automa hanya mempunyai paling banyak satu


transisi pada masing-masing state pada sembarang masukan. Jika kita
menggunakan tabel trtansisi untuk merepresentasikan fungsi transisi
deterministic finite automata, maka masing-masing isian ditabel transisi
adalah state tunggal. Konsekuensinya, pada deterministic finite automata
lebih mudah menentukan apakah suatu string masukan diterima
karena hanya tedapat paling banyak satu jalur dari state awal.

Konvensi
Saat berurusan dengan deterministic finite automata M
ditulis (q,a)=p bukan (q,a)={p} ketika automata
dengan tansisi deterministik.jika (q,a)=, dinyatakan
dengan (q,a)=tak terdefinisikan.
68 TEORI BAHASA DAN OTOMATA

7.4 Algoritma DFA


Berikut adalah mekanisme kerja DFA bila dinyatakan secara
algoritma. Pada dasarnya, algoritma menyatakan bahwa saat
menerima suatu karakter yang sedang dibaca, maka DFA akan segera
tahu apa yang perlu dilakukan karena memang paling banyak hanya
satu transisi yang dimungkinkan. Bila terdapat transisi yang dapa
dilakukan, maka DFA segera melakuka transisi itu.sementara bila
tidak ada transisi yang mungkin dilakukan berati string tidak
termasuk string yang dikenali DF. Sementara itu bila string yang
dibaca telah habis, maka bila DFA memasuki state akhir, berati string
adalah termasuk string yang dikenali DFA. Sebaliknya, bila DFA
berate di state bukan state akhir berati string tidak termasuk string
yang dikenali DFA.

ALGORITMA DFA
Masukan :
String masukan x yang diakhiri dengan karakter akhir string (eos).
DFA D dimulai dari state mula S0 dan himpunan state F yang
dapat diterima
Keluaran :
Jawab YA jika D merima x
Jawab TIDAK jika D tidak menerima x
Algoritma :
Funsi-fungsi :
Funsi move(s,c) memberi state dimana terdapat transisi
dari state s pada karakter masukan c.
Fungsi nextchart() mengirim karakter berikutnya dari
string masukan x
DETERMINISTIC FINITE AUTAMATA 69

Langkah-langkah algoritma :
s s0
c nextchart()
while c eos
s move(s,c)
c nextchart()
if s in F
the return YA
else return TIDAK

Bila M=({p,q,r},{0,1},,p,{r}) adalah finite automata, dimana


dispesifikasikan sebagai berikut.

Masukan
0 1
p {q} {p}
State q {r} {p}
r {r} {r}

Matriks tersebut menyatakan sebagai berikut :


(p,0) = {q}
(p,1) = {p}
(q,0) = {r}
70 TEORI BAHASA DAN OTOMATA

(q,1) = {p}
(r,0) = {r}
(r,1) = {r}

Finite aotomata M akan menerima semua string dari 0 dan 1 yang


mempunyai dua 0 secara berurutan.

Karena deterministik maka dapat ditulis sebagai berikut :

Masukan
0 1
p q p
State q r p
r r r

Sehingga dapat ditulis sebagai berikut :


(p,0) = q
(p,1) = p
(q,0) = r
(q,1) = p
(r,0) = r
(r,1) = r
DETERMINISTIC FINITE AUTAMATA 71

Contoh string masukan yang diterima adalah 01001


State mula-mula adalah adalah kompponen keempat dari
tupelo, yaitu p, maka konfigurasi mula adalah sebagai berikut :

(p,01001) (q,1001) --dibaca 0,FA transisi ke state q


(p,001) --dibaca 1,FA transisi ke state p
(q,01) --dbaca 0,FA transisi ke state q
(r,1) --dibaca 0,FA transisi ke state r
(r,) --dibaca 1,FA tetap state r
String masukan habis dan FA dalam state r yang termasuk state akhir.
Dengan demikian string 01001 termasuk string yang dapat dikenali
finite automata.

7.5 Pembuatan FSD


Bila kita kesulitan untuk mengikuti matrik, maka kita dapat
menggambarkan FSD dari finite automata yang dimaksud sebagai
berikut:

0
s
0,1

0 1
r

start
p

0,1
72 TEORI BAHASA DAN OTOMATA

Memanfaatkan FSD kit adapt melakuakan penelusuran transisi yang


terjadi dimesin finite automata saat membaca string-string masukan.
Dalam praktik pemograman ,FSD tersebut diubah menjadi matrik
yang menyatakan state x simbol masukan. Dengan cara demikian,
pemograman finite automata tidak ubahnya dengan menjalankan
serangkaian pencarian elemen dimatrik. Bila tidak ada elemen yang
dimaksud dimatrik berarti menyatakan bahwa string tidak dapat
dikenali oleh finite automata .begitu juga saat string masukan habis,
maka bila berada dielemen yang termasuk state akkhir berarti string
dikenali oleh finite automata.

Você também pode gostar