Back to IF2224 Teori Bahasa Formal dan Otomata

Topic

Questions/Cues

  • Apa tujuan minimisasi DFA?

  • Apa itu state Indistinguishable (pequivq)?

  • Apa itu state Distinguishable (pnotequivq)?

  • Bagaimana cara kerja Table-Filling Algorithm?

  • Bagaimana langkah basisnya?

  • Bagaimana langkah induksinya?

  • Bagaimana membangun DFA minimal dari hasil tabel?

Reference Points

  • 2021_Bab-4-Sifat-Sifat-Bahasa-Regular.pdf: 33-45

  • 2023_Properties of Regular Languages.pdf: 31-45

Tujuan dan Konsep Dasar Minimisasi

Minimisasi DFA adalah sebuah proses untuk mengurangi jumlah state pada sebuah DFA tanpa mengubah bahasa yang diterimanya. Tujuannya adalah untuk mendapatkan DFA yang paling efisien dan merupakan representasi kanonikal (standar) untuk suatu bahasa regular.

Ide utamanya adalah dengan menemukan semua state yang “berperilaku” sama, lalu menggabungkannya menjadi satu state. State-state yang bisa digabung ini disebut indistinguishable.

State yang Dapat dan Tidak Dapat Dibedakan

  • Distinguishable (Dapat Dibedakan / )

    Dua state p dan q disebut dapat dibedakan jika ada setidaknya satu string w yang bisa memisahkan mereka. Artinya, jika dimulai dari p dengan input w, mesin berakhir di final state, sedangkan jika dimulai dari q dengan input w, mesin berakhir di non-final state (atau sebaliknya).

  • Indistinguishable (Tidak Dapat Dibedakan / )

    Dua state p dan q disebut tidak dapat dibedakan jika untuk semua kemungkinan string w, keduanya akan selalu berakhir di jenis state yang sama (keduanya di final state, atau keduanya di non-final state). Perilaku mereka identik untuk masa depan.

The Table-Filling Algorithm

Ini adalah algoritma sistematis untuk menemukan semua pasangan state yang dapat dibedakan (distinguishable). Pasangan yang tersisa (tidak ditandai) adalah pasangan yang tidak dapat dibedakan.

  1. Langkah 1: Inisialisasi Tabel Buat sebuah tabel untuk semua pasangan state unik di DFA.

  2. Langkah 2: Basis Tandai (misalnya dengan ‘X’) semua pasangan di mana salah satunya adalah final state dan yang lainnya bukan. Pasangan ini jelas dapat dibedakan oleh string kosong .

  3. Langkah 3: Induksi

  • Ulangi proses berikut sampai tidak ada lagi tanda ‘X’ baru yang bisa ditambahkan dalam satu putaran penuh:
    • Untuk setiap pasangan yang belum ditandai:
      • Untuk setiap simbol input :
        • Cari tahu state tujuan: dan .
        • Jika pasangan sudah ditandai ‘X’ di tabel, maka tandai juga pasangan dengan ‘X’.

Membangun DFA Minimal

Setelah algoritma selesai, semua pasangan yang tidak ditandai ‘X’ adalah pasangan state yang indistinguishable.

  1. Bentuk Kelas Ekuivalensi: Kelompokkan semua state yang tidak dapat dibedakan satu sama lain. Setiap kelompok ini akan menjadi satu state baru di DFA minimal.

  2. Tentukan State Baru:

    • Start State: State baru yang mengandung start state lama.

    • Final State: Semua state baru yang mengandung setidaknya satu final state lama.

    • Transisi: Transisi dari sebuah state kelompok baru (misal, dari A,E dengan input ‘0’) ditentukan dengan melihat transisi dari salah satu anggota aslinya (misal, dari A dengan input ‘0’) dan menunjuk ke state kelompok baru yang menampung tujuannya.

Summary

Minimisasi DFA adalah proses algoritmik untuk menemukan DFA dengan jumlah state paling sedikit yang menerima bahasa yang sama. Proses ini dicapai dengan menggunakan Table-Filling Algorithm untuk mengidentifikasi semua pasangan state yang tidak dapat dibedakan (indistinguishable)—yaitu state-state yang memiliki perilaku identik untuk semua kemungkinan input di masa depan. State-state yang tidak dapat dibedakan ini kemudian digabungkan menjadi satu state baru, menghasilkan sebuah DFA minimal yang unik untuk bahasa regular tersebut.