Buktikan bahwa bahasa reguler ditutup di bawah operator siklus


8

Saya mendapat ujian beberapa hari dan memiliki masalah untuk menyelesaikan tugas ini.

Membiarkan L menjadi bahasa biasa di atas alfabet Σ. Kami memiliki operasi cycle(L)={xyx,yΣ and yxL} Dan sekarang kita harus menunjukkan itu cycle(L) juga biasa.

Referensi adalah bahwa kita dapat membangun dari DFA D=(Q,Σ,δ,q0,F) dengan L(D)=L Sebuah ϵ-NFA N dengan L(N)=cycle(L) dan 2·|Q|2+1 menyatakan.


Latihan 5.4 , jatuh tempo 24 Mei.
Raphael

Jawaban:


15

Idenya adalah untuk memutuskan secara nondeterministis pada awal berapa banyak kata tersebut didaur ulang, dan memiliki salinan otomat untuk setiap kasus. Dalam hal otomat, itu berarti kita menebak di negara manaD akan setelah mengkonsumsi awalan kata (yang merupakan akhiran dari input kami), dan mulai di negara itu.

Sekarang konstruksinya. Untuk setiap negara bagianqQ, terpisah D menjadi dua bagian A1 dan A2. A1 berisi status dari mana q terjangkau dan A2 negara yang dapat dijangkau dari q:

masukkan deskripsi gambar di sini
[ sumber ]

Perhatikan bahwa setiap node yang diberikan dapat terkandung di keduanya A1 dan A2. Oleh karena itu, jumlah negara dapat berlipat ganda jika kita membuat langkah ini eksplisit.

Sekarang kami memasang ulang otomat ini sehingga menerima semua kata q menandai "titik siklus":

masukkan deskripsi gambar di sini
[ sumber ]

Kita mendapatkan |Q|automata dari formulir ini; buat keadaan awal baru yang sudahε-transisi ke semua status awal mereka. Otomat yang dihasilkan menerimacycle(L). Secara keseluruhan, kami mendapatkan paling banyak|Q|(2|Q|+1)+1 hanya menyatakan |Q| lebih banyak status daripada klaim referensi yang dimungkinkan.

Anda bisa meraihnya 2|Q|2+1menyatakan dengan memodifikasi komponen automata sedikit; hilangkan semuaq0 dengan mengganti yang masuk ε-transisi dengan salinan transisi keluarnya. Yaitu, untuk setiap pasangan transisi(q1,ε,q0),(q0,a,q2), perkenalkan suatu transisi (q1,a,q2).

Konstruksi yang ketat dan bukti ketelitian tetap sebagai latihan.


tetapi bagaimana Anda dapat membuktikan ini Anda baru saja membangun sebuah nfa?
Sad Golduhren

3
@ SadGolduhren Raphael membuat NFA (ini terbatas karena ada batas yang terbatas pada jumlah negara bagian). Untuk melihat bahwa NFA ini mengenali bahasa yang sama dengan aslinya, amati jalur melalui automata:q0q dan qqF (dimana qF adalah kondisi akhir yang dicapai q) menjadi qqF dan q0q, dan qFϵq0menyelesaikan jalur.
Gilles 'SANGAT berhenti menjadi jahat'
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.