Bir dilin düzenli 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 normal olup olmadığını test edin. Öğrencilere tüm ödevlerinde yardımcı olmak için bir web hizmeti yazdığımızı düşünün; kullanıcı dili belirtir ve web hizmeti "normal", "normal değil" veya "Bilmiyorum" ile yanıt verir. (Web hizmetinin "Bilmiyorum" yanıtını olabildiğince seyrek yanıtlamasını istiyoruz.) Bunu otomatikleştirmek için iyi bir yaklaşım var mı? Bu izlenebilir mi? Karar verilebilir mi? Bu sorunu çözmek için makul derecede etkili algoritmalar var mı ve "bilmiyorum" dışında bir cevap verebiliyor musunuz?
Bir dilin düzenli olmadığını kanıtlamanın klasik yöntemi pompalama lemmasıdır. Bununla birlikte, bir noktada manuel kavrayış gerektirir (örn. Pompalanacak kelimeyi seçmek için), bu yüzden bunun algoritmik bir şeye dönüştürülüp dönüştürülemeyeceği konusunda net değilim.
Bir dilin düzenli olduğunu kanıtlamak için klasik bir yöntem, sonlu durumlu bir otomat elde etmek için Myhill-Nerode teoremini kullanmak olacaktır. Bu umut vaat eden bir yaklaşıma benziyor, ancak cebirsel olarak diller üzerinde temel işlemleri yapabilme yeteneğini gerektiriyor. Cebirsel olarak diller üzerinde ihtiyaç duyulabilecek tüm işlemleri sembolik olarak gerçekleştirmenin sistematik bir yolu olup olmadığı bana açık değil.
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 S , aşağıdaki tanımlarla uzunluk değişkenleri üzerinde doğrusal eşitsizlikler sistemidir:
Her bir kelime ifadesidir. (Bunlar içindeki herhangi bir kelimeyi üstlenebilen değişkenleri temsil eder .)
Her bir kelime ifadesidir. (Burada , dizesinin tersini temsil eder .)x r x
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ı alabilecek 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, daha iyi bir öneriniz varsa, bir dili cebirsel olarak belirtmek için herhangi bir metinsel yöntemi değiştirebilirsiniz.