Ekuivalensi State (Ed. 1) 1/5 Lecture Notes Teori Bahasa dan Automata Uji Ekuivalensi State Deterministic Finite Automata Thompson Susabda Ngoen Beberapa deterministic finite automaton (DFA) yang berbeda mungkin menyatakan sebuah language yang sama. Sebagai contoh ketiga DFA berikut menyatakan language L = {1 n : n mod 3 = 0} namun jumlah state pada ketiga DFA ini berbeda. Jika kita mengimplementasikan mesin abstrak ini menjadi program tentu yang versi tiga state adalah yang paling efisien. Gambar 1. DFA yang Menerima String dengan jumlah simbol 1 Kelipatan Tiga A. Uji Ekuivalensi State-State Dengan String 1. Definisi State p dan state q adalah ekuivalen jika untuk semua string w, δ^(p,w) adalah accepting state jika dan hanya jika δ^(q,w) juga accepting state. Maksudnya misalkan δ^(p,w) = p a, δ^(q,w) = q a, p a dan q a adalah accepting state; atau δ^(p,w) = f, δ^(q,w) = f, dan f adalah accepting state. Hubungan dua state disebut distinguishable jika minimum terdapat sebuah string w yang menyebabkan δ^(p,w) berbeda jenis dengan δ^(q,w), maksudnya salah satunya berada di accepting state sedangkan yang lain bukan. Jika p adalah accepting state sedangkan q bukan, atau sebaliknya, maka pasangan state p dan q adalah distinguishable. 2. Table Filling Kita akan melakukan ujian ekuivalensi terhadap DFA yang paling kanan pada Gambar 1, yang mengandung tiga accepting state. State A, D, dan G adalah final state. Berdasarkan definisi ketiga state ini berbeda dengan state-state lainnya. Pada tabel berikut simpul x digunakan untuk menyatakan distinguishable.
Ekuivalensi State (Ed. 1) 2/5 Apakah A, D, dan G ekuivalen? a. Uji dengan string 111 δ(a,111) = D δ(d,111) = G δ(g,111) = G semuanya berada di final state b. Uji dengan string 11 δ(a,11) = C δ(d,11) = F δ(g,11) = F semuanya berada di non final state state A, D, G adalah ekuivalen G v X X V X X Uji ekuivalensi state B B C E F 11 D E G E δ^(b,11) = D sedangkan D ekuivalen dengan G maka perlu dilakukan pengujian terhadap pasangan state (B,E). Uji dengan string 111. δ^(b,111) = E δ^(e,111) = E Keduanya berada di non-final state B ekuivalen dengan E E X V X X Uji ekuivalensi state C C E F 1 D F G δ^(c,1) = D sedangkan D ekuivalen dengan G maka perlu dilakukan pengujian terhadap pasangan state (C,F). Uji dengan string 111. δ^(c,111) = F δ^(f,111) = F Keduanya berada di non-final state C ekuivalen dengan F V X Uji ekuivalensi state E E F 11 G E E distinguishable dengan F
Ekuivalensi State (Ed. 1) 3/5 State yang ekuivalen: (A,D,G), (B,E), (C,F) Dengan menyatukan state-state yang ekuivalen State baru yang mengandung label start state lama menjadi start state baru State-state baru yang mengandung label final state lama menjadi final state baru maka terbentuk DFA B. Uji Ekuivalensi State-State Dengan Input Alphabet 1. Definisi Eliminasi semua state yang tidak bisa dijangkau dari start state. Terhadap pasangan state (p,q), jika p F dan q F atau sebaliknya, maka tandai pasangan state (p,q) sebagai distinguishable. Untuk semua pasangan state (p,q) dan semua a Σ: 1. Hitung δ(p, a) = p a dan δ(q, a) = q a 2. Jika pasangan state (p a, q a ) telah ditandai sebagai distinguishable maka tandai (p, q) sebagai distinguishable 2. Mark and Reduce State A, D, dan G adalah final state. Berdasarkan definisi kedua maka state-state ini distinguishable dengan state-state lain yang non-final state. (A,D) belum diketahui hubungannya. (A,G) belum diketahui hubungannya. δ(b, 1) = C dan δ(c, 1) = D (C,D) sudah di-mark sebagai distinguishable (B,C) adalah distinguishable
Ekuivalensi State (Ed. 1) 4/5 (C,F) belum ada relasi sehingga (B,E) belum diketahui hubungannya. δ(b, 1) = C dan δ(f, 1) = G (C,G) sudah di-mark sebagai distinguishable (B,F) adalah distinguishable X δ(c, 1) = D dan δ(e, 1) = F (D,F) sudah di-mark sebagai distinguishable (C,E) adalah distinguishable X X δ(c, 1) = D dan δ(f, 1) = G (D,G) belum ada relasi sehingga (C,F) belum diketahui hubungannya. δ(d, 1) = E dan δ(g, 1) = E Keduanya berada pada state yang sama (D,G) adalah ekuivalen X X δ(e, 1) = F dan δ(f, 1) = G (F,G) sudah di-mark (E,F) adalah distinguishable (A,D) belum diketahui hubungannya. X X X (A,G) belum diketahui hubungannya. (C,F) belum ada relasi sehingga (B,E) belum diketahui hubungannya. δ(c, 1) = D dan δ(f, 1) = G (D,G) adalah ekuivalen maka (C,F) adalah ekuivalen X
Ekuivalensi State (Ed. 1) 5/5 (C,F) adalah ekuivalen maka (B,E) adalah ekuivalen (B,E) adalah ekuivalen maka (A,D) adalah ekuivalen (B,E) adalah ekuivalen maka (A,G) adalah ekuivalen Pasangan state yang ekuivalen: (D,G), (C,F), (B,E), (A,D), (A,G) Karena D ekuivalen dengan G, G ekuivalen dengan A maka A,D,G ekuivalen State-state baru: ADG, BE, CF Start state: ADG Final state: ADG Referensi Hopcroft, E. John, Rajeev Motwani, Jeffrey D. Ullman, (2001), Introduction to Automata Theory, Languages, and Computation, 2 nd edition, Addison-Wesley Linz, P,(1990), An Introduction to Formal Languages and Automata, Heath