Membuktikan bahasa yang terdiri dari semua string dalam beberapa bahasa sama panjangnya dengan beberapa string dalam bahasa lain biasa

8

Jadi saya sudah menggaruk-garuk kepala karena masalah ini selama beberapa hari sekarang. Diberi beberapa bahasaAdan yang teratur, menunjukkan bahwa bahasa yang terdiri dari semua string dalam yang panjangnya sama dengan beberapa string dalam adalah bahasa biasa.BLAB

Dalam bentuk persamaan:

L={xAyB s.t. |x|=|y|}

Pikiran awal saya adalah mencoba dan menghasilkan beberapa DFA untuk kedua bahasa dan dan memetakan kedua negara satu sama lain dan mudah-mudahan mendapatkan rasio 1: 1 dengan cara itu saya dapat menghasilkan DFA baru yang membuktikan bahwa teratur. Tapi kemudian saya menyadari bahwa dan tidak harus lebih dari set simbol yang sama. ABLAB

Saya pikir cara yang benar untuk menyelesaikan ini adalah dengan menggunakan properti penutupan bahasa biasa, tapi saya tidak yakin bagaimana memulai / menggunakan properti untuk "panjang" string, bukan string sendiri.

Bisakah seseorang mengarahkan saya ke arah yang benar?

Gembira
sumber

Jawaban:

4

Ingat (atau buktikan) buktinya

L1,L2REGL1L2REG.

Apakah Anda melihat cara memodifikasi bukti untuk pengaturan Anda?

Abstraksi kesetaraan hal panjang, datang dengan konstruksi untuk otomat untuk

Ll={wΣxL.|x|=|w|}

untuk diberikan, sewenang-wenang LREG lebih Σ.

Apakah Anda melihat hubungannya?

Sekarang perhatikan itu L=ABl.

Raphael
sumber
3

Petunjuk: Mari kita asumsikan Anda tahu semua panjang kata yang berbeda diB, len(B)={1,2,3,...}. Untuk saat ini, mari kita asumsikan itu terbatas.

Bisakah Anda menggunakan pengetahuan ini untuk membuat DFA? A?
(petunjuk: persimpangan, atau konstruksi "lintas produk")

Apakah alfabet B bahkan penting?

Selanjutnya, mungkin set panjang len(B)tidak terbatas. Kemudian lihat pertanyaan ini yang harus menyelesaikan masalah itu juga.

Ran G.
sumber
2

Cara properti penutupan, jadi tidak ada (eksplisit) automata. Bahasa reguler ditutup di bawah morfisme, morfisme terbalik, dan persimpangan (dengan bahasa reguler).

Membiarkan ΣA dan ΣB menjadi huruf dari A dan B. MembiarkanhX:ΣX{1} menjadi morfisme yang memetakan setiap huruf aΣX untuk 1. KemudianhB(B){1} codes the length set of B, and hA1(hB(B)) consists of (all) strings that are of the same length as strings in B, but over the alphabet of A. Finally, we observe that L=AhA1(hB(B)).

Now for the bonus. It also works for context-free A and B. We need however an additional property: if B is context-free then hB(B) is regular (!) as all 'unary' (=single letter alphabet) context-free languages are regular, a consequence of Parikh's theorem. Thus also hA1(hB(B)) is regular, and L is context-free.

Hendrik Jan
sumber