CSG3D3 | Teori Komputasi
Minimum DFA
Agung Toto Wibowo Ahmad Suryan Yanti Rusmawati Mahmud Dwi Sulistiyo Kurniawan Nur Ramadhani Said Al Faraby Dede Rohidin
KK Intelligence, Computing, and Multimedia
Bahasan Finite Automata
Teori Komputasi | CSG3D3
Minimum FA Pada saat kita memiliki Finite Automata M, kita dapat mencari Finite Automata yang ekivalen dengan jumlah state yang lebih sedikit atau dapat dikatakan sebagai Minimum FA yang ekivalen. Hal tersebut dilakukan dengan 1. Mengeliminasi semua state yang tidak dapat diakses dari initial state di M (inaccessible states). 2. Menggabungkan semua state redundan di M (indistinguishable states).
Teori Komputasi | CSG3D3
Contoh DFA yang Tidak Minimum
Teori Komputasi | CSG3D3
Langkah-langkah meminimumkan DFA 1. 2. 3. 4.
Eliminasi semua Inaccessible states Ubah menjadi DFA jika masih berbentuk NDFA Identifikasi dan gabungkan Indistinguishable states Gambarkan STD-nya
Teori Komputasi | CSG3D3
Inaccessible State Suatu state dikatakan Inaccessible jika untuk semua kemungkinan string dari * yang dibaca tidak ada yang pernah mencapai state tersebut. Contoh pada DFA ini adalah state F dan G. State F dan G dihapus
Teori Komputasi | CSG3D3
Indistinguishable/Ekivalen State [1] Dua buah state, misalnya p dan q, dikatakan Indistinguishable/Ekivalen jika dan hanya jika memenuhi dua syarat berikut. – untuk setiap kemungkinan w, jika hasil perluasan aturan ’(p, w) adalah accepted state, maka hasil perluasan aturan ’(q, w) juga accepted state. – untuk setiap kemungkinan w, jika hasil perluasan aturan ’(p, w) adalah bukan accepted state, maka untuk ’(q, w) juga bukan accepted state. Dua buah state, misalnya p dan q, dapat dibedakan (distinguishable/tidak ekivalen) jika ada string w yang memperluas fungsi transisi ’(p, w) dan ’(q, w), di mana salah satu hasilnya adalah accepted state dan yang satunya lagi bukan accepted state.
Teori Komputasi | CSG3D3
Indistinguishable/Ekivalen State [2] Dalam proses minimasi DFA, setelah inaccesible state dihilangkan dan dipastikan FA yang dimiliki sudah deterministik, langkah berikutnya adalah mengeliminasi distinguishable states. Untuk mengenalinya, dilakukan pengecekan setiap pasang state yang tersisa. Untuk memudahkan, dibuat tabel sederhana sebagai berikut.
Teori Komputasi | CSG3D3
Contoh Distinguishable State [1] Setiap non-accepted state pasti distinguishable dengan setiap accepted state (cukup melihat hasil perluasan transisi dengan λ) – A dengan C, karena ’(A, λ) = A (bukan accepted state) dan ’(C, λ) = C (accepted state) – Demikian juga antara B dengan C, – D dengan C, – A dengan E, – B dengan E, dan – D dengan E Keterangan: X = distinguishable, O = indistinguishable Label di bawah ‘X’ menyatakan string w yang membuatnya distinguishable
Teori Komputasi | CSG3D3
Contoh Distinguishable State [2] Contoh lainnya (temukan string w untuk memperluas fungsi transisi yang membuat keduanya distinguisable) – A dengan B – A dengan D
Teori Komputasi | CSG3D3
Contoh Indistinguishable State Antara B dan D – ’(B, 1) = C (accepted state) dan ’(D, 1) = E (accepted state) Antara C dan E
– ’(C, 1) = E (accepted state) dan ’(E, 1) = C (accepted state) Jika ditelusuri lebih lanjut, ternyata dari kedua state tersebut akan selalu memberikan hasil yang sama-sama accepted atau non-accepted
Teori Komputasi | CSG3D3
Hasil Reduksi ke Minimum DFA Kita hilangkan state F dan G (karena inaccessible) Kita gabungkan antara B dan D (karena indistinguishable) Kita gabungkan antara C dan E (karena Indistinguishable) Gambarkan kembali STD sehingga menjadi Minimum DFA yang ekivalen dengan DFA asalnya
Teori Komputasi | CSG3D3
Latihan [1] Ubah DFA berikut menjadi Minimum DFA yang ekivalen!
Teori Komputasi | CSG3D3
Latihan [2] Ubah DFA berikut menjadi Minimum DFA yang ekivalen!
Teori Komputasi | CSG3D3
Latihan [3] Ubah DFA berikut menjadi Minimum DFA yang ekivalen!
Teori Komputasi | CSG3D3