OBG’nin ABÖ’ye Dönüştürülmesi ABÖ’nün OBG’ye Dönüştürülmesi ABÖ ve OBG Eşdeğerliği OBG’nin ABÖ’ye Dönüştürülmesi ABÖ’nün OBG’ye Dönüştürülmesi
Kısaca Gözden Geçirme Düzenli dillerin kapalılık özellikleri hakkında konuşurken, düzenli deyim ile DSÖ arasında geçiş yapabilmek çok yararlı idi. Ayni şekilde, OBG’ler ve ABÖ’ler OBD’lerin özellikleri ile uğraşırken yararlıdırlar.
Kısaca Gözden Geçirme – (2) Hem de, ABÖ’ler “algoritmik” oldukları için, bir dilin OBD olduğunu göstermekte daha elverişlidirler. Örnek: Bir ABÖ’nün dengeli parantezleri tanıyabildiğini görmek kolaydır; gramerde bunu görmek o kadar kolay değil. Ama herşey hem OBG’lerin, hem ABÖ’lerin OBD’leri tanımladığını bilmeye dayanır.
OBG’yi ABÖ’ye Dönüştürme L = L(G) olsun. N(P) = L olacak şekilde ABÖ P yi aşağıdaki gibi tasarlarız. P nin: Bir durumu var: q. Girdi sembolleri = G’nin terminalleri. Yığın sembolleri = G’nin tüm sembolleri. Başlagıç sembolü (yığın altı işaretçisi)= G’nin başlangıç sembolü.
P Hakkında İçgüdü w girdisi verildiğinde , P’nin adımları başlangıç sembolünden başlayan bir soldan türemeye benzeyecek. P bu türemeyi, hatta w’nın sonunu bilemediğine göre, hangı kuralı kullanacağını belirsizlik kullanarak “tahmin” eder.
İçgüdü – (2) Her adımda, P bir sol-cümlesel şekli (left-sentential form) temsil eder (soldan türemenin adımını). P’nin yığını ise, ve P şimdiye kadar girdisinden x tüketmişse, o zaman P x sol-cümlesel şekli temsil eder. Yığın boşaldığında, tüketilen girdi L(G) içinde bir dizidir.
P’nin Geçiş Fonksiyonu δ(q, a, a) = (q, ε). (Tip 1 kuralları) Yığın üstündeki sembol, girdi sembolüne eşitse, sembolü tüket ve yığından da dışarı at. A G’nin bir kuralı ise, o zaman δ(q, ε, A) içinde (q, ) vardır. (Tip 2 kuralları) A için bir kural tahmin et, ve türemedeki bir sonraki sol-cümlesel şekli temsil et. Gözlem: Tüketilmiş girdi+yukarıdan aşağı yığın içeriği = sol-cümlesel şekil
L(P) = L(G) İspatı Her x için (q, wx, S) ⊦* (q, x, ) sadece ve sadece S *lm w olduğunu ispatlamamız gerekiyor. Kısım 1: “soldan sağa” P’nin yaptığı hamlelerin sayısı üzerine bir tümevarımdır. Temel: 0 hamle. O zaman = S, w = ε, ve S *lm S elbette doğrudur.
Kısım 1 İçin Tümevarım P’nin n hamlesini düşünün: (q, wx, S) ⊦* (q, x, ) ve n-1 hamle için Tümevarım Hipotezini (TH) varsayın. Son hamlenin Tip 1 veya Tip 2 kuralı kullanmasına bağlı olarak iki durum vardır.
Tip 1 Kuralı Kullanılmışsa: Hamle serisi (q, yax, S) ⊦* (q, ax, a) ⊦ (q, x, ) şeklinde olmalı, şöyle ki ya = w. TH’yi ilk n-1 hamleye uyguladığımızda, S *lm ya. Ama ya = w, öyleyse S *lm w.
Tip 2 Kuralı Kullanılmışsa: Hamle dizisi (q, wx, S) ⊦* (q, x, A) ⊦ (q, x, ) şeklinde olmalı, şöyle ki A bir kuraldır ve = . TH ilk n-1 hamleye uygulandığında, S *lm wA. wA lm w olduğundan, S *lm w = w.
2. Kısmın (“sağdan sola”) İspatı Ayni zamanda herhangi x için S *lm w ise (q, wx, S) ⊦* (q, x, ) olduğunu ispatlamamız gerekiyor. Soldan türemenin adım sayısı üzerine tümevarım. Fikirler benzer.
İspat – Son Şimdi, herhangi bir x için, (q, wx, S) ⊦* (q, x, ) sadece ve sadece S *lm w olduğunu biliyoruz. x = = ε olsun. Bu durumda (q, w, S) ⊦* (q, ε, ε) sadece ve sadece S *lm w. Yani, w N(P) sadece ve sadece w L(G).
ABÖ’den OBG’ye Şimdi, L = N(P) olduğunu varsayalım. L = L(G) olacak şekilde OBG G oluşturalım. İçgüdü: G’nin değişkenleri tam olarak P’nin p durumundan q durumuna giderken ve yığın sembolü X’i net olarak yığıdan atarken tikettiği girdiyi üretecek. P bunu yaparken bu X’in altına hiç düşmez.
G’nin Değişkenleri G’nin değişkenleri [pXq] şeklindedir. Bu değişken (p, w, X) ⊦*(q, ε, ε) olacak şekilde tüm w dizilerini üretir. Bir de daha sonra deyineceğimiz başlangıç sembolü S var.
G’nin Kuralları [pXq] için olan her kural P’nin p durumunda iken ve yığın üzerinde X varken yaptığı hamlelerden gelir. En basit durum: δ(p, a, X) içinde (q, ε) vardır. O zaman kural [pXq] a dır. a bir girdi embolü veya ε olabilir. Burada, [pXq] a üretir çünkü a’yı okuyarak X’i yığından atarak p’den q’ya gidebiliriz.
G’nin Kuralları – (2) Bir sonraki en basit durum: δ(p, a, X) içinde (r, Y) vardır (r bir durum ve Y bir sembol). G’de [pXq] a[rYq] kuralı vardır. X’i silip a‘yı okuyup p’den q’ya gitmek için önce r’ye gideriz, sonra r’den Y’yi silip q’ya gideriz.
G’nin Kuralları – (3) Üçüncü en basit durum: δ(p, a, X) içinde (r, YZ) vardır. (r bir durum, Y ve Z semboller). Şimdi, P X’i YZ ile değiştirdi. X’i net olarak silmek için P, r durumundan herhangi bir s durumuna giderek Y’yi silmeli, sonra da s’den q’ya giderek Z’yi silmeli.
P’nin Hamleleri p X a w x r Y Z w x s Z x q
Üçüncü En Basit Durum – Son s durumunu bilmediğimizden, bir kurallar ailesi oluşturmamız lazım: [pXq] a[rYs][sZq] (s herhangi bir durum). [pXq] * awx hernezaman [rYs] * w ve [sZq] * x.
G’nin Kuralları : Genel Durum Farzedelim ki δ(p, a, X) içinde (r, Y1,…Yk) var (r bir durum, k > 3). Aşağıdaki gibi kurallar ailesi üretin: [pXq] a[rY1s1][s1Y2s2]…[sk-2Yk-1sk-1][sk-1Ykq]
Kurulumun Tamamlanması (q0, w, Z0)⊦*(p, ε, ε) ise [q0Z0p] * w olduğunu ispatlayabiliriz. Tersini de ([q0Z0p] * w ise (q0, w, Z0)⊦*(p, ε, ε) ) ispatlayabiliriz. Ama p durumu herhangi birşey olabilir. G’ye başlangıç sembolü olarak yeni bir değişken, S, ekleyelim. S’nin kuralları her durum p için S [q0Z0p] olsun. ABÖ’nün boş yığınla kabul ettiğini varsayıyoruz.