Bu L = L (G) nasıl gösterilir?


22

Resmi dilbilgileri vererek biçimsel dilleri belirtmek sıkça bir iştir: Dilbilgileri sadece dilleri tanımlamak için değil, aynı zamanda onları ayrıştırmak ve hatta uygun bilim yapmak için de kullanmamız gerekir . Her durumda, eldeki dilbilgisinin doğru olması, tam olarak istenen kelimeleri üretmesi önemlidir .

Dilbilgisinin neden istenen dilin yeterli bir temsili olduğunu ve resmi bir kanıt göstermediğini sıklıkla üst düzeyde tartışabiliriz. Peki ya şüpheliyse ya da herhangi bir sebepten resmi bir kanıtlamaya ihtiyacımız olursa? Uygulayabileceğimiz teknikler neler?

Bunun bir referans soru olması gerekiyordu . Bu nedenle, lütfen en az bir örnekle gösterilen, ancak yine de pek çok durumu kapsayan genel, didaktik olarak sunulan cevaplar vermeye özen gösterin. Teşekkürler!

Yanıtlar:


21

Dilbilgisi özyinelemeli özyinelemeli nesnelerdir, bu nedenle cevap açık görünüyor: İndüksiyonla. Bu, özellikleri düzeltmek için sık sık zor olduğunu söyledi. Devamında, bazı yaratıcı ön işleme işlemleri yapılmak kaydıyla, pek çok gramer doğruluğu kanıtını mekanik adımlara indirgemeyi sağlayan bir teknik tarif edeceğim.

Temel fikir kendini dilbilgisi ve dil sözcükleriyle sınırlamamaktır ; Dilbilgisinin yapısını bu şekilde kavramak zordur. Bunun yerine, gramerin yaratabileceği cümleler setini tartışacağız . Ayrıca, göz korkutucu bir kanıtlama hedefini daha izlenebilir birçok küçük hedefe böleceğiz.

Let olmayan terminalli resmi bir dil bilgisi , terminaller rules ve sembolü başlangıç . Biz tarafından ifade türetilebilir cümle grubu verilen olup, . Tarafından üretilen dil olduğu . Diyelim ki bazı için değerini göstermek istiyoruz .N- T δ S N θ ( G ) S δ a θ ( G )G=(N,T,δ,S)NTδSNϑ(G)SδG L ( G ) = θ ( G ) T * L = L ( G ) L T *αϑ(G)SαGL(G)=ϑ(G)TL=L(G)LT

Ansatz

İşte bu konuda nasıl gidiyoruz. Bu tanımlar böyleceM1,,Mk(NT)

  1. ϑ(G)=i=1kMi ve
  2. Ti=1kMi=L .

2. genellikle tanımı ile açık , 1. ciddi bir çalışma gerektirir. İki öğe birlikte açıkça belirtildiği gibi anlamına gelir .L ( G ) = LMiL(G)=L

Gösterim kolaylığı için, .M=i=1kMi

Kayalık yol

Böyle bir kanıtı gerçekleştirmenin iki önemli adımı vardır.

  • (İyi) nasıl ? Mi
    Bir strateji, gramerin üzerinde çalıştığı aşamaları araştırmaktır . Her dilbilgisi bu fikre uygun değildir; Genel olarak, bu yaratıcı bir adımdır. Dilbilgisini kendimiz tanımlayabilirsek yardımcı olur; Bazı deneyimlerle, bu yaklaşımla gramerleri daha izlenebilir tanımlayabileceğiz.

  • Kanıtlamak 1. nasıl?
    Herhangi bir eşitlikte olduğu gibi, iki yön vardır.

    • Gϑ(G)M : nin yapımları üzerinde (yapısal) indüksiyon .G
    • M i SMϑ(G) : Genellikle içeren birinden başlayarak tarafından bir indüksiyon .MiS

Bu, olabildiğince spesifik; detaylar eldeki gramer ve dile bağlıdır.

Örnek

Dili düşünün

L={anbncmn,mN}

ve dilbilgisi ile verilenδG=({S,A},{a,b,c},δ,S)δ

SScAAaAbε

bunun için olduğunu göstermek istiyoruz . Bu gramerin üstesinden geldiği aşamalar nelerdir? İlk önce ve sonra . Bu derhal , yanic m a n b n M iL=L(G)cmanbnMi

M0={ScmmN},M1={anAbncmm,nN},M2={anbncmm,nN}.

As ve , madde 2. zaten halledilir. 1.'e doğru, kanıtı duyurulduğu gibi iki bölüme ayırdık.M 0T = M 1T = M2=LM0T=M1T=

ϑ(G)M

kuralları boyunca yapısal indüksiyon yapıyoruz .G

IA: yana başarıyla biz çapası.S=Sc0M0

İH: in bazı cümleler için de bildiğimizi varsayalım , bu da olduğunu biliyoruz .X MXϑ(G)XM

IS: Bırakalım rasgele . Hangi formda olursa olsun ve sonra hangi kuralın uygulanacağını göstermek zorundayız , ayrılmadık . Bunu tam bir dava ayrımıyla yapıyoruz. İndüksiyon hipotezi ile aşağıdaki durumlardan birinin (tam olarak) geçerli olduğunu biliyoruz:α MαXϑ(G)MαM

  • w = S c m m N MwM0 , bu, bazı için . Her ikisi de bir cümle türeten iki kural uygulanabilir : w=ScmmN
    M
    • ScmScm+1M0 ve
    • ScmAcm=a0Ab0cmM1 .
  • ağırlık = bir N bir b , n C m m , n NwM1 , yani , bazı için : w=anAbncmm,nN
    • wan+1Abn+1cmM1 ve
    • wanbncmM2 .
  • ağırlık T *wM3 : , başka türev yapılması mümkün değildir.wT

Tüm vakaları başarıyla kapattığımız için indüksiyon tamamlandı.

ϑ(G)M

başına bir (basit) ispat . nasıl "sonra" "daha önce" kullanarak demirleyebileceğini .M i M iMiMiMi

  • m S c 0 = S S S cM1 : üzerinde bir indüksiyon gerçekleştiriyoruz , demirliyoruz ve adımda kullanarak .mSc0=SSSc
  • m , n bir C m S * G C m bir C m bir bir bir bM2 : isteğe bağlı bir değere ve üzerinde indükleriz . Biz çapa o kullanarak, eski kanıtı tarafından. Adım .mnAcmSScmAcmAaAb
  • m , n N S a n A b n c m a n b n c mM3 : Keyfi için için eski ispat kullanılır .m,nNSanAbncmanbncm

Bu, 1. ispatın ikinci yönünü tamamlar ve biz yapılır.

Dilbilgisinin doğrusal olduğunu yoğun biçimde kullandığımızı görebiliyoruz . Doğrusal olmayan gramerler için birden fazla değişken parametresi olan ihtiyacımız (ispat (lar) da), çirkin olabilir. Dilbilgisi üzerinde kontrol sahibi olursak, bu bize basit tutmamızı öğretir. eşdeğer olan bu dilbilgisini caydırıcı örnek olarak düşünün : GMiG

SaAbCεAaAbεCcCε

Egzersiz

İçin gramer ver

L={bkal(bc)manbok,l,m,n,oN,ko,2l=n,m2}

ve doğruluğunu kanıtlayın.

Eğer bir problem varsa, gramer:

Göz önünde üretimleri ileG=({S,Br,Bl,A,C},{a,b,c},δ,S)

SbSbBlBrBlbBlbABrBrbAbAaAaaCCbcCbcbc

ve :Mi

M0={biSbiiN}M1={biBlbooN,io}M2={bkBrbikN,ik}M3={bkaiAa2ibok,o,iN,ko}M4={bkal(bc)iCa2lbok,o,l,iN,ko}M5=L

Peki ya doğrusal olmayan dilbilgileri?

Bağlamsız dil sınıfının karakteristik özelliği Dyck dilidir : temel olarak, her bağlamsız dil bir Dyck dili ve normal bir dilin kesişimi olarak ifade edilebilir. Ne yazık ki, Dyck dili doğrusal değildir, yani bu yaklaşıma uygun bir dilbilgisi veremeyiz.

Elbette hala tanımlayabilir ve kanıtı yapabiliriz, ancak yuvalanmış indüksiyonlarla daha zorlayıcıdır ve ne olmasın. Bunun bir dereceye kadar yardımcı olabileceğini bildiğim genel bir yol var. Ansatz'ı, en azından gerekli tüm kelimeleri ürettiğimizi ve doğru miktarda kelime ürettiğimizi göstererek değiştiririz (uzunluk başına). Resmen bunu gösteriyoruzMi

  1. ϑ(G)L ve
  2. n N|L(G)Tn|=|LTn|tüm .nN

Bu yolla, kendimizi orijinal ansatzlardan "kolay" yöne sınırlayabilir ve dilbilgisindeki aşırı karmaşık özellikleri göz ardı ederek, dilde yapıyı kullanabiliriz. Tabii ki, bedava öğle yemeği yok: her bir için kelimelerinin ürettiği kelimeleri sayma görevini alıyoruz . Şanslıyız ki, bu çoğu zaman izlenebilirdir; ayrıntılar için buraya ve buraya bakın¹. Lisans tezimde bazı örnekler bulabilirsiniz .n NG nN

Belirsiz ve bağlamsız gramerler için, korkarım bir taneye ansatz ve düşünme kapaklarına döndük.


  1. Bu sayma için belirli bir yöntemi kullanırken, gramerin belirsiz olduğu bir bonus olarak karşımıza çıkar. Buna karşılık, bu aynı zamanda tekniğin asla kanıtlayamayacağımız gibi belirsiz gramerler için başarısız olması gerektiği anlamına gelir.
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.