Penerapan FSA, DFA(Deterministik Finite Automata), NFA(non deterministik Finite Automata), Ekuivalen antar DFA, Reduksi Jumlah State


Finite State Automata (FSA)

Finite Automata adalah model matematika sistem dengan masukan dan keluaran diskrit. Finite State Automata adalah model matematika yang dapat menerima inputan dan mengeluarkan output. Memiliki state berhingga banyaknya dan dapat berpindah dari satu ke yang lainnya sesuai dengan inputan dan fungsi transisi.

Contoh Sistem dengan state berhingga :
- Sistem elevator
- Mesin penjual minuman kaleng (vending machine)
- Pengatur lampu lalu lintas
- Sirkit switching di komputer dan telekomunikasi
- Lexical Analyzer
- Neuron Nets


Finite State Diagram (FSD)
Finite State Automata dapat dimodelkan dengan Finite State Diagram (FSD) dapat juga disebut State Transition Diagram.

Finite State Diagram terdiri dari:

1. Lingkaran menyatakan state
Lingkaran diberi label sesuai dengan nama state tersebut.

Adapun pembagian lingkaran adalah:
- Lingkaran bergaris tunggal berarti state sementara
- 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

Klasifikasi FSA

Ada dua jenis FSA :

•Deterministic finite automata (DFA) 
Terdiri dari 1 transisi dari suatu state pada 1 simbol masukan.
Deterministic Finite Automaton disingkat menjadi “DFA” dan juga biasa dikenal sebagai Deterministic Finite Acceptor (DFA)Deterministic Finite State Machine (DFSM), atau Deterministic Finite State Automaton (DFSA).
DFA merupakan teori komputasi dan cabang dari ilmu komputer teoritis. DFA adalah Finite-state Machine atau mesin keadaan terbatas yang menerima atau menolak string dari simbol dan hanya menghasilkan perhitungan unik dari otomata untuk setiap string yang di masukan.
Contoh Kasus
Penulis memberikan contoh untuk DFA F(K,VT,M,S,Z) , dimana:
·         K = {S, A, B}
·         VT = {a, b}
·         S = {S}
·         Z = {B}
M diberikan dalam tabel berikut:
            


Ilustrasi graf untuk DFA F adalah sebagai berikut:
           


Apabila stata awal S diberi masukan a maka akan bergerak ke stata A, stata A diberi masukan b maka akan bergerak ke stata B (stata penerima). Yang artinya DFA tersebut apabila diberi masukan string ab maka masukan tersebut diterima.

•Non deterministik finite automata.(NFA)
Lebih dari 1 transisi dari suatu state dimungkinkan pada simbol masukan yang sama

Kedua finite automata tersebut mampu mengenali himpunan reguler secara presisi. Dengan demikian kedua finite automata itu dapat mengenali string-string yang ditunjukkan dengan ekspresi reguler secara tepat.

Nondeterministic Finite Automata (NFA) adalah salah satu bagian dari otomata berhingga atau Finite State Automata (FSA). Pada Nondeterministic Finite Automata (NFA) dimungkinkan satu simbol menimbulkan transisi ke lebih dari satu kondisi dan memberikan beberapa kemungkinan gerakan sehingga keluarannya tidak dapat dipastikan. Selain itu dimungkinkan juga terjadinya transisi spontan atau transisi –ε.
Nondeterministic Finite Automata (NFA) didefenisikan sebagai M yang merupakan sebuah koleksi dari 5 obyek (Q , Σ , s , F , ∆ ) dimana :
1. Q adalah sebuah himpunan hingga dari kedudukan-kedudukan.
2. Σ adalah sebuah abjad masukan.
3. s adalah salah satu kedudukan di dalam Q yang ditetapkan sebagai kedudukan permulaan.
4. F adalah sebuah koleksi dari kedudukan-kedudukan yang diterima atau final (koleksi / himpunan dari kondisi akhir).
5. ∆ adalah sebuah relasi pada (Q x Σ) x Q dan dinamakan relasi transisi.
(Kelley, 1995: 46).


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 diabnding NDFA.
Ekuivalensi Antar Deterministic Finite Automata ( Reduksi )
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 Statedapat 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)  F
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 : 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 :
Hapuslah semua state yg tidak dapat dicapai dari state awal  (useless state)
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 stateyang 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


                              Sebuah Mesin DFA




  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.
  1. Pasangan-pasangan state lain yang distinguishable diturunkan berdasarkan pasangan dari langkah 2, yaitu :                                                                                                                   
    1. 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. \
    1. 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.
  1. 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.
  2. Karena q1 indistinguishable dengan q2,  q2 indistinguishable dengan q3, maka dapat disimpulkan q1, q2, q3 saling indistinguishable dan dapat dijadikan satu state.
  3. Berdasarkan hasil diatas  maka hasil dari DFA yang direduksi menjadi:


- Penerapan FSA :

·         Penerapan Konsep Finite State Automata (FSA) pada Mesin Pembuat Minuman Kopi Otomatis
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 [1].
Pada penelitian ini akan dimodelkan suatu penerapan konsep Finite State Automata (FSA) pada suatu mesin pembuat minuman kopi otomatis. Penerapan konsep FSA digunakan untuk mengenal dan menangkap pola dalam proses pembuatan minuman kopi pada mesin pembuat minuman kopi otomatis.
Tujuan dari penelitian ini adalah menerapkan konsep Finite State Automata (FSA) pada aplikasi simulasi mesin pembuat minuman kopi otomatis dan menghasilkan suatu aplikasi simulasi mesin yang dapat melakukan proses pembuatan minuman kopi dan variasinya secara otomatis. Selain itu, pada penelitian ini akan di generate suatu grammar untuk menghasilkan ke tujuh jenis minuman seperti yang telah didiskusikan sebelumnya.

- Penerapan NFA:
·         Penerapan Konsep Non-Deterministic Finite Automata (NFA) pada Aplikasi Simulasi Mesin Kopi Vending
Terdapat penelitian terdahulu yang sejenis (Rizky Indah Melly E.P, 2012)mengenai penerapan konsep finite state automata (FSA) mesin pembuat kopi otomatis. Akan tetapi, pada penelitian tersebut belum diterapkan sistem pembayaran, beserta variasi suhu dan ukuran gelas kopi yang dapat dipilih. Sehingga pada penelitian ini akan dihasilkan aplikasi simulasi mesin kopi vending, yang dapat menangani transaksi pembayaran cash serta membuat kopi sesuai pilihan variasi rasa, suhu, dan ukuran gelas kopi yang diinginkan.
. Jenis state diagram yang digunakan yaitu mealy machines dengan konsep Non-Deterministic Finite Automata (NFA). Dengan mealy machines akan terlihat output yang dikeluarkan pada setiap transisi antar state yang terjadi berdasarkan inputan yang diterima dan state sebelumnya.




Daftar pustaka :
[1] Linz, Peter. An Introduction to Formal Language and Automata. John and Bartlett Publisher (2001).




Komentar

Postingan populer dari blog ini

Teknik-Teknik Penyederhanaan Produksi Empty, Produksi Unit dan Produksi useless

Tata Bahasa Bebas Konteks POHON PENURUNAN