Back to IF2224 Teori Bahasa Formal dan Otomata
Bacalah Subab dibawah ini, dari buku Automata Theory, Language, and Computation Introduction (terlampir):
- Algebraic Laws for Regular Expressions (Ch. 3.4)
- Pumping Lemma (Ch. 4.1)
- Closure Properties (Ch. 4.2)
- Decision Properties (Ch. 4.3)
- Minimization Techniques (Ch. 4.4)
Untuk setiap sub-bab, Jelaskan minimal 1 contoh persoalan dari hasil bacaan yang menurutmu paling jelas menjelaskan konsep tersebut. Sertakan refleksinya:
- Untuk setiap sub-bab, jawab:
- Apa hal baru yang kamu pahami dari bacaan?
- Bagaimana hubungan materi ini dengan konsep automata/regex yang sudah kamu ketahui sebelumnya?
- Menurutmu, di mana konsep ini bermanfaat dalam dunia nyata (misalnya compiler, pencarian teks, dll)?
- Format Output
Ditulis tangan di kertas, lalu difoto (save PDF) kemudian disubmit.
Struktur untuk per sub-bab:- Contoh
- Refleksi
1. Pumping Lemma (Ch. 4.1)
Konsep Pumping Lemma untuk Bahasa Reguler adalah alat yang digunakan untuk membuktikan bahwa suatu bahasa tidak bersifat reguler. Intinya, jika suatu bahasa adalah reguler, maka setiap string yang cukup panjang () dalam dapat dipecah menjadi tiga bagian, , sedemikian rupa sehingga bagian tengah () dapat diulang (pumped) berkali-kali (termasuk nol kali) dan string hasilnya () masih tetap berada di dalam bahasa .
Contoh Persoalan yang Paling Jelas Menjelaskan Konsep:
Contoh yang paling jelas adalah bahasa yang didefinisikan sebagai . Bahasa ini terdiri dari string-string yang memiliki sejumlah ‘a’ diikuti oleh jumlah ‘b’ yang sama (misalnya, , , , dst.).
Untuk membuktikan tidak reguler menggunakan Pumping Lemma, kita harus menganggapnya sebagai permainan adversari:
- Pemain 1 (Adversari) memberikan konstanta (yang merupakan jumlah keadaan/state dalam DFA yang diduga mengenali ).
- Kita memilih string dari yang panjangnya jelas lebih besar dari (yaitu, ).
- Pemain 1 memecah menjadi , dengan syarat (tidak kosong) dan .
- Karena panjang maksimal , dan dimulai dengan huruf ‘a’, maka dan hanya boleh terdiri dari simbol ‘a’.
- Kita memilih nilai pump (menghilangkan ), sehingga menghasilkan string baru .
- Karena berisi setidaknya satu ‘a’ () dan kita menghilangkannya, string sekarang memiliki jumlah ‘a’ yang lebih sedikit daripada , tetapi masih memiliki buah ‘b’.
- Karena tidak lagi memiliki jumlah ‘a’ dan ‘b’ yang sama, tidak berada dalam .
Hal ini kontradiksi dengan Pumping Lemma (yang menyatakan harus ada di ), sehingga membuktikan bahwa bukanlah bahasa reguler.
Refleksi Pribadi
-
Apa hal baru yang kamu pahami dari bacaan? Hal baru yang saya pahami adalah bahwa Pumping Lemma menyediakan metode formal dan meyakinkan untuk mendefinisikan batas kemampuan bahasa reguler. Pemahaman intuitif bahwa DFA (yang memiliki jumlah state terbatas) tidak dapat “mengingat” hitungan yang tidak terbatas (seperti memastikan dan berjumlah sama) kini diformalkan melalui konstanta dalam lemma tersebut dan konsep permainan adversari.
-
Bagaimana hubungan materi ini dengan konsep automata/regex yang sudah kamu ketahui sebelumnya? Materi sebelumnya mengajarkan bahwa DFA, NFA, -NFA, dan Ekspresi Reguler semuanya mendefinisikan kelas bahasa yang sama: Bahasa Reguler. Pumping Lemma berfungsi sebagai ujian negatif bagi kelas ini. Jika suatu bahasa terbukti melanggar lemma ini, maka bahasa tersebut tidak mungkin diakui oleh DFA atau didefinisikan oleh Ekspresi Reguler mana pun.
-
Menurutmu, di mana konsep ini bermanfaat dalam dunia nyata (misalnya compiler, pencarian teks, dll)? Konsep ini sangat bermanfaat dalam desain kompiler, khususnya untuk membedakan antara tugas analisis leksikal dan parsing. Tugas yang dapat diatasi oleh DFA (seperti mengenali token, yang merupakan Bahasa Reguler) harus dipisahkan dari tugas yang membutuhkan “memori” tak terbatas (seperti memeriksa keseimbangan tanda kurung atau struktur bersarang), yang harus ditangani oleh Context-Free Grammars dan parser yang lebih kuat.
2. Closure Properties (Ch. 4.2)
Closure Properties (Sifat Ketertutupan) Bahasa Reguler adalah serangkaian teorema yang menyatakan bahwa jika kita melakukan operasi tertentu (seperti gabungan, irisan, atau komplemen) pada satu atau lebih Bahasa Reguler, hasilnya juga akan menjadi Bahasa Reguler.
Contoh Persoalan yang Paling Jelas Menjelaskan Konsep:
Contoh yang paling jelas dan transformatif dalam menjelaskan sifat ketertutupan adalah Ketertutupan di bawah Operasi Irisan (Intersection).
Teorema: Jika dan adalah bahasa reguler, maka (irisan dan ) juga merupakan bahasa reguler.
Penjelasan Konsep melalui Konstruksi Produk (Product Construction):
Untuk membuktikannya, kita menggunakan representasi DFA:
- Misalkan kita memiliki DFA yang mengenali , dan DFA yang mengenali .
- Kita membangun DFA baru, , yang mengenali .
- Konstruksi Produk ini menciptakan state baru di yang berupa pasangan dari state di dan , yaitu . Tujuannya adalah menjalankan dan secara paralel.
- Sebuah string diterima oleh jika dan hanya jika diterima oleh kedua DFA, dan .
- Oleh karena itu, keadaan penerimaan () dari DFA adalah semua pasangan state di mana adalah state penerimaan di dan adalah state penerimaan di .
DFA yang dihasilkan adalah representasi formal dari irisan dan , sehingga membuktikan bahwa hasil irisan tersebut tetap merupakan bahasa reguler.
Refleksi Pribadi
-
Apa hal baru yang kamu pahami dari bacaan? Hal baru yang saya pahami adalah fleksibilitas pembuktian sifat ketertutupan, di mana memilih representasi yang tepat (DFA atau Ekspresi Reguler) sangat penting. Bukti untuk Union menjadi trivial menggunakan Ekspresi Reguler (), sementara bukti untuk Complementasi dan Irisan menjadi mudah hanya jika menggunakan DFA (dengan membalik final states atau menggunakan Product Construction).
-
Bagaimana hubungan materi ini dengan konsep automata/regex yang sudah kamu ketahui sebelumnya? Materi ini memperkuat keyakinan bahwa DFA dan Ekspresi Reguler adalah sama kuatnya, karena semua operasi dasar yang dapat dilakukan pada satu representasi dapat ditiru pada representasi lainnya (walaupun mungkin memerlukan konstruksi yang rumit, seperti mengonversi hasil komplemen DFA kembali ke Ekspresi Reguler). Sifat ketertutupan menunjukkan kekokohan kelas Bahasa Reguler.
-
Menurutmu, di mana konsep ini bermanfaat dalam dunia nyata (misalnya compiler, pencarian teks, dll)? Closure Properties sangat bermanfaat dalam verifikasi sistem digital dan protokol komunikasi. Misalnya, jika kita memodelkan dua aspek berbeda dari suatu protokol (seperti urutan yang sah untuk pengiriman dan penerimaan data) menggunakan dua DFA berbeda. Untuk memastikan sistem secara keseluruhan berfungsi dengan benar (misalnya, kondisi ), kita dapat secara mekanis membangun DFA gabungan () yang memvalidasi kedua kondisi secara simultan. Kemampuan ini memungkinkan algoritma model checking untuk memverifikasi protokol.