Bagaimana saya dapat membuktikan bahwa bahasa ini tidak bebas konteks?

11

Saya memiliki bahasa berikut

{0i1j2k0ijk}

Saya mencoba menentukan kelas bahasa Chomsky mana yang cocok untuknya. Saya bisa melihat bagaimana itu bisa dibuat menggunakan tata bahasa konteks-sensitif jadi saya tahu itu minimal konteks-sensitif. Sepertinya tidak mungkin membuat dengan tata bahasa bebas konteks, tapi saya punya masalah untuk membuktikannya.

Tampaknya melewati lemma pemompaan garpu karena jika semua ditempatkan di bagian ketiga dari setiap kata (bagian dengan semua 2 s). Itu bisa memompa v dan x sebanyak yang Anda inginkan dan itu akan tetap dalam bahasa. Jika saya salah dapatkah Anda memberi tahu saya alasannya, jika saya benar, saya masih berpikir bahasa ini tidak bebas konteks, jadi bagaimana saya bisa membuktikannya?uvwxy2vx

justausr
sumber
Saya tidak yakin bagaimana membuatnya menjadi bukti formal, tetapi memastikan saya <= j <= k membutuhkan konteks (nilai dari variabel sebelumnya).
Kevin
@ Raphael, saya membaca posting itu sebelum ini dan tidak tahu bagaimana menerapkannya pada contoh saya karena abstraknya. Dengan hubungan masing-masing karakter menjadi> = jumlah karakter sebelumnya, saya tidak bisa melihat bagaimana membagi uxyzv menjadi kata untuk menggunakan lemma Ogden. BlueMagister dan jmad berkembang di posting lain untuk memperjelas contoh saya.
justausr
@ Raphael Saya tidak setuju bahwa ini adalah aplikasi sepele dari kasus umum. Memilih metode yang akan digunakan dan contoh apa yang digunakan untuk menerapkannya tidaklah mudah.
Gilles 'SANGAT berhenti menjadi jahat'

Jawaban:

7

Anda dapat memaksa pemompaan berada di beberapa tempat, menggunakan lemma Ogden , misalnya dengan menandai semua 0.

Misalkan itu bebas konteks, maka lemma Ogden memberi Anda , Anda memberikannya w = 0 p 1 p 2 p yang ada dalam bahasa, dan Anda "menandai" semua 0 itu. Maka segala faktorisasi w = u x y z v harus sedemikian rupa sehingga ada 0 dalam x atau z . Anda juga dapat mengasumsikan x = a k dan z = b m karena x x dan z zp>0w=0p1p2pw=uxyzv0xzx=akz=bmxxzz harus substring dari bahasa Anda.

  1. Jika maka w = u x 2 y z 2 v memiliki lebih banyak 0 daripada 1z=0...0w=ux2yz2v

  2. Jika dan z = 1..1 maka w = u x 2 y z 2 v memiliki lebih banyak 1 daripada 2.x=0..0z=1..1w=ux2yz2v

  3. Jika dan z = 2..2 maka w = u x 2 y z 2 v memiliki lebih banyak 0 daripada 1.x=0..0z=2..2w=ux2yz2v

Jadi bukan kata dari bahasa Anda. Karena itu, tidak bebas konteks.ux2yz2v

Untuk teknik lain, lihat diskusi: Bagaimana membuktikan bahwa bahasa tidak bebas konteks?

jmad
sumber
Apakah ini untuk bahasa yang sama dengan yang saya miliki? Tampaknya untuk bahasa yang sama di mana semua 0's 1 dan 2's sama panjang. Bahasa ini memiliki angka 2's> = jumlah 1's> = jumlah 0's
justausr
1
Ya itu, tetapi menggunakan salah satu dari semua lemas pemompa, Anda bisa memilih kata (dan saya memilih ): Lemma Ogden seharusnya bekerja untuk mereka semua. 0p1p2p
jmad
Gotcha, aku belum pernah mendengar tentang lemma ogden jadi aku harus memeriksanya. Apakah saya benar menyatakan itu gagal memompa lemma?
justausr
@justausr tidak punya saya, sampai saat ini (dan terima kasih untuk diskusi yang saya sebutkan). Dan ya Anda benar: lemma pemompaan melakukan hal yang hampir sama tetapi tidak memilih tempat memompa membuatnya tidak berguna di sini.
jmad
5

Lemma pemompaan harus menyelesaikan masalah Anda mengenai bagian ketiga dari kata tersebut; perhatikan bahwa ketika Anda membagi , kombinasi u v n w x n y juga ada dalam bahasa, termasuk ketika n = 0 . Coba itu.z=uvwxyuvnwxnyn=0

EDIT: Seperti yang dikatakan jmad , Pumping Lemma seperti permainan:

  1. Lemma pemompaan memberi Anda p
  2. Anda memberikan kata dari bahasa panjang setidaknya psp
  3. Lemma pemompaan menulis ulang seperti ini: dengan beberapa kondisi ( | v x y |p dan | v y |1 )s=uvxyz|vxy|p|vy|1
  4. Anda memberikan bilangan bulat n0
  5. Jika tidak dalam L , Anda menang, L tidak bebas konteks.uvnxynzLL

Jadi yang harus Anda lakukan adalah menyatakan kata, memecah 3 ke dalam kasus, dan menunjukkan bahwa untuk setiap kasus Anda dapat menemukan sehingga kata yang dihasilkan tidak dalam bahasa.n

Ketika Anda membagi , pikirkan semua case yang dapat jatuh ke dalam v x y . Anda perhatikan bahwa jika v x y tidak termasuk dalam 2's, maka mudah untuk memompa 0 dan 1 sampai mereka melebihi jumlah 2, dan kemudian Anda memiliki kata yang tidak ada dalam bahasa tersebut. Saran saya adalah, jika v x y jatuh ke 2 wilayah, Anda juga dapat membuat v dan y menghilang dengan menetapkan n = 0 , jadi u v n x y n z = us=uvxyzvxyvxyvxyvyn=0 . Kemudian dengan menghilangkan 2 Anda bisa sampai pada kata yang tidak termasuk dalam bahasa tersebut.uvnxynz=uxz

Magister Biru
sumber
Apakah Anda mengatakan meletakkan semua uvwxy di bagian dengan 2?
justausr
Jika diberi kata yang tepat. Saya akan menguraikan jawaban saya.
Blue Magister
Ini, coba sekarang. Saya tidak yakin apakah lemma pemompaan saya sama dengan lemma pemompaan Anda, jadi saya naik banding ke Wikipedia .
Blue Magister