Finite State Automata & Non Finite State Automata

Finite State Automata
&
Non Finite State Automata

 BAHASAN
  1.  Penerapan FSA
  2.  DFA 
  3.  NDFA/NFA
  4.  Ekuivalen antar DFA
  5.  Reduksi jumlah State pada FSA  

 Penerapan (FSA)
 Finite State Automata
  •  Model matematika suatu sistem yang menerima inpu dan output diskrit 
  • Mesin automata dari bahasa Regular 
  • Tidak memiliki tempat penyimpanan sehingga kemampuan mengingat terbatas (contoh: elevator/lift) 
  • Aplikatif berguna untuk merancang sistem nyata. 
  • Aplikasi meliputi: analisis leksikal, text-editor, protokol komunikasi jaringan (kermit) dan parity checker(pengecek parity).
Finite State Automata

FSA atau AH (Automata Hingga) 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

 Finite State Automata
 Contoh 1:
Seorang petani dengan seekor serigala, kambing dan seikat rumput berada pada suatu sisi sungai.

Tersedia hanya sebuah perahu kecil yang hanya dapat dimuati dengan petani tersebut dengan salah satu serigala, kambing atau rumput.

Petani tersebut harus menyeberangkan ketiga bawaannya kesisi lain sungai.

Tetapi jika petani meninggalkan serigala dan kambing pada suatu saat, maka kambing akan dimakan serigala.

Begitu pula jika kambing ditinggalkan dengan rumput, maka rumput akan dimakan oleh kambing.

Mungkinkah ditemukan suatu cara untuk melintasi sungai tanpa menyebabkan kambing atau rumput dimakan.

Sisi kiri Sisi Kanan Simbol State

 
Sisi kiri Sisi Kanan Simbol State



Dari 16 kemungkinan kombinasi state , hanya 10 state yang memenuhi syarat. 


Tupel: M = (Q, ∑, δ, S, F)

Q = {PKSR-Φ, SR-PK, PSR-K, R-PSK, S-PKR, PKR-S,

PSK-R, K-PSR, PK-SR, Φ-PKSR}

Σ = {p, k, s, r}
S = PKSR – Φ
F = {Φ-PKSR} 

Contoh 2:
 Pengecek Pariti Ganjil 

FSA dari bentuk diatas

• Lingkaran menyatakan state/kedudukan
• Label pada lingkaran adalah nama state tersebut
• Busur menyatakan transisi yaitu perpindahan kedudukan/state.
• Label pada busur adalah simbol input.
• Lingkaran didahului sebuah busur tanpa label menyatakan state awal
• Lingkaran ganda menyatakan state akhir/final

 Bila mesin mendapatkan input

 Input: 1101
Urutan state yang terjadi:
Genap—1– ganjil –1— genap—0—genap—1— ganjil, (berakhir pada ganjil) sehingga ‘1101’ diterima oleh mesin.
Input: 101
Urutan state yang terjadi:
Genap—1—ganjil—0— ganjil—1—genap, (berakhir pada genap) sehingga ‘101’ ditolak oleh mesin.

Tupel: M = (Q, ∑, δ, S, F)
Q = {genap, ganjil}
Σ = {0,1}
S = genap
F = {ganjil}

FSA (Finite State Automata)

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

DETERMINISTIC FINITE AUTOMATA (DFA)
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)

 Deterministic Finite Automata

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.




NONDETERMINISTIC FINITE AUTOMATA (NFA)

Non Deterministic Finite Automata

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


 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

Reduksi Jumlah State Pada FSA

Pasangan State dapat dikelompokkan berdasarkan:

• 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*

• 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

• 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 state yang
distinguishable merupakanstate-state indistinguishable.
• Beberapa state yang indistinguishable dapat digabungkan menjadi satu
state.
• Sesuaikan transisi dari state-state gabungan tersebut. 


Reduksi Jumlah State Pada FSA – Step
• State q5 tidak dapat dicapai dari state awal dengan jalan apapun (useless
state). Hapus state q5

• 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.

• 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.

Post a Comment

0 Comments