Back to IF2224 Teori Bahasa Formal dan Otomata

Topic

Questions/Cues

  • Apa itu Sifat Keputusan?

  • Bagaimana menguji Kekosongan (Emptiness)?

  • Bagaimana menguji Keanggotaan (Membership)?

  • Bagaimana menguji Kesetaraan (Equivalence)?

  • Bagaimana menguji Ketercakupan (Containment)?

  • Apa peran Product Automaton?

Reference Points

  • 2021_Bab-4-Sifat-Sifat-Bahasa-Regular.pdf: 17-32

  • 2023_Properties of Regular Languages.pdf: 26-37

Apa itu Sifat Keputusan (Decision Property)?

Sifat Keputusan adalah sebuah algoritma yang dapat menjawab pertanyaan “YA/TIDAK” tentang suatu bahasa atau automata. Untuk kelas Bahasa Regular, kita beruntung karena semua pertanyaan fundamentalnya dapat diputuskan (bersifat decidable), artinya selalu ada algoritma yang bisa memberikan jawaban pasti.

Masalah Kekosongan (The Emptiness Problem)

  • Pertanyaan: Diberikan sebuah bahasa regular , apakah ? (Apakah bahasa tersebut tidak mengandung string sama sekali?)

  • Algoritma (menggunakan FA):

    1. Ambil sebuah FA (DFA atau NFA) yang menerima bahasa .

    2. Gunakan algoritma penelusuran graf (seperti BFS atau DFS) untuk mencari semua state yang dapat dijangkau (reachable) dari start state.

    3. Periksa apakah ada setidaknya satu final state di antara state-state yang dapat dijangkau tersebut.

    4. Jika ada, maka . Jika tidak ada, maka .

Masalah Keanggotaan (The Membership Problem)

  • Pertanyaan: Diberikan sebuah bahasa regular dan sebuah string , apakah ?

  • Algoritma (menggunakan DFA):

    1. Ambil DFA yang menerima .

    2. Lakukan simulasi dengan menjalankan DFA tersebut menggunakan string w sebagai input, simbol per simbol.

    3. Setelah semua simbol habis dibaca, periksa di state mana DFA tersebut berhenti.

    4. Jika DFA berhenti di sebuah final state, maka . Jika tidak, maka .

Masalah Kesetaraan (The Equivalence Problem)

  • Pertanyaan: Diberikan dua bahasa regular dan , apakah ?

  • Algoritma (menggunakan Product Automaton):

    1. Ide utamanya adalah memeriksa apakah perbedaan simetris antara kedua bahasa tersebut kosong: ?

    2. Ambil DFA ​ untuk dan ​ untuk .

    3. Bangun {product} automaton dari ​ dan ​.

    4. Tentukan himpunan final state baru Fproduct​ sebagai berikut: sebuah state pasangan adalah final jika salah satunya final, tapi tidak keduanya. (​ dan ​, ATAU ​ dan ​).

    5. Jalankan algoritma pengecekan kekosongan pada Aproduct​ ini.

    6. Jika bahasa dari ​ adalah kosong, maka . Jika tidak, maka .

Masalah Ketercakupan (The Containment Problem)

  • Pertanyaan: Diberikan dua bahasa regular dan , apakah ? (Apakah semua string di juga ada di ?)

  • Algoritma (menggunakan Product Automaton):

    1. Ide utamanya adalah memeriksa apakah ?

    2. Ambil DFA ​ untuk dan ​ untuk .

    3. Bangun {product} automaton ​.

    4. Tentukan himpunan final state baru ​ sebagai berikut: sebuah state pasangan adalah final jika adalah final state di DAN adalah state non-final di ​.

    5. Jalankan algoritma pengecekan kekosongan pada ​ ini.

    6. Jika bahasa dari ​ adalah kosong, maka tidak ada string di yang tidak ada di , sehingga terbukti .$

Summary

Kelas Bahasa Regular memiliki sifat-sifat keputusan yang kuat, artinya terdapat algoritma yang pasti untuk menjawab pertanyaan fundamental tentangnya. Kekosongan bahasa dapat diuji dengan memeriksa keterjangkauan final state dari start state. Keanggotaan sebuah string dapat diuji dengan simulasi DFA. Sementara itu, masalah yang lebih kompleks seperti Kesetaraan (L=M) dan Ketercakupan (L⊆M) dapat diselesaikan secara efektif dengan membangun sebuah Product Automaton yang merepresentasikan perbedaan antar bahasa, lalu mengujinya untuk kekosongan.