Bir dilin düzenli olup olmadığını test etme algoritması


11

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?L={anbn:nN}

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:

L={E:S}

burada , bir kelime ifadesidir ve S , aşağıdaki tanımlarla uzunluk değişkenleri üzerinde doğrusal eşitsizlikler sistemidir:ES

  • Her bir kelime ifadesidir. (Bunlar içindeki herhangi bir kelimeyi üstlenebilen değişkenleri temsil eder .)x,y,z,Σ

  • Her bir kelime ifadesidir. (Burada , dizesinin tersini temsil eder .)x r xxr,yr,zr,xrx

  • Her bir kelime ifadesidir. (Örtük olarak, , böylece alttaki alfabede tek bir sembolü temsil eder.)Σ = { a , b , c , } a , b , c , a,b,c,Σ={a,b,c,}a,b,c,

  • Her biri, halinde, bir kelime ifade uzunluk değişkendir.ηaη,bη,cη,η

  • 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.)m,n,p,q,

  • Her biri bir uzunluk-değişkendir. (Bunlar karşılık gelen bir kelimenin uzunluğunu temsil eder.)|x|,|y|,|z|,

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.


Dil ifadeleri seçiminiz hakkında henüz fazla düşünecek vaktim olmadı. Kabaca ne tür dilleri kapsıyor? Bir kelime değişkeninin yalnızca bir kez oluştuğu kısıtlamasını eklerseniz, bu tür diller bağlamsız mıdır?
Gilles 'SO- kötü olmayı bırak'

Belki kendisini bir dilbilgisi ile yazmaya çalışabilirsiniz ? Gibi ve, kısaca tanımladığınız şey mi? Eη : : = N | | x |E::=cηxEEErη::=n|x|
jmad

1
Sen ifade edebilen bu bağlamdan-bağımsız dillerin ötesine iyi gider böylece. Yine de, sorunun en azından bağlamsız bir dilbilgisinin normal bir dil tanımlayıp tanımlamayacağına karar vermek kadar zor olduğundan şüpheliyim. {anbncnnN}
Gilles 'SO- kötü olmayı bırak'

@ jmad, evet, bu oldukça makul olurdu. Bu dil ifadeleri seçimine bağlı değilim: başka bir şey seçmekten çekinmeyin, daha uygun bir şey görürseniz. Gilles, büyük bir hücum açısı! (İzleyiciler için, keyfi bağlamsız bir dilbilgisinin normal bir dil tanımlayıp tanımlamadığını test etmenin kanıtlanamayacağını gösteren bilinen sonuçlar vardır.) Sorun çözülemezse, web hizmetinin yanıt vermesine izin vermek için sorunu değiştirmenizi öneriyoruz. bilmiyorum ve sonra "Bilmiyorum" yanıtını olabildiğince nadiren yanıtlayan bir algoritma isteyin.
DW

Bu sınıf Kleene yıldızı altında kapalı değil, değil mi? Dengeli parantezleri ifade edebilir misiniz?
Gilles 'SO- kötü olmayı bırak'

Yanıtlar:


13

Cevap hayır. Bağlamdan bağımsız bir dilbilgisinin düzenli bir dil oluşturup oluşturmadığına karar vermek karar verilemez bir sorundur.

Güncelleme . Bu olumsuz yanıtı genel soruya verdim

Cebirsel olarak belirtilen bir dil verildiğinde, dilin düzenli olup olmadığını test edin

bağlamdan bağımsız diller, dillerdeki cebirsel denklemlerin çözümleridir: J. Berstel Transdüksiyonları ve Bağlamdan Bağımsız Diller kitabında Bölüm II, Teoremler 1.4 ve 1.5'e bakınız .

Ancak aynı soru deterministik bağlamdan bağımsız diller için de geçerlidir, Stearns [1] nedeniyle önemsiz bir sonuçtur ve Valiant [2] tarafından geliştirilmiştir:
[1] RE Stearns, Aşağı Açılan Makineler için Düzenlilik Testi, Bilgi ve Kontrol 11 323- 340 (1967) 'de tarif edilmiştir. DOI: 10.1016 / S0019-9958 (67) 90.591-8.
[2] LG Valiant. Deterministik aşağı itmeli otomata için düzenlilik ve ilgili problemler J. ACM 22 (1975), s. 1-10.

Sorunun ikinci bölümünde verilen spesifikasyonlara daha yakın başka bir olumlu sonuç daha var. nın yarı doğrusal alt kümelerinin tam olarak Presburger aritmetiğinde tanımlanabilir kümeler olduğunu hatırlayın . rasyonel alt kümeleri de vardır . Özellikle, doğrusal eşitsizlikler tarafından tanımlanan alt kümesi mantıklıdır. Şimdi, rasyonel bir alt kümesi verilen ait , bu Karar verilebilen olup olmadığı dil . Gerçekten de, [Ginsburg-Spanier] nin sadece ve ancak tanınabilir bir alt kümesi olması halinde düzenli olduğu bilinmektedir.K K K k R , N k L(R)={ u , n 1 1 u , n k k |( n 1 ,..., N- k )R}L(R)R ' , N k K KNkNkNkRNk

L(R)={u1n1uknk(n1,...,nk)R}
L(R)RNk ve verilen bir rasyonel alt kümesinin tanınabilir olup olmadığı karar verilebilir [Ginsburg-Spanier] .Nk

S. Ginsburg ve EH Spanier., Semigroups, Presburger formülleri ve dilleri , Pacific J. Math. 16 (1966), 285-296'da tarif edilmektedir.

Ginsburg ve EH Spanier Karşılaştırması. Sınırlı düzenli setler , Proc. Amerikan Matematik. Soc. 17 , 1043-1049 (1966) 'ya bakınız.

Bu, sorunun değişkenleri nedeniyle karar verilemeyen ikinci kısmını çözmez, ancak başlamak için makul bir parça verir.


(a) Bilgiçlik taslayan nit: Yukarıdaki cebirsel sözdiziminin tüm bağlamsız gramerleri ifade etmek için yeterince genel olup olmadığı benim için net değil (Gilles ve ben yorumlarda ima ettiği gibi), bu nedenle bu sonucun burada geçerli olup olmadığı tamamen açık değil . (b) Daha önemli: web hizmetinin "Bilmiyorum" yanıtı vermesine izin vermek için lütfen sorun ifadesinin uygun şekilde ayarlandığını düşünün ve nadiren "Bilmiyorum" yanıtını veren bir algoritma bulmak istiyoruz olabildiğince. Daha önce yorumlarda bunu önerdi; Sorunun kendisinde bunu daha açık hale getirmek için soruyu düzenleyeceğim.
DW

Kanıtı uyarlayabileceğinizden şüpheleniyorum, ancak sonuç takip etmiyor. Bu biçimciliğin içinde ifade edilemeyen bağlamsız diller olduğunu düşünüyorum: örneğin, dengeli parantezleri nasıl ifade edersiniz? Kleene yıldızı altında dil sınıfı kapalı değil mi?
Gilles 'SO- kötü olmayı bırak'

@Gilles, evet, bunu düşündüm. Kanıtı nasıl uyarlayacağımı hemen anlayamadım. Bağlamdan bağımsız bir dilbilgisinin düzenli olup olmadığını söylemenin standart kanıtı Greibach teoremi ile yapılır. Ancak bana bu dillerin sınıfının Greibach teoreminin öncüllerini karşıladığı gibi görünmüyor (normal setlerle birleştirme altında kapalı ve sendika altında kapalı gibi görünmüyor). Belki aşina olmadığım başka kanıtlar da var. Katılıyorum, bu cebirsel formda dengeli parantez dilini nasıl ifade edeceğimiz açık değil.
DW

Referansları ekledim.
J.-E.

Yayınınız soruyu cevaplamıyor çünkü farklı bir dil sınıfına hitap ediyor. Burada izin verilen cebirsel biçimler (tek bir kelime ifadesi ile) keyfi bağlamsız dilleri ifade etmek için gerekli olan cebirsel biçimler kadar genel değildir. Bu ikisinin kesişimi için sorunun çözülebileceği bir durum olabilir.
Gilles 'SO- kötü olmayı bırak
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.