Peminimuman automaton
Peminimuman automaton bermaksud mencari automaton setara yang mempunyai bilangan keadaan yang paling sedikit. Automaton yang tiada keadaan lewah pun masih boleh dipermudah lagi.
Contoh
Ambil automaton berikut:
Automaton ini hanya menerima rentetan 01 dan 11. Jelas bahawa terdapat automaton yang lebih mudah dengan tiga keadaan yang menerima bahasa yang sama. Keadaan q1 dan q2 boleh digabungkan menjadi satu keadaan baharu {q1, q2}. Peralihan yang dahulunya menuju ke keadaan q1 atau q2 kini menuju ke keadaan baharu itu, dan begitu juga peralihan yang keluar dari q1 dan q2. Kita memperoleh automaton berikut:
Jelas bahawa automaton ini menerima bahasa yang sama seperti automaton sebelumnya, tetapi bilangan keadaannya lebih sedikit.
Kesetaraan keadaan
Katakan kita mempunyai automaton A = ⟨Q, Σ, δ, q0, F⟩. Kita mentakrifkan bahasa bagi suatu keadaan q ∈ Q, ditandakan dengan L(q), sebagai
Maksudnya, kita menukar keadaan awal automaton A daripada q0 kepada q dan mengira bahasa yang diterima oleh automaton ini. Dengan kata lain, bahasa L(q) mengandungi semua rentetan w yang memenuhi syarat berikut: dalam automaton A, rentetan w membawa kita dari keadaan q ke keadaan akhir automaton. Jika kita kembali kepada automaton tadi, L(q1) = {1}.
Kita katakan bahawa dua keadaan berbeza q1 dan q2 setara jika
Apakah maksudnya? Jika keadaan q1, q2 setara, kedua-duanya menjana bahasa yang sama apabila dijadikan keadaan awal automaton. Dengan kata lain: jika automaton sampai ke konfigurasi ⟨q1, w⟩ dan ⟨q2, w⟩, automaton itu mesti sama ada menerima rentetan dalam kedua-dua kes atau menolaknya dalam kedua-dua kes.
Kembali kepada automaton tadi: keadaan q1 dan q2 setara kerana jika kita berada pada keadaan q1, kita hanya boleh menerima rentetan input jika bahagian rentetan yang belum dibaca sama dengan 1. Hal yang sama berlaku jika kita berada pada keadaan q2.
Jadi, peminimuman automaton bertujuan mencari keadaan setara dan menghapuskannya dengan menggabungkannya menjadi satu keadaan baharu, seperti yang kita lakukan dalam contoh di atas.
Cara mencari keadaan setara
Keadaan manakah yang pasti tidak setara? Keadaan akhir dan keadaan bukan akhir pasti tidak setara kerana bahasa bagi keadaan akhir berbeza daripada bahasa bagi keadaan bukan akhir — keadaan akhir pasti menerima rentetan ε, manakala keadaan bukan akhir tidak. Mari kita terus melihat caranya melalui contoh. Katakan kita mempunyai automaton berikut:
Kita mulakan dengan membina dua set keadaan
Sekarang kita membina jadual peralihan dan mengekalkan maklumat tentang kumpulan S1 dan S2:
Kemudian kita ubah jadual ini: daripada menulis keadaan yang dituju bagi setiap simbol, kita hanya mencatat kumpulan yang dituju. Contohnya, dari keadaan q3, bagi 0 kita sampai ke keadaan q5, yang berada dalam kumpulan S2. Jadi, kita tulis S2 dalam jadual menggantikan q5:
Sekarang kita membahagikan kedua-dua kumpulan dengan lebih lanjut. Kita meletakkan dalam kumpulan yang sama keadaan-keadaan yang menuju ke kumpulan yang sama bagi semua simbol. Contohnya, keadaan q3 dan q6 tidak berada dalam kumpulan yang sama kerana kedua-duanya tidak menuju ke kumpulan yang sama, sama ada bagi 0 mahupun bagi 1. Sebaliknya, keadaan q1 dan q2 berada dalam kumpulan yang sama kerana kedua-duanya tiada peralihan bagi 0, dan bagi 1 kedua-duanya menuju ke kumpulan S1. Kita membina kumpulan baharu seperti berikut:
Dalam setiap kumpulan, peralihannya sama. Kita namakan kumpulan baharu ini dan sekali lagi menentukan kumpulan baharu yang dituju oleh setiap keadaan:
Pada ketika ini kita membahagikan kumpulan sekali lagi. Namun, kita lihat bahawa pembahagian lanjut tidak mungkin lagi kerana kita akan memperoleh kumpulan yang sama — keadaan q1 dan q2 memang mempunyai peralihan yang sama dari segi kumpulan, tetapi kedua-duanya sudah berada dalam kumpulan yang sama dan tiada keadaan lain dalam kumpulan S4. Algoritma mencari keadaan setara telah selesai. Daripada setiap kumpulan kita cukup memilih satu keadaan dan memadamkan keadaan yang lain. Semua peralihan yang dahulunya menuju ke keadaan yang dipadamkan kini menuju ke keadaan yang dipilih itu.
Oleh itu, kita boleh memilih keadaan q3, q6, q0, q1, q4 untuk automaton baharu kita dan membuang keadaan q2 dan q5. Semua peralihan yang dahulunya menuju ke q2 kini menuju ke q1, dan semua peralihan yang dahulunya menuju ke q5 kini menuju ke q4:
Langkah peminimuman automaton
- Buang keadaan tak tercapai,
- buang keadaan lewah,
- buang keadaan setara.
Sumber
Kandungan: Keadaan tak tercapai, Keadaan lewah, Peminimuman automaton