Teori Bahasa dan Automata "Penerapan FSA, DFA(Deterministik Finite Automata), NFA(non deterministik Finite Automata), Ekuivalen antar DFA, Reduksi Jumalh State."
Finite
State Automata (FSA)
Finite State Automata (FSA) merupakan tool yang sangat berguna untuk mengenal dan menangkap pola dalam data. Finite State Automata (FSA) adalah model matematika yang dapat menerima input dan mengeluarkan output yang memiliki state yang berhingga banyaknya dan dapat berpindah dari satu state ke state lainnya berdasarkan input dan fungsi transisi
FSA
didefinisikan sebagai pasangan 5 tupel : (Q, ∑, δ, S, F).
Q :
himpunan hingga state
∑ :
himpunan hingga simbol input (alfabet)
δ : fungsi
transisi, menggambarkan transisi state FSA akibat pembacaan simbol input.
(Fungsi
transisi ini biasanya diberikan dalam bentuk tabel.)
S : state
AWAL (Start)
F :
himpunan state AKHIR (Final)
Karakteristik
Finite Automata :
1.Setiap
Finite Automata memiliki keadaan dan transisi yang terbatas.
2.Transisi
dari satu keadaan ke keadaan lainnya dapat bersifat deterministik atau
non-deterministik.
3.Setiap
Finite Automata selalu memiliki keadaan awal.
4.Finite
Automata dapat memiliki lebih dari satu keadaan akhir.
jika
setelah pemrosesan seluruh string, keadaan akhir dicapai, artinya otomata
menerima string tersebut.
Setiap FSA
memiliki:
1.
Himpunan berhingga (finite) status (state)
Satu buah
status sebagai status awal (initial state), biasa dinyatakan q0.
Beberapa
buah status sebagai status akhir (final state).
2.
Himpunan berhingga simbol masukan
3. Fungsi
transisi
Menentukan
status berikutnya dari setiap pasang status dan sebuah simbol masukan.
Cara Kerja
Finite State Automata :
Finite
State Automata bekerja dengan cara mesin membaca memori masukan berupa tape
yaitu 1 karakter tiap saat (dari kiri ke kanan) menggunakan head baca yang
dikendalikan oleh kotak kendali state berhingga dimana pada mesin terdapat
sejumlah state berhingga. Finite Automata selalu dalam kondisi yang disebut
state awal (initial state) pada saat Finite Automata mulai membaca tape.
Perubahan state terjadi pada mesin ketika sebuah karakter berikutnya dibaca.
Ketika head telah sampai pada akhir tape dan kondisi yang ditemui adalah state
akhir, maka string yang terdapat pada tape dikatakan diterima Finite Automata
(String-string merupakan milik bahasa bila diterima Finite Automata bahasa
tersebut).
Finite
State Diagram (FSD)
Finite
State Automata dapat dimodelkan dengan Finite State Diagram (FSD) dapat juga
disebut State Transition Diagram. Sistem transisi adalah sistem yang tingkah
lakunya disajikan dalam bentuk keadaan-keadaan (states). Sistem tersebut dapat
bergerak dari state yang satu ke state lainnya sesuai dengan input yang
diberikan padanya. Fungsi Transisi (d) adalah representasi matematis atas
transisi keadaan.
S =
himpunan alfabet.
Q =
himpunan keadaan-keadaan.
d = Q x S
à Q
Finite
State Diagram terdiri dari:
1.
Lingkaran menyatakan state
Lingkaran diberi label sesuai dengan nama state tersebut. Adapun pembagian lingkaran adalah:
a.
Lingkaran bergaris tunggal berarti state sementara
b.
Lingkaran bergaris ganda berarti state akhir
2.Anak
Panah menyatakan transisi yang terjadi.
Label di
anak panah menyatakan simbol yang membuat transisi dari 1 state ke state lain.
1 anak panah diberi label start untuk menyatakan awal mula transisi dilakukan.
Contoh :
1. FSA
untuk mengecek parity ganjil
Misal
input : 1101
Genap 1
Ganjil 1 Genap 0 Genap 1 Ganjil : diterima mesin
Misal
input : 1100
Genap 1
Ganjil 1 Genap 0 Genap 0 Genap : ditolak mesin
Jawab :
Kesimpulan :
Jawab:
Ada dua buah istilah baru yang perlu kita ketahui yaitu :
Pasangan State dapat dikelompokkan berdasarkan:
Dalam hal ini terdapat sebuah relasi :
Dalam melakukan eveluasi state, didefinisikan suatu relasi :
Contoh :
Daftar Pustaka :
Q ={Gnp,
Gjl} himpunan state
∑ ={0,1}
himpunan simbol input
δ = fungsi
transisi,
S = Gnp
(Start)
F = {Gjl}
(Final) himpunan state AKHIR
(ingat
untuk himpunan harus ditulis di dalam {} )
Dari
diagram tersebut Contoh Bahasa/L(m) yang diterima adalah :
0110
(karena state akhirnya adalah finalnya state, dalam konteks ini adalah Gjl
1011 =
diterima
0100 = diterima
11110
=diterima
011 =
ditolak (karenan state akhirnya tidak di final state, Gnp)
11011 =
ditolak
FSA
berdasar pada pendefinisian kemampuan berubah state-statenya bisa dibagi
menjadi 2, yaitu :
1.
Deterministic (DFSA/DFA)
Pada
setiap input, hanya ada satu keadaan (State) tujuan dari keadaan saat ini.
Notasi
matematis DFA:
M = nama
DFA
Q =
himpunan keadaan DFA
S =
himpunan alfabet
d = fungsi
transisi
q0 =
keadaan awal
F =
keadaan akhir
M = (Q, S,
d, q0, F)
Contoh :
Diketahui
DFA :
Q = {q0, q1, q2}δ diberikan dalam tabel berikut
:
∑ = {a,b}
S = q0
F =
{q0,q1}
Fungsi
transisi adalah:
L(M) =
{abababaa, aaaabab,aabababa,…}
Penelusuran/Tracking:
Telusurilah,
apakah kalimat-kalimat berikut diterima DFA di atas: abababaa, aaaabab , aaabbaba
Jawab :
δ
(q0,abababaa) ⇒ δ (q0,bababaa) ⇒ δ (q1,ababaa) ⇒ δ (q0,babaa) ⇒ δ (q1,abaa) ⇒ δ (q0,baa) ⇒ δ (q1,aa) ⇒ δ (q0,a) ⇒ q0
Tracking
berakhir di q0 (state AKHIR) ⇒
kalimat abababaa diterima
Kesimpulan :
Sebuah
kalimat diterima oleh DFA di atas jika tracingnya berakhir di salah satu state
AKHIR.
2.
Non-deterministic Finite Automata (NFSA/NFA).
Pada
setiap input terdapat lebih dari satu keadaan tujuan dari keadaan saat ini
Non-Deterministic
Finite Automata :
• Otomata
berhingga yang tidak pasti untuk setiap pasangan state input, bisa memiliki 0
(nol) atau lebih pilihan untuk state berikutnya.
• Untuk
setiap state tidak selalu tepat ada satu state berikutnya untuk setiap simbol
input yang ada.
• Dari
suatu state bisa terdapat 0,1 atau lebih busur keluar (transisi)
berlabel
simbol input yang sama.
• Untuk
NFA harus dicoba semua kemungkinan yang ada sampai
terdapat
satu yang mencapai state akhir.
• Suatu
string x dinyatakan diterima oleh bahasa NFA, M= (Q, _, d, S, F) bila {x | d
(S,x) memuat sebuah state di dalam F}
Kedua
finite automata di atas mampu mengenali himpunan reguler secara presisi.Dengan
demikian kedua finite automata itu dapat mengenali string-string yang
ditunjukkan dengan ekspresi reguler secara tepat. DFA dapat menuntun
recognizer(pengenal) lebih cepat dibanding NDFA. Namun demikian, DFA berukuran
lebih besar dibanding NDFA yang ekivalen dengannya. Lebih mudah membangun NDFA
dibanding DFA untuk suatu bahasa, namun lebih mudah mengimplementasikan DFA
dibanding NDFA.
Contoh :
Berikut
ini sebuah contoh NFA (Q, ∑, δ, S, F). dimana : Q = {q 0, q1 , q2 ,q3 , q4 }
δ
diberikan dalam table berikut :
∑= {a,
b,c}
S = q0
F = {q4}
∑= {a,
b,c}
S = q0
F = {q4 }
Sebuah
kalimat di terima NFA jika:
Salah satu
tracking-nya berakhir di state AKHIR, atau himpunan state setelah membaca
string tersebut mengandung state AKHIR Telusurilah, apakah kalimat-kalimat
berikut diterima NFA di atas : ab, abc, aabc, aabb.
Jawab:
δ(q0 ,ab) ⇒ δ(q0,b) ∪ δ(q1 ,b) ⇒ {q0, q2} ∪ {q1 } = {q0 , q1 , q2}
Himpunan
state TIDAK mengandung state AKHIR ⇒
kalimat ab tidak diterima δ(q0 ,abc) ⇒
δ(q0 ,bc) ∪ δ(q1
,bc) ⇒ { δ(q0
,c) ∪ δ(q2
,c)}∪δ(q1
, c)
{{ q0 , q3
}∪{ q2
}}∪{ q1
} = {q0 , q1 , q2 ,q3 }
Himpunan
state TIDAK mengandung state AKHIR ⇒
kalimat abc tidak diterima.
Ekuivalensi
Antar Deterministic Finite Automata
Untuk
suatu bahasa regular, kemungkinan ada sejumlah Deterministic Finite Automata
yang dapat menerimanya. Perbedaannya hanyalah jumlah state yang dimiliki
otomata-otomata yang saling ekuivalen tersebut. Tentu saja, dengan alasan
kepraktisan, kita memilih otomata dengan jumlah state yang lebih sedikit.
Sasaran
kita di sini adalah mengurangi jumlah state dari suatu Finite State Automata,
dengan tidak mengurangi kemampuannya semula untuk menerima suatu bahasa.
Ada dua buah istilah baru yang perlu kita ketahui yaitu :
1.
Distinguishable yang berarti dapat dibedakan.
2.
Indistinguishable yang berarti tidak dapat dibedakan.
Dua DFA M1
dan M2 dinyatakan ekivalen apabila L(M1) = L(M2)
Reduksi Jumlah State Pada FSA
Reduksi dilakukan untuk mengurangi jumlah state tanpa
mengurangi kemampuan untuk menerima suatu bahasa seperti semula (efisiensi).
State pada FSA dapat direduksi apabila terdapat useless state. Hasil dari FSA
yang direduksi merupakan ekivalensi dari FSA semula
Pasangan State dapat dikelompokkan berdasarkan:
1. Distinguishable State (dapat dibedakan)
Dua state p dan q dari suatu DFA dikatakan
indistinguishable apabila:
δ(q,w) Î F dan δ(p,w) Î F atau
δ(q,w) ∉ F dan δ(p,w) ∉
untuk semua w Î S*
2. Indistinguishable State ( tidak dapat dibedakan)
Dua state p dan q dari suatu DFA dikatakan
distinguishable jika ada string w Î S*
hingga:
δ(q,w) Î F dan δ(p,w) ∉
F
Reduksi Jumlah State Pada FSA – Relasi
Pasangan dua buah state memiliki salah satu kemungkinan
adalah distinguishable atau indistinguishable tetapi tidak kedua-duanya.
Dalam hal ini terdapat sebuah relasi :
Jika p dan
q indistinguishable,
dan q dan r
indistinguishable
maka p, r
indistinguishable
dan p,q,r indistinguishable
Dalam melakukan eveluasi state, didefinisikan suatu relasi :
Untuk Q yg merupakan himpunan semua state
D adalah himpunan state-state distinguishable, dimana D Ì Q
N adalah himpunan
state-state indistinguishable, dimana N Ì Q
maka x Î N jika x Î Q
dan x ∉ D
Reduksi Jumlah State Pada FSA – Step
Langkah - langkah untuk melakukan reduksi ini adalah :
1. Hapuslah semua state yg tidak dapat dicapai dari state
awal (useless state)
2. Buatlah semua pasangan state (p, q) yang distinguishable,
dimana p Î F dan q ∉
F.
Catat semua pasangan-pasangan state tersebut.
Cari state lain yang distinguishable dengan aturan:
Untuk semua (p, q) dan semua a Î ∑, hitunglah δ (p, a) = pa dan δ (q, a) = qa . Jika pasangan (pa, qa) adalah pasangan
state yang distinguishable maka pasangan (p, q) juga termasuk pasangan yang
distinguishable. Semua pasangan state yang tidak termasuk sebagai state yang
distinguishable merupakan state-state indistinguishable. Beberapa state yang
indistinguishable dapat digabungkan menjadi satu state. Sesuaikan transisi dari
state-state gabungan tersebut. Reduksi Jumlah State Pada FSA
Contoh :
1. State q5 tidak
dapat dicapai dari state awal dengan jalan apapun (useless state). Hapus state q5
2. Catat state-state distinguishable, yaitu : q4 Î F sedang
q0, q1, q2, q3 ∉ F sehingga pasangan (q0, q4) (q1, q4) (q2, q4) dan
(q3, q4) adalah distinguishable.
3. Pasangan-pasangan state lain yang distinguishable
diturunkan berdasarkan pasangan dari langkah 2, yaitu :
Untuk pasangan (q0,q1)
δ(q0, 0) = q1 dan δ(q1, 0) = q2
- belum
teridentifikasi δ(q0, 1) = q3 dan δ(q1, 1) = q4
- (q3, q4)
distinguishable maka (q0, q1) adalah
distinguishable.
Untuk pasangan (q0, q2) δ(q0, 0) = q1 dan
δ(q2, 0) = q1
- belum teridentifikasi
δ(q0, 1) = q3 dan δ(q2, 1) = q4
- (q3, q4)
distinguishable maka (q0, q2) adalah distinguishable.
4. Setelah diperiksa semua pasangan state maka terdapat state-state yang
distinguishable : (q0,q1), (q0,q2), (q0,q3),
(q0,q4), (q1,q4), (q2,q4),
(q3,q4). Karena berdasarkan relasi-relasi yang ada, tidak dapat dibuktikan (q1,
q2), (q1, q3) dan (q2, q3) distinguishable,
sehingga disimpulkan pasangan-pasangan state tersebut indistinguishable.
5. Karena q1 indistinguishable dengan q2, q2 indistinguishable dengan q3, maka dapat
disimpulkan q1, q2, q3 saling indistinguishable dan dapat dijadikan satu state.
6. Berdasarkan hasil diatas
maka hasil dari DFA yang direduksi menjadi:
Daftar Pustaka :
Komentar
Posting Komentar