Jumat, 07 Juli 2017

ekuivalensi NFA ke DFA

Dari sebuah mesin Non-deterministic Finite Automata dapat dibuat mesin Deterministic Finite Automata-nya yang ekuivalen.Ekuivalen disini artinya menerima bahasa yang sama .Meskipun yang satu adalah Non-deterministic dan yang satunya Deterministic namun keduanya menerima bahasa yang sama.


Contoh soal 1

Buatlah DFA yang ekuivalen dengan NFA disamping!

Pertama buatlah tabel transisinya


Kedua kita buat tupel dari tabel tersbut agar lebih detail

δ  = {q0 , q1}
Ʃ = {0 , 1}
s =  q0
f =  q1

Lalu kita mulai membuat DFA nya
Dimulai dari state awal q0

State {q0} bila memperoleh input 0 menjadi state {q0, q1}.
State {q0} bila memperoleh input 1 menjadi state {q1}.
Ekivalensi Non-Deterministic Automata (NFA)  ke Deterministic Finite Automata (DFA)
Ekivalensi Non-Deterministic Automata (NFA)  ke Deterministic Finite Automata (DFA)

State {q1} memperoleh input 0 menjadi state ∅
State {q1} bila memperoleh input 1 menjadi state {q0, q1}.
Pada state {q0,q1} awalnya belum mempunyai busur dan pada DFA,sebuah state harus mempunyai busur sebanyak himpunan inputnya,karena itu kita tentukan terlebih dahulu arah busurnya dan busurnya ada 2.
δ({q0,q1},0)  = {q0,0} ε {q1,0}
        = {q0,q1} ε Ø
        = {q0,q1}
δ({q0,q1},1) = {q0,1} ε {q1,1}
        = {q1} ε {q0,q1}
        = {q0,q1}

Jadi arah busur pada state {q0,q1} mengarah ke state itu sendiri.


Kemudian khusus pada state himpunan kosong (Ø) hanya menerima inputan dari statenya sendiri,jadi busur pada himpunan kosong mengarah ke state himpunan kosong.
Ekivalensi Non-Deterministic Automata (NFA)  ke Deterministic Finite Automata (DFA)
Ekivalensi Non-Deterministic Automata (NFA)  ke Deterministic Finite Automata (DFA)

Terakhir untuk menentukan final state pada DFA ini adalah dengan melihat NFA yang ekuivalen dengan DFA ini yaitu soal awal,
Kita ketahui Bahwa final state adalah q1,jadi pada DFA,final statenya adalah semua state yang ada hubungannya dengan q1 yaitu {q0,q1} dan {q1}


Ekivalensi Non-Deterministic Automata (NFA)  ke Deterministic Finite Automata (DFA)
Ekivalensi Non-Deterministic Automata (NFA)  ke Deterministic Finite Automata (DFA)

Ekuivalensi Antar Deterministic Finite Automata ( Reduksi )

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) ∉ F
                untuk semua Î S*

2. Indistinguishable State ( tidak dapat dibedakan)
    Dua state  p dan q dari suatu DFA dikatakan distinguishable jika ada string Î 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 :
  1. Hapuslah semua state yg tidak dapat dicapai dari state awal  (useless state)
  2. Buatlah semua pasangan state (p, q) yang distinguishable, dimana Î  F dan q ∉ F. Catat semua pasangan-pasangan state tersebut.
  3. Cari state lain yang distinguishable dengan aturan:                                                              Untuk semua (p, q) dan semua a Î ∑, hitunglah  δ (p, a) = pa dan δ (q, a) = q . Jika pasangan (pa, qa) adalah pasangan state yang distinguishable maka pasangan (p, q) juga termasuk pasangan yang distinguishable.
  4. Semua pasangan state yang tidak termasuk sebagai state yang distinguishable merupakan state-state indistinguishable.
  5. Beberapa state yang indistinguishable dapat digabungkan menjadi satu state.
  6. 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.
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: