Turing makinesini tanıyan dilini nasıl kısıtlamasız bir dilbilgisine dönüştürebilirim?


19

Göre bu Wikipedia makalesinde , sınırsız dilbilgisi Turing makineleri eşdeğerdir. Makale, herhangi bir Turing makinesini sınırsız bir dilbilgisine dönüştürebileceğimi not ediyor, ancak sadece bir dilbilgisinin Turing makinesine nasıl dönüştürüleceğini gösteriyor.

Gerçekten bunu nasıl yaparım ve Turing makinesini tanıyan dilini kısıtlamasız bir dilbilgisine dönüştürürüm? Geçiş kurallarını dilbilgisi kurallarıyla değiştirmeyi denedim, ancak bir Turing makinesi de birçok farklı durum konfigürasyonuna sahip olabilir ...L

Yanıtlar:


9

Turing makinesinin bant içeriğini duyarlı formlarda kodlarız; özel bir terminal olmayan set mevcut durumu kodlar. TM'nin şu anda işaret ettiği simgenin sağına yerleştirilen herhangi bir zamanda duygusal formda bunlardan sadece biri olabilir.

İkinci önemli fikir, süreci tersine çevirmemiz gerektiğidir: TM'ler kelimeyi girdi olarak alır ve veya dönüştürür veya sonlandırmazlar. Ancak dilbilgisi sözcüğü oluşturmak zorundadır. Neyse ki, gramerler doğal olarak deterministik değildir, bu yüzden kabul eden nereden geldiğini "tahmin etmesine" izin verebiliriz ; TM'nin kabul etmesine neden olan tüm kelimeler üretilebilir.0 1101

Let devlet nonterminallerin grubu; wlog, başlangıç-durumu-terminal olmayan ve kabul-durumları-terminal-dışı kümesi olmasını sağlar. İlk olarak, tüm olası kabul yapılandırmalarını oluşturan başlangıç ​​kurallarına ihtiyacımız var:Q 0 Q FQS={S0,...,Sk}S0SFS

S#1Sf# tüm için .SfSF

Benzer şekilde, başlangıç ​​durumuna doğru konumda, yani ilk simgeye "ulaştığımızda" son veririz:

#birS0#bir için .birΣ

Gerçek durum geçişlerini çevirmek basittir:

aQcQ  for a,cΣ(a,Q,N)δ(c,Q)aQbacQ for a,b,cΣ(b,Q,L)δ(c,Q)abQcQb for a,b,cΣ(a,Q,R)δ(c,Q)

Ütülemek için bazı teknik karışıklıklar vardır; örneğin, sonunda sınır işaretlerinden kurtulmanız gerekir . Bu, sonlandırma yerine iki özel terminale yumurtlama, bunları uçlara değiştirme ve sonra ile birlikte kaldırılarak yapılabilir . Ayrıca, talep üzerine daha fazla oluşturulması gerekir; ile kuralların bir miktar kesilmesini gerektirir .###d=#

TM, giriş dışı semboller kullanıyorsa, yapı biraz daha karmaşık hale gelir. Bu durumda, sonlandırma kuralları yanlış olabilir: kaset üzerinde bir yerde giriş olmayan semboller varsa, uygun bir kelime oluşturmadık. Bu, : sağa takas edilen ve yalnızca tüm semboller geliyorsa kaldırılan özel bir terminali çıkarmaya benzer şekilde düzeltilebilir .#Q0Σ

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.