Finite State Automata
Sebuah Finite State Automata adalah:
Model matematika yang dapat menerima input danmengeluarkan output
Kumpulan terbatas (finite set) dari state(kondisi/keadaan). Satu diantaranya menjadi initialstate (kondisi awal) atau start state, dan beberapa(bisa berarti tidak ada) dari antaranya dinyatakansebagai final state
Himpunan alphabet berisi beberapa huruf, dimanastring-string bentukan dari alphabet akan dibaca
huruf demi huruf
Finite Automata Lanjt..
Kumpulan terbatas dari transition yangmenjelaskan untuk tiap state dan tiap huruf yangdibaca ke state mana perjalanan dilanjutkanberdasarkan input dan fungsi transisi
Tidak memiliki tempat penyimpanan ataumemory, sehingga hanya bisa mengingat stateterkini
Mekanisme kerja dapat diaplikasikan pada:elevator, text editor, analisa leksikal, pen-cek-anparity
Contoh 1
Alphabet yang digunakan hanya 2 huruf, a dan b
Ada 3 buah state, yaitu x, y dan z
Aturan trasition yang dipakai adalah:
1. Dari state x dan input a menuju state y
2. Dari state x dan input b menuju state z
3. Dari state y dan input a menuju state x
4. Dari state y dan input b menuju state z
5. Dari state z dan input apa saja tetap di state z
Ditentukan juga x sebagai start state dan zsebagai final state
Contoh 1 Lanjt..
Perhatikan apa yang akan terjadi bila string aaadiumpankan ke FA tersebut
Penelusuran akan dimulai dari start state:
Huruf pertama adalah a, sesuai aturan-1 akan menujustate y
Huruf kedua adalah a, sesuai aturan-3 akan menuju statex
Huruf ketiga adalah a, sesuai aturan-1 akan menuju statey
String sudah diumpankan semua, tapi tidak mencapai finalstate
Jadi, string aaa bukanlah termasuk di dalam bahasa yangdidefinisikan oleh FA
Contoh 1 Lanjt..
Contoh lain, bila string abba diumpankan ke FAtersebut
Hasilnya, perjalanan mencapai pada state z (finalstate)
Jadi, string abba termasuk word dalam bahasa yangdidefinisikan oleh FA tersebut
Contoh 1 Lanjt - Transition Table
Tidak sulit menerka word apa saja yang diterima oleh FAtersebut, yaitu stringnya harus berisi minimal sebuah bagar mencapai state z
Dari transition rule di atas, dapat dibuatkan sebuahtransition table seperti di bawah ini:
State a b
Start x y Z
y x z
Final z z z
FA dapat dianggap sebagai suatu mesin. Ada suatupergerakkan, perpindahan dari sebuah state ke statelain, karena adanya sebuah input
Contoh 1 Lanjt - Transition Diagram
FA yang digambarkan dalam bentuk grafis
Tanda (-) untuk start state dan (+) untuk final state
Bentuk lain, start state memakai panah dan finalstate memakai lingkaran ganda
x- y
z+
b b
a
a
a ba
b b
a
a
b
x y
z
Contoh 2
2 busur atau lebih yang berasal dari state yang sama danmenuju ke state yang sama pula dapat disatukan sepertigambar di atas
Sekilas terkesan bahwa FA di atas dapat menerima stringdalam bentuk apapun
Namun, bila inputnya adalah null string (), maka tidak akanterjadi perpindahan state
Jadi language yang diterima oleh mesin di atas adalah:
( a + b ) ( a + b )* = ( a + b )+
a, b
+ a, b +
a
b
a
b
Contoh 4
Apa yang terjadi bila diberi input string ababadan babbb (bagaimana pergerakkannya) ?
a
aa
b b
ba, b
1-
3
2
4+
Contoh 4 Lanjt..
Transisi bila diberi input string ababa
δ(1,a) = (2)
δ(2,b) = (3)
δ(3,a) = (2)
δ(2,b) = (3)
δ(3,a) = (2)
Contoh 4 Lanjt..
Transisi bila diberi input string babbb
δ(1,b) = (3)
δ(3,a) = (2)
δ(2,b) = (3)
δ(3,b) = (4)
δ(4,b) = (4)
Tuple Pada FSA
Finite State Automata dinyatakan oleh 5 tuple, yaitu:
M=(Q , Σ , δ , S , F )
Q = Himpunan state
Σ = Himpunan simbol input
δ = Fungsi/tabel transisi δ : Q × Σ
S = State awal / initial state , S ∈ Q
F = State akhir, F ∈ Q
Contoh 5 (Pen-cek Parity Ganjil)
Misal input : 1101
δ(Genap,1)=(Ganjil); δ(Ganjil,1)=(Ganjil); δ(Ganjil,0)=(Genap); δ(Genap,1)=(Ganjil) Result: Diterima mesin
Misal input : 1100
δ(Genap,1)=(Ganjil); δ(Ganjil,1)=(Ganjil); δ(Ganjil,0)=(Genap); δ(Genap,0)=(Genap)
Result: Ditolak mesin
Contoh 5 Lanjt.
Tuple pada contoh 5:
Q = {Genap, Ganjil}; Σ = {0,1}; S = {Genap}; F = {Ganjil}
δ 0 1
Genap Genap Ganjil
Ganjil Genap Ganjil
Penjabaran tabel transisi di atas adalah:
δ(Genap,0) = {Genap}
δ(Genap,1) = {Ganjil}
δ(Ganjil,0) = {Genap}
δ(Ganjil,1) = {Ganjil}
Jenis FSA
Deterministic Finite Automata (DFA)
Dari suatu state ada tepat satu state berikutnyauntuk setiap simbol masukan yang diterima
Non-deterministic Finite Automata (NFA)
Dari suatu state ada 0, 1 atau lebih state berikutnyauntuk setiap simbol masukan yang diterima
DFA (Deterministic Finite Automata)
Perhatikan !!
Contoh 5 : Pengujian parity ganjil
Contoh 6 : Pengujian untuk menerima bit stringdengan banyaknya “0” genap, serta banyaknya“1” genap.
0011 : String diterima
10010 : String ditolak, karena “0” banyaknya
berjumlah ganjil
Contoh 6 Lanjt..
DFA tuple-nya
Q = {q0, q1, q2, q3}; Σ = {0,1}; S = {q0}; F = {q0}
δ (Tabel transisi)
δ 0 1
q0 q2 q1
q1 q3 q0
q2 q0 q3
q3 q1 q2
Contoh string inputan:
δ(q0,011)=δ(q2,11)=δ(q3,1)=q2 (Ditolak)
δ(q0,1010)=δ(q1,010)=δ(q3,10)=δ(q2,0)=q0 (Diterima)
Contoh 7
Variabel dalam bahasa pascal diawali oleh huruf(besar/kecil), dan diikuti dengan huruf atau angka.
Top Related