Bu dilin bağlamdan bağımsız olmadığını nasıl kanıtlayabilirim?


11

Aşağıdaki dile sahibim

{0i1j2k0ijk}

Hangi Chomsky dil sınıfına uyduğunu belirlemeye çalışıyorum. Bağlama duyarlı bir dilbilgisi kullanılarak nasıl yapılabileceğini görebiliyorum, bu yüzden en azından bağlama duyarlı olduğunu biliyorum. Bağlamdan bağımsız bir gramer ile yapmak mümkün olmayacak gibi görünüyor, ancak bunu kanıtlayan bir sorun yaşıyorum.

Çünkü eğer çatal pompalama lemma geçmek gibi görünüyor herhangi bir kelime (tüm enine kesiti üçüncü kısmına yerleştirilmiştir s). ve istediğiniz kadar pompalayabilir ve dilde kalacaktır. Yanılıyorsam neden olduğunu söyleyebilir misin, eğer haklıysam, hala bu dilin bağlamsız olmadığını düşünüyorum, bunu nasıl kanıtlayabilirim?2 v xuvwxy2vx


Nasıl resmi bir kanıt yapmak emin değilim, ama i <= j <= k sağlamak bağlam (önceki değişkenin değeri) gerektirir.
Kevin


@ Raphael, bu yazıyı bundan önce okudum ve soyut olması nedeniyle örneğime nasıl uygulayacağımı bilmiyordum. Her karakterin ilişkisi önceki = = olmakla birlikte, Ogden'in lemmasını kullanmak için uxyzv'nin kelimeye nasıl bölüneceğini göremedim. BlueMagister ve jmad, örneğimi açıklığa kavuşturmak için diğer yayını genişletti.
justausr

@ Raphael Bunun genel davanın önemsiz bir uygulaması olduğuna katılmıyorum. Hangi yöntemin kullanılacağını ve hangi örneğin uygulanacağını seçmek o kadar kolay değildir.
Gilles 'SO

Yanıtlar:


7

Ogden'in lemmasını kullanarak , örneğin tüm 0'ları işaretleyerek pompalamayı bazı yerlerde olmaya zorlayabilirsiniz .

Bağlamdan bağımsız olduğunu varsayalım, Ogden'in lemması size bir verir , dilde olan w = 0 p 1 p 2 p verirsiniz ve tüm 0'ları "işaretlersiniz". Daha sonra herhangi bir factorisation w = u x y z v bir olduğu şekilde olmalıdır 0 içinde x ve z . Ayrıca varsayabiliriz x = a k ve z = b m beri x x ve z zp>0w=0p1p2pw=uxyzv0xzx=akz=bmxxzz dilinizin alt dizeleri olmalıdır.

  1. Eğer sonra ağırlık = u x 2 y z 2 v more 0 '1'ler dahaz=0...0w=ux2yz2v

  2. Eğer ve z = 1..1 sonra ağırlık = u x 2 y z 2 v fazla 2 's 1'den' s sahiptir.x=0..0z=1..1w=ux2yz2v

  3. Eğer ve z = 2..2 sonra ağırlık = u x 2 y z 2 v fazla 1 den 0 's sahiptir.x=0..0z=2..2w=ux2yz2v

Yani sizin dilinizde bir kelime değildir. Bu nedenle, bağlam içermez.ux2yz2v

Diğer teknikler için şu tartışmaya bakın: Bir dilin bağlamdan bağımsız olmadığını nasıl kanıtlayabilirim?


Bu benim sahip olduğum dil için mi? 0'ların 1'lerinin ve 2'lerinin hepsinin eşit uzunlukta olduğu benzer bir dil için görünüyor. Bu dilde 2 sayısı vardır = = 1 sayısı> = 0 sayısı
justausr

1
Evet, ama tüm pompalama lemmalarından birini kullanarak, kelimeyi seçiyorsunuz (ve seçtim ): Ogden'in lemmasının hepsi için çalışması gerekiyordu. 0p1p2p
jmad

Gotcha, ogden'in lemmasını hiç duymadım, bu yüzden ona bakmak zorundayım. Haklı mıydım, pompalama lemmasının başarısız olduğunu mu söylüyorum?
justausr

@justausr yakın zamana kadar bende yok (ve bahsettiğim tartışma sayesinde). Ve evet haklıydınız: pompalama lemi neredeyse aynı şeyi yapıyor, ancak nereye pompalayacağınızı seçmemek burada işe yaramaz hale getiriyor.
jmad

5

Pompalama lemması, kelimenin üçüncü kısmı ile ilgili probleminizi çözmelidir; Not, bölünmüş zaman bu , herhangi bir kombinasyonu u v N w , x , n , Y , dil de dahil olmak üzere, zaman , n = 0 . Bunu dene.z=uvwxyuvnwxnyn=0

EDIT: jmad belirttiği gibi, Pompalama Lemma bir oyun gibidir:

  1. Pompalama lemma size bir p verirp
  2. En az p uzunluk diliyle ilgili bir kelime sp
  3. Pompalama lemması şöyle yazar: bazı koşullarla ( | v x y |p ve | v y |1 )s=uvxyz|vxy|p|vy|1
  4. N 0 tamsayısını verirn0
  5. Eğer değil L , kazanmak, L bağlam özgür değildir.uvnxynzLL

Yapmanız gereken, bir kelimeyi belirtmek, 3'ü vakalara ayırmak ve her durumda , sonuçta ortaya çıkan kelimenin dilde olmaması için bir bulabileceğinizi göstermektir .n

böldüğünüzde , v x y'nin düşebileceği tüm durumları düşünün . Eğer v x y 2'lere düşmezse, 0'ları ve 1'leri 2'lerden fazla olana kadar pompalamanın kolay olduğunu ve daha sonra dilde olmayan bir sözcüğün olduğunu unutmayın. Benim önerim, eğer v x y 2 bölgeye düşerse, n = 0 ayarlayarak v ve y'nin de kaybolmasını sağlayabilirsiniz , bu yüzden u v n x y n z = us=uvxyzvxyvxyvxyvyn=0 . Daha sonra 2'yi ortadan kaldırarak dile düşmeyen bir kelimeye ulaşabilirsiniz.uvnxynz=uxz


Tüm uvwxy'yi 2'li bölüme mi koyuyorsunuz?
justausr

Doğru kelime verilirse. Cevabımı ayrıntılı olarak açıklayacağım.
Blue Magister

İşte, şimdi dene. Pompalama lemmamın pompalama lemma ile aynı olup olmadığından emin değilim, bu yüzden Wikipedia'ya itiraz ediyorum .
Blue Magister
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.