Friday, April 24, 2020

Finite State Automata dan Non Finite State Automata


Finite State Automata

Teori bahasa dan automata merupakan teori yang berkaitan dengan mesin-mesin abstrak yang di dalamnya terdapat sebuah kajian tentang Finite State Automata yang dapat diimplementasikan dalam rancangan sebuah Vending Machine. Finite State Automata dapat dijadikan sebagai logika dasar untuk membuat simulasi Vending Machine. 

Finite State Automata atau state automata berhingga yang biasa disebut FSA, bukanlah mesin fisik tetapi suatu model matematika dari suatu sistem yang menerima input dan output diskrit (Irawan., et al [4]). FSA memiliki state yang banyaknya berhingga, dan dapat berpindah-pindah dari satu state ke state lain. Perubahan state ini dinyatakan dengan fungsi transisi. State adalah kondisi atau keadaan atau kedudukan. FSA Tidak memiliki tempat penyimpanan sehingga kemampuan mengingat terbatas (contoh: elevator/lift). 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 (Utdirartatmo, [10]).

Finite State Automata didefinisikan sebagai pasangan 5 Tupel M = (Q, ∑, δ, S, F).
Q                           : himpunan hingga state
∑ (Sigma)             : himpunan hingga simbol input (alfabet)
δ (Delta)               : fungsi transisi, menggambarkan transisi state FSA akibat pembacaan simbol input.

Fungsi transisi ini biasanya diberikan dalam bentuk tabel.
S Q                     : state AWAL
F Q                     : himpunan state AKHIR
Rancangan diagram transisi aplikasi simulasi Vending Machine yoghurt Walagri

Pendefinisian Tuple Mealy machine didefinisikan dengan enam tupel.
M = (Q,Σ,𝛿,S,Δ, 𝜆)
dengan:
Q             : himpunan state
Σ              : himpunan simbol input
𝛿                : fungsi transisi
S              : state awal
Δ              : himpunan simbol output
𝜆                : fungsi output. 

Sehingga dapat didefinisikan sebagai berikut:
Q = {q0, q1, q2, q3}
Σ = {a,b,c,d,e,f,M,N,P,k}
S = {q0}
Δ = {A,B,C,D,E,F,o} 

Keterangan:
o             : tidak ada
a             : memilih yoghurt rasa leci
b             : memilih yoghurt rasa stroberi
c             : memilih yoghurt rasa original
d             : memilih yoghurt rasa sweet ori
e             : memilih yoghurt rasa vanila
f             : memilih yoghurt rasa coklat
M           : uang sepuluh ribu
N            : uang dua puluh ribu 
P            : uang lima puluh ribu
L            : dua lembar uang dua puluh ribu
k            : uang kembalian

Finite State Automata (FSA) dapat menjadi logika dasar untuk merancang suatu Vending Machine yang fleksibel dalam proses penjualan yoghurt Walagri dengan berbagai rasa dan variasi kembaliannya. Konsep FSA pada Vending Machine diterapkan dengan cara FSA membaca setiap simbol masukan yang diberikan menjadi suatu bahasa yang dikenali oleh FSA. Mesin selanjutnya akan melakukan proses pengeluaran minuman berdasarkan rasa yang diinginkan beserta uang kembalian sesuai dengan bahasa yang telah dibaca oleh FSA. Penerapan konsep FSA dapat menjadi salah satu alternatif untuk merancang sebuah Vending Machine serta dapat dijadikan bahan pertimbangan dan acuan untuk pengembangan aplikasi selanjutnya yang sejenis.

 16 Kemungkinan Kombinasi State

FSA (Finite State Automata) terbagi menjadi dua jenis, dapat berupa :
1. Deterministic Finite Automata (DFA)
Deterministic Finite Automata (DFA) adalah dari suatu state ada tepat satu state berikutnya untuk setiap simbol input yang diterima.
2. Nondeterministic Finite Automata (NDFA) / NFA
Nondeterministic Finite Automata (NDFA) / NFA adalah ari suatu state bisa terdapat 0,1 atau lebih busur keluar (transisi) berlabel simbol input yang sama.

Deterministic Finite Automata

Deterministic finite automata (DFA) M = (Q, ∑, δ, S, F),
dimana :
Q             : himpunan state/kedudukan
            : himpunan simbol input
             : fungsi transisi,

Dimana, ∂ Q x Q
S              : State awal (initial state)
F              : himpunan state akhir (Final State)

Language L(M) : (x | ∂(S,x) di dalam F)
Pada DFA dari suatu state ada tepat satu state berikutnya untuk setiap simbol input
(masukan) yang di terima.



Konfigurasi DFA contoh 1 secara formal adalah sebagai berikut :
Q = {q0, q1, q2}
Σ = {a, b}
S = q0
F = {q2} 

Fungsi-fungsi transisinya sebagai berikut :
δ (q0, a) = q0, δ (q0, b) = q1, 
δ (q1, a) = q1, δ (q1, b) = q2,
δ (q2, a) = q1, δ (q2, b) = q2.

Jika disajikan dalam tabel transisi :
δ
a
b
q0
q0
q1
q1
q1
q2
q2
q1
q2
* Dalam DFA, selalu dan pasti terdapat satu state berikutnya untuk setiap pasangan state
input.

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.

Non Deterministic Finite Automata (NFA)

Non Deterministic finite automata (NFA) M = (Q, ∑, δ, S, F)
dimana :
Q             : himpunan state/kedudukan
             : himpunan simbol input
             : fungsi transisi 

Dimana, ∂ Q x ( ε) P(Q)
P(Q)       : set of all subsets of Q
S              : State awal (initial state)
F              : himpunan state akhir (Final State)

Language L(M) : (x | ∂(S,x) di dalam F)

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.
State
a
b
S0
S1
S2
S1
S1
S1
S2*
S2
-


State
a
b
S0
S1
{S0, S2}
S1
S1
S1
S2*
S2
-

 

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.

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

 Contoh Reduksi Jumlah State

 
Langkah Penyelesaian Soal diatas:

Langkah Pertama
Identifikasilah setiap kombinasi state yang mungkin :
Kombinasi state yang mungkin adalah :
(q0 , q1 )
(q0 , q2 )
(q0 , q3 )
(q0 , q4 )
(q1 , q2 )
(q1 , q3 )
(q1 , q4 )
(q2 , q3 )
(q2 , q4 )
(q3 , q4 ) 

Langkah Kedua
State yang berpasangan dengan state akhir (q4) merupakan state yang distinguishable
(q0 , q1 )
(q0 , q2 )
(q0 , q3 ) 
(q0 , q4 ) : Distinguishable
(q1 , q2 )
(q1 , q3 )
(q1 , q4 ) : Distinguishable
(q2 , q3 )
(q2 , q4 ) : Distinguishable
(q3 , q4 ) : Distinguishable

Langkah Ketiga
Untuk pasangan state yang lain jika masing-masing state mendapat input yang sama, maka bila satu state mencapai state akhir dan yang lain tidak mencapai state akhir maka dikatakan distinguishable. Untuk (q0 , q1 ) :
δ (q0 , 1) = q3
δ (q1 , 1) = q4
δ (q0 , 0) = q1
δ (q1 , 0) = q2
Maka (q0 , q1) : Distinguishable 

Untuk (q0 , q2 ) :
δ (q0 , 1) = q3
δ (q2 , 1) = q4
δ (q0 , 0) = q1
δ (q2 , 0) = q1
Maka (q0 , q2) : Distinguishable 

Untuk (q0 , q3 ) :
δ (q0 , 1) = q3
δ (q3 , 1) = q4
δ (q0 , 0) = q1
δ (q3 , 0) = q2
Maka (q0 , q3) : Distinguishable 

Untuk (q1 , q 2 )
δ (q1 , 1) = q4
δ (q2 , 1) = q4
δ (q1 , 0) = q2
δ (q2 , 0) = q1
Maka (q1 , q2 ) : Indistinguishable 

Untuk (q1 , q3 )
δ (q1 , 1) = q4
δ (q3 , 1) = q4
δ (q1 , 0) = q2
δ (q3 , 0) = q2
Maka (q1 , q3 ) : Indistinguishable 

Untuk (q2 , q3 )
δ (q2 , 1) = q4
δ (q3 , 1) = q4
δ (q2 , 0) = q1
δ (q3 , 0) = q2
Maka (q2 , q3 ) : Indistinguishable 

Langkah Keempat
Maka Didapatkan pasangan state sebagai berikut :
(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 

Langkah Kelima
Kelompokkan pasangan state yang indistinguishable :
(q1 , q2 ) : Indistinguishable
(q1 , q3 ) : Indistinguishable
(q2 , q3 ) : Indistinguishable 

Langkah Keenam
Karena q1 indistinguishable dengan q2 dan q2 indistinguishable dengan q3, maka bisa dikatakan bahwa q1, q2, dan q3 saling indistinguishable dan dapat dijadikan satu state. 

Langkah Terakhir sekaligus Hasil Penyederhanaan
Sehingga hasil penyederhanaannya adalah sebagai berikut :


 

Daftar Pustaka