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):
Ambil sebuah FA (DFA atau NFA) yang menerima bahasa .
Gunakan algoritma penelusuran graf (seperti BFS atau DFS) untuk mencari semua state yang dapat dijangkau (reachable) dari start state.
Periksa apakah ada setidaknya satu final state di antara state-state yang dapat dijangkau tersebut.
Jika ada, maka . Jika tidak ada, maka .
Masalah Keanggotaan (The Membership Problem)
Pertanyaan: Diberikan sebuah bahasa regular dan sebuah string , apakah ?
Algoritma (menggunakan DFA):
Ambil DFA yang menerima .
Lakukan simulasi dengan menjalankan DFA tersebut menggunakan string w sebagai input, simbol per simbol.
Setelah semua simbol habis dibaca, periksa di state mana DFA tersebut berhenti.
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):
Ide utamanya adalah memeriksa apakah perbedaan simetris antara kedua bahasa tersebut kosong: ?
Ambil DFA untuk dan untuk .
Bangun {product} automaton dari dan .
Tentukan himpunan final state baru Fproduct sebagai berikut: sebuah state pasangan adalah final jika salah satunya final, tapi tidak keduanya. ( dan , ATAU dan ).
Jalankan algoritma pengecekan kekosongan pada Aproduct ini.
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):
Ide utamanya adalah memeriksa apakah ?
Ambil DFA untuk dan untuk .
Bangun {product} automaton .
Tentukan himpunan final state baru sebagai berikut: sebuah state pasangan adalah final jika adalah final state di DAN adalah state non-final di .
Jalankan algoritma pengecekan kekosongan pada ini.
Jika bahasa dari adalah kosong, maka tidak ada string di yang tidak ada di , sehingga terbukti .$
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.
Additional Information (Optional)
Decidability adalah Sebuah Kemewahan
Kemampuan untuk menjawab semua pertanyaan ini secara algoritmik (bersifat decidable) adalah sebuah “kemewahan” yang dimiliki oleh Bahasa Regular. Saat kita mempelajari kelas bahasa yang lebih kuat nanti (seperti Bahasa Bebas Konteks/Context-Free Languages), beberapa pertanyaan ini, terutama masalah kesetaraan, menjadi tidak dapat diputuskan (undecidable). Artinya, tidak akan pernah ada algoritma komputer yang bisa menjawabnya dengan benar untuk semua kemungkinan kasus. Hal ini menunjukkan betapa “jinak” dan terstrukturnya dunia Bahasa Regular.
Eksplorasi Mandiri
- Hubungan Ketercakupan dan Kesetaraan: Pikirkan sejenak, bagaimana Anda bisa menggunakan algoritma untuk masalah ketercakupan untuk menyelesaikan masalah kesetaraan? (Petunjuk: Dua himpunan L dan M adalah sama jika dan hanya jika L⊆M DAN M⊆L).