Teori Bahasa Dan Automata - Finite State Automata
Assalamualaikum Wr. Wb.
Hubungan antara DFA, NFA, dan Ekspresi Reguler
Pembahasan:
(q0, q1)
Penyelesaian:
Sekian materi yang saya posting di blog ini. Mohon maaf apabila ada kekurangan dan kesalahan dalam penulisan. Semoga dapat bermanfaat bagi kita semua
Pada postingan ini saya akan membagikan sebuah materi Finite State Automata. Tujuan saya membuat postingan ini adalah untuk memenuhi Tugas Materi 7 pada Mata Perkuliahan TEORI BAHASA DAN AUTOMATA.
Pada postingan kali ini saya akan membahas 5 topik utama yaitu:
1. Penerapan FSA (Finite State Automata)
2. Penerapan DFA (Deterministic Finite Automata)
3. Penerapan NFA (Nondeterministic Finite Automata)
4. Ekuivalen antar DFA
5. Reduksi Jumlah State
Berikut adalah pembahsannya
Pada postingan kali ini saya akan membahas 5 topik utama yaitu:
1. Penerapan FSA (Finite State Automata)
2. Penerapan DFA (Deterministic Finite Automata)
3. Penerapan NFA (Nondeterministic Finite Automata)
4. Ekuivalen antar DFA
5. Reduksi Jumlah State
Berikut adalah pembahsannya
1. Penerapan FSA (Finite State Automata)
Finite State
Automata/otomata berhingga state, selanjutnya disebut sebagai FSA yaitu suatu
model matematika dari suatu sistem yang menerima input dan output diskrit. FSA
merupakan mesin otomata dari bahas regular. Suatu FSA memiliki state yang banyaknya
berhingga dan dapat berpindah-pindah dari suatu state ke state lain. Perubahan
state ini dinyatakan oleh fungsi transisi. FSA tidak memiliki tempat penyimpanan,
sehingga kemampuan ‘mengingatnya’ terbatas, hanya bisa mengingat state yang
terkini. Contoh FSA antara lain elevator, text editor, analisa leksikal, protocol
komunikasi jaringan dan pencek parity. FSA berdasar pada pendefinisian
kemampuan berubah state-statenya bisa dibagi menjadi Deterministic Finite
Automata (DFA) dan Non-deterministic Finite Automata (NFA).
Secara formal
FSA dinyatakan oleh 5 tupel atau M = (Q, Σ, δ, S, F) dimana:
Q = himpunan
state/kedudukan
Σ = himpunan
simbol input/masukan/abjad
δ = fungsi
transisi
S = state
awal/kedudukan awal (initial state), S є Q
F = himpunan state
akhir, F ∩ Q (jumlah state akhir pada suatu FSA bisa lebih dari satu)
FSA juga terbagi menjadi dua jenis, yaitu:
FSA juga terbagi menjadi dua jenis, yaitu:
- DFA (Deterministic Finite Automata)
- NFA/NDFA (Nondeterministic Finite Automata)
2. Penerapan DFA (Deterministic Finite Automata)
Deterministic Finite
Automata/otomata berhingga deterministik, selanjutnya disebut sebagai DFA. Pada
DFA, dari suatu state ada tepat satu state berikutnya untuk setiap simbol
masukan yang diterima. Suatu string x dinyatakan diterima bila δ(S, x) berada
pada state akhir/final state.
Contoh:
Tabel DFA |
Gambar Finite DFA |
3. Penerapan NFA (Nondeterministic Finite Automata)
Non-deterministic Finite
Automata, selanjutnya disebut sebagai NFA. Pada NFA, dari suatu state bisa
terdapat 0 atau 1 atau lebih busur keluar (transisi) berlabel symbol input yang
sama. Suatu string diterima oleh NFA bila terdapat suatu urutan transisi sehubungan
dengan input string tersebut dari state awal menuju state akhir. Untuk NFA, maka
harus mencoba semua kemungkinan yang ada sampai terdapat satu yang mencapai
state akhir.
- NFA mempunyai fungsi transisi yang menetapkan nol atau lebih state untuk sebuah symbol input
- NFA menerima String, jika hasil akhir penelusuran string berakhir di salah satu final state
- String akan diterima apabila ada suatu path bervariabel w dari start state ke salah satu final state, maka w akan diterima
Contoh:
Tabel NFA |
Gambar Finite NFA |
Berdasarkan contoh Deterministic
Finite Automata (DFA) dan Non Deterministic Finite Automata (NFA) yang ada di
atas, terlihat perbedaan antara DFA dan NFA yaitu:
- Pada Deterministic Finite Automata, jika suatu state diberi inputan maka state tersebut akan selalu tepat menuju satu state
- Pada Non Deterministic Finite Automata, jika suatu state diberi inputan maka mungkin saja bisa menuju ke beberapa state berikutnya. Dapat dilihat di S0, jika diberi inputan b bisa menuju ke S1 dan S2
4. Ekuivalen antar DFA
Gambar Hubungan antara DFA, NFA, dan Ekspresi Reguler |
Hubungan antara DFA, NFA, dan Ekspresi Reguler
Dua DFA M1 dan M2
dinyatakan ekivalen apabila L (M1) = L (M2)
Gambar DFA M1 dan DFA M2 |
5. Reduksi Jumlah State
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:
Ada dua buah istilah baru yang perlu kita ketahui yaitu:
- Distinguishable yang berarti dapat dibedakan
- Indistinguishable yang berarti tidak dapat dibedakan
Reduksi Jumlah
State pada FSA:
- Reduksi dilakukan untuk mengurangi jumlah state tanpa mengurangi kemampuan untuk menerima suatu bahasa seperti semula.
- State pada FSA dapat direduksi apabila terdapat useless state.
- Hasil FSA yang direduksi merupakan ekivalensi dari FSA semula.
Keterangan:
Useless state
adalah state yang tidak menerima inputan dari manapun tetapi mengeluarkan
output.
Gambar Finite FSA |
Pembahasan:
(q0, q1)
q0,0 --> q1 & q1,0 --> q1 --> q1,q1 --> indistinguisable,
sehingga dapat direduksi.
Contoh Soal:
Gambar Finite Contoh Soal Reduksi State FSA |
Penyelesaian:
Didapat State
yang tidak useless: q0, q1, q2, q3, q4
- q0, q1 -> distinguishable
- q0, q2 -> distinguishable
- q0, q3 -> distinguishable
- q0, q4 -> distinguishable
- q1, q2 -> indistinguishable
- q1, q3 -> indistinguishable
- q1, q4 -> distinguishable
- q2, q3 -> indistinguishable
- q2, q4 -> distinguishable
- q3, q4 -> distinguishable
Pembuktian:
(q0, q1)
q0, 0 -> q1 & q1, 0 ->
q2 =>q1, q2
q0, 1 -> q3 & q1, 1 ->
q4 => q3, q4 = distinguisable
(q0, q2)
q0, 0 -> q1 & q2, 0 ->
q1 =>q1, q1
q0, 1 -> q3 & q2, 1 ->
q4 => q3, q4 = distinguisable
(q0, q3)
q0, 0 -> q1 & q3, 0 ->
q1 =>q1, q1
q0, 1 -> q3 & q3, 1 ->
q4 => q3, q4 = distinguisable
(q1, q3)
q1, 0 -> q2 & q3, 0 ->
q2 =>q2, q2
q1, 1 -> q4 & q3, 1 ->
q4 => q4, q4 = indistinguisable
(q1, q2)
q1, 0 -> q2 & q2, 0 ->
q1 =>q1, q2
q1, 1 -> q4 & q2, 1 ->
q4 => q4, q4 = indistinguisable
(q2, q3)
q2, 0 -> q1 & q3, 0 ->
q2 =>q1, q2
q2, 1 -> q4 & q3, 1 ->
q4 => q4, q4 = indistinguishable
Maka dapat direduksi menjadi:
Gambar Contoh Soal Hasil Reduksi FSA |
Sekian materi yang saya posting di blog ini. Mohon maaf apabila ada kekurangan dan kesalahan dalam penulisan. Semoga dapat bermanfaat bagi kita semua
Terima Kasih
Wassalamualaikum Wr. Wb.
Penulis
Penulis
Nama: Dharma Ajie Nur Rois
NPM: 1810 6311 70120
Kelas: 4G Fasilkom
-----------------------------------------------------------------------------------------------------------------------------------------------
DAFTAR PUSTAKA
- Materi Persentasi "Materi 7 Finite State Automata" Dosen pengampu Teori Bahasa Automata: Garno, M.Kom. Fakultas Ilmu Komputer Universitas Singaperbangsa Karawang
- Media online: https://media.neliti.com/media/publications/226255-telaah-teoritis-finite-state-automata-de-8b056b07.pdf
- Media online: http://dhiyakhai.blogspot.com/2018/06/ekuivalensi-antar-deterministic-finite.html
- Media online: https://solagratiapa.wordpress.com/2018/04/26/ekivalensi-antar-dfa/
- Media online: https://socs.binus.ac.id/2019/12/21/teknik-kompilasi-perbedaan-dfa-dan-nfa/
Komentar
Posting Komentar