Bir dilin bağlamdan bağımsız olup olmadığını test etmek için bir algoritma / sistematik prosedür var mı?
Başka bir deyişle, cebirsel biçimde belirtilen bir dil verildiğinde ( gibi bir şey düşünün ), dilin olup olmadığını test edin . Öğrencilere tüm ödevlerinde yardımcı olmak için bir web hizmeti yazdığımızı düşünün; dili belirtirseniz ve web hizmeti "bağlamsız" veya "bağlamsız" çıktılar verir. Bunu otomatikleştirmek için iyi bir yaklaşım var mı?
Elbette pompalama lemması, Ogden'in lemması, Parikh'in lemması, Kavşak lemması ve daha fazlası gibi manuel kanıtlama teknikleri vardır . Bununla birlikte, her biri bir noktada manuel bilgi gerektirir, bu nedenle bunların herhangi birini algoritmik bir şeye nasıl dönüştüreceği açık değildir.
Kaveh'ın başka bir yerde , bağlamsız diller kümesinin yinelemeli olarak numaralandırılamadığını yazdığını görüyorum , bu nedenle herhangi bir algoritmanın olası tüm dillerde çalışması için umut yok gibi görünüyor. Bu nedenle, web hizmetinin "bağlamsız", "bağlamsız" veya "anlatamıyorum" çıktıları alabilmesi gerektiğini düşünüyorum. Ders kitaplarında muhtemelen görülebilecek birçok dilde "Anlayamıyorum" dışında bir yanıt verebilecek herhangi bir algoritma var mı? Böyle bir web servisini nasıl kurarsınız?
Bu soruyu iyi ortaya koymak için kullanıcının dili nasıl belirleyeceğine karar vermeliyiz. Önerilere açığım ama böyle bir şey düşünüyorum:
burada , bir kelime ifadesidir ve , aşağıdaki tanımlarla uzunluk değişkenleri üzerinde doğrusal eşitsizlikler sistemidir:S
Her bir kelime ifadesidir. (Bunlar içindeki herhangi bir sözcüğü tutabilen değişkenleri temsil eder .)Σ ∗
Her bir kelime ifadesidir. (Örtük olarak, , böylece alttaki alfabede tek bir sembolü temsil eder.)Σ = { a , b , c , … } a , b , c , …
Her biri, halinde, bir kelime ifade uzunluk değişkendir.η
Kelime-ifadelerinin birleştirilmesi bir kelime-ifadesidir.
Her bir uzunluk-değişkendir. (Bunlar herhangi bir doğal sayıyı tutabilecek değişkenleri temsil eder.)
Her biri bir uzunluk-değişkendir. (Bunlar karşılık gelen bir kelimenin uzunluğunu temsil eder.)
Bu, ders kitabı alıştırmalarında gördüğümüz birçok vakayı ele alacak kadar geniş görünüyor. Elbette, isterseniz bir dili cebirsel biçimde belirtmek için herhangi bir metinsel yöntemi değiştirebilirsiniz.