Bukti menggunakan lemma pemompaan biasa

8

Saya punya dua pertanyaan:

  1. Saya menganggap bahasa berikut Dengan kata lain, bukan palindrome dengan panjang genap. Saya membuktikan bahwa bahasa ini BUKAN reguler dengan membuktikan bahwa komplemennya tidak teratur. Pertanyaan saya adalah bagaimana membuktikannya menggunakan lemma pemompaan tanpa menggunakan komplemen.

    L1={w{0,1}u{0,1}:w=uuR}.
    w
  2. Misalkan Saya membuktikan bahwa bahasa ini tidak teratur dengan menggunakan kelas-kelas kesetaraan. Bagaimana saya bisa membuktikannya dengan menggunakan lemma pemompaan?

    L2={w{0,1}w has same number of 101 substrings and 010 substrings}.

Terima kasih banyak untuk edit :)

farseer
sumber
Catatan. Browser saya tidak menunjukkan tanda "tidak ada" dalam deskripsi . Jangan khawatir: itu adalah ada di sumber, dan mengubah browser membantu. L1
Hendrik Jan

Jawaban:

7

Tidak semua bahasa non-reguler gagal dalam tes lemma pemompaan. Wikipedia memiliki contoh rumit dari bahasa non-reguler yang dapat dipompa. Jadi, bahkan jika suatu bahasa adalah non-reguler, kita mungkin tidak dapat membuktikan fakta ini menggunakan lemma pemompaan.

Tetapi ternyata kita dapat menggunakan lemma pemompaan untuk membuktikan bahasa pertama Anda tidak biasa. Saya tidak yakin tentang yang kedua.

Klaim: tidak biasa.L1

Bukti: Dengan lemma pemompaan. Biarkan menjadi panjang pemompaan. (Saya akan menggunakan alfabet daripada .) Jika , maka ambil string , yang ada di dan pompakan ke yang tidak di , jadi tidak akan teratur.p{a,b}{0,1}p=1abbaaL1aabbaaL1L1

Jika , maka ambil string . (Kami akan mencari tahu apa yang kami inginkan nanti.) Kemudian pertimbangkan setiap pembagian string menjadi mana , , dan .p>1apbbaNNxyzx=apky=akz=bbaN

Sekarang mari kita memompa string ini kali. (Kami akan mencari tahu apa yang kita inginkan untuk kemudian.) Kami mendapatkan string , yang memberikan .iixyizapkaikbbaN=apk+ikbbaN

Sekarang mari kita kembali. Pertama, kami memilih . Kemudian, beberapa pilihan dibuat. Kemudian, kami memilih . Kami ingin mencari tahu apa yang pilih sehingga, untuk pilihan , kita dapat memilih yang menjadikan string ini palindrome dengan membuat angka di sebelah kiri sama dengan angka di hak. (Itu akan selalu memiliki panjang genap.)NkiNk[1,p]ia

Jadi kami ingin selalu mendapatkan bahwa . Jika kita bermain-main dengan matematika, kita menemukan bahwa kita harus memilihdan pilih .pk+ik=NN=p+p!i=p!/k+1

Jadi untuk rekap, kami memilihdan memilih string . Kemudian beberapa pilihan dibuat sehingga string terdiri dari mana . Lalu kami memilih . Kami dipompa string untuk mendapatkan .N=p+p!apbbaNkapkybbaNy=aki=p!/k+1apkyibbaN=apkaikbbaN=apk+ikbbaN

Tetapi kita tahu bahwa. Dan. Jadi jumlah s pada kedua ujungnya sama, jadi stringnya adalah palindrom panjang genap, jadi itu bukan di , jadi tidak teratur. pk+ik=pk+(p!k+1)k=pk+p!+k=p+p!N=p+p!aL1L1

usul
sumber
Jawaban sempurna!
farseer
Terima kasih banyak atas bantuannya. Idenya ingin memilih string dengan bijak.
farseer
Saya ingin memberi Anda jawaban untuk kedua bahasa, tetapi yang kedua terlihat menyakitkan! Pendekatan yang mengarahkan saya ke jawaban yang pertama adalah mencoba membuktikan bahwa benar - benar dapat dipompa - ketika saya sampai pada kasus terakhir dan tidak dapat membuktikannya, saya dapat mulai melihat bagaimana membuat string di atas. L1
usul
@ usul bagaimana Anda sampai pada ini: N=hal+hal!, i=p!/k+1i=p!/k+1?
Dima Knivets
3

Untuk pertanyaan satu string 0p12p0p+p!adalah contoh yang cocok. Apa pun panjangnyay adalah, itu harus menjadi faktor p!, jadi kami memompanya cukup dan kami dapatkan p+p! nol di awal.

Luke Mathieson
sumber
1

Setelah lama berpikir saya pikir saya menjawab 2.

kita memilih string (010) ^ N (101) ^ N, di mana N memompa panjang. Tidak peduli apa yang akan kita pilih, xy ^ 0z akan memiliki lebih banyak 101 daripada 010. idenya adalah kita hanya dapat menambahkan lebih banyak sub string dalam bagian pertama string atau menghapus beberapa sub string 010.

farseer
sumber
Sayangnya sepertinya tidak berfungsi :( String 010010101101 (N = 2) masing-masing memiliki tiga (!). Menghapus huruf ketiga, kita mendapatkan 01010101101, yang masih memiliki tiga kejadian 010. Pikirkan tumpang tindih. Saya masih bingung. Saya masih bingung ...
Hendrik Jan
Iya! Tapi kami memiliki 4 kejadian 101! Jadi jumlah 101 sub string! = Jumlah 010
farseer
Ups. Maaf. Saya seharusnya membaca apa yang Anda katakan: "tambahkan lebih banyak 101 substring". +1 (case closed)
Hendrik Jan