Sebuah expresssion biasa didefinisikan secara rekursif sebagai
- untuk beberapa adalah ekspresi reguler,
- adalah ekspresi reguler,
- adalah ekspresi reguler,
- mana dan adalah ekspresi reguler adalah ekspresi reguler,
- mana dan adalah ekspresi reguler adalah ekspresi reguler,
- mana adalah ekspresi reguler adalah ekspresi reguler.
Definisi ini diambil dari halaman 64 dari
Sipser, Michael. Pengantar Teori Komputasi, edisi ke-3. Cengage Learning, 2012.
Sekarang, saya punya pertanyaan berikut.
- Mengapa definisi tersebut tidak mengandung
intersection
,complement
ataureverse
operasi? - Jika kita mengubah item ke-4 menjadi , apakah kita mendapatkan definisi yang setara, yaitu untuk setiap bahasa reguler, ada ekspresi reguler yang dimodifikasi dan sebaliknya?
- Saya tahu bahwa definisi ini lengkap dan terdefinisi dengan baik, tetapi mengapa lebih disukai daripada definisi lain yang setara, terdefinisi dengan baik dan lengkap?
formal-languages
regular-languages
regular-expressions
Ali Shakiba
sumber
sumber
Jawaban:
1) Jika kita juga mengizinkan persimpangan dan komplemen, maka ekspresi yang dihasilkan kadang-kadang disebut ekspresi reguler yang diperluas; karena bahasa reguler ditutup di bawah operasi boolean tidak ada yang diperoleh oleh mereka. Ini hanya gula sintaksis. Kesimpulan serupa berlaku untuk operasi terbalik. Sebagian alasan mengapa pada contoh pertama semua operasi lain tidak disebutkan adalah tujuan menjaga definisi sesederhana mungkin, sehingga bukti (induktif) tidak harus menangani banyak kasus. Penyebab lain mungkin adalah bahwa jika kita mengizinkan operasi tertentu, tetapi yang lain tidak, dalam beberapa kasus hasil kelas bahasa yang sangat berbeda (tidak teratur), misalnya jika kita mempertimbangkan perluasan ekspresi reguler tanpa operator bintang, maka kita mendapatkan subkelas yang tepat dari yang reguler , yang disebut bahasa bebas bintang atau aperiodik, lihat wikipedia: bahasa bebas bintang .
2) Jika kita menyimpan item 1. - 6. tetapi hanya mengubah item 4. dalam menggunakan persimpangan bukan penyatuan, kita mendapatkan subkelas yang tepat dari bahasa reguler. Sebagai contoh kita tidak bisa lagi menggambarkan bahasa karena akan melibatkan penyatuan { a } dan { b } (lihat bukti di bawah). Jika kita mengizinkan pelengkap, segalanya berubah karena kita memiliki penyatuan kembali oleh hukum DeMorgan.L={a,b} {a} {b}
3) Ini sebagian saya jawab dalam 1), tetapi apa yang Anda maksud ketika Anda mengatakan bahwa definisi ini lebih disukai? Saya tahu definisi di mana 2. dihilangkan (seperti yang kita miliki dengan 6. bahwa ), atau 3. dihilangkan (seperti yang kita miliki ∅ = L ( ¯ X ∗ )), atau keduanya dihilangkan ; jadi ini bukan definisi seminimal mungkin (itu memberi kita juga beberapa gula sintaksis karena kita memiliki simbol tambahan untuk menggambarkan { ε } dan ∅ ).L(∅∗)={ε} ∅=L(X∗¯¯¯¯¯¯¯ {ε} ∅
EDIT : Komentar pertama saya yang disebutkan dalam 2) salah, bahasa dalam penutupan induktif di bawah , ∗ dan ∩ tidak selalu merupakan himpunan bagian dari x ∗ untuk beberapa x ∈ X , misalnya pertimbangkan L ( a ∘ b ) = { a b } . Namun demikian kita memiliki bahwa L = { a , b } tidak dapat dijelaskan dengan ungkapan seperti itu. Saya akan memberikan bukti, yaitu saya membuktikan bahwa jika L = L ( R )∘ ∗ ∩ x∗ x∈X L(a∘b)={ab} L={a,b} L=L(R) untuk beberapa ekspresi dengan item-4 diubah, maka jika (dan karenanya a ≠ b )
{ a , b } ⊆ L ⇒ a b ∈ L .
Buktinya berjalan dengan induksi pada ekspresi R . Untuk kasing pangkalan kosong, sekarang anggap berlaku untuk L ( R 1 ) , L ( R 2 ) . Jika L = L ( R 1 ∩X={a,b} a≠b
Keterangan: Satu kesimpulan yang umum digunakan: Jika , maka u = a atau w = a . Ini mengikuti sebagai 1 = | a | = | u w | = | kamu | + | w | , karenanya | kamu | = 0 dan | w | = 1 atau | kamu | = 1 dan | w | =a = u w u = a w = a 1 = | a | = | u w | = | kamu | + | w | | kamu | =0 | w | =1 | kamu | =1 . Dalam kasus pertama kita memiliki u = ε dan karenanya a = w .| w | =0 u = ε a = w
sumber
Laporan teknis yang memperkenalkan bahasa reguler, ekspresi reguler, dan automata terbatas menanyakan pertanyaan Anda di halaman 70:
(Segera setelah itu, dicatat bahwaE∗ adalah operator yang lebih nyaman daripada E∗ F dan setara dalam kekuasaan. Jadi hari ini, kami menggunakan E∗ sebagai gantinya.)
Jawabannya menempati beberapa halaman. Pertama, dikatakan bahwa jawabannya harus dicari apakah bahasa yang dihasilkan membentuk kelas yang menarik dan bagaimana mereka membandingkan dengan bahasa yang dijelaskan dengan cara lain. Pada halaman 72, dikatakan bahwa negasi dan konjungsi itu berlebihan: mereka tidak menambah kekuatan ekspresif. Pada halaman 80 dan selanjutnya, terbukti bahwa bahasa reguler adalah bahasa yang dikenali oleh mesin negara hingga.
Dengan kata lain: Jawaban Stefan dapat dengan aman dianggap konklusif, seperti yang sudah diberikan dalam laporan yang pertama kali memperkenalkan konsep-konsep ini.
sumber
Dari pemilihan operator ini (penyatuan, gabungan, dan bintang) orang dapat membangun NFA dengan ukuran linier dengan ukuran ekspresi. Di sisi lain, jika Anda menambahkan persimpangan dan komplementasi, ukuran otomat setara dapat meledak secara non-elemen, yang biasanya tidak diinginkan.
sumber