Bir dilin bağlamdan bağımsız olup olmadığını test etme algoritması


19

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

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:

L={E:S}

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

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

  • 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ı tutabilecek 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, isterseniz bir dili cebirsel biçimde belirtmek için herhangi bir metinsel yöntemi değiştirebilirsiniz.


Dillerin düzenliliği ile başlamak daha kolay olmaz mıydı?
Yuval Filmus

@YuvalFilmus, kesinlikle olur! Şimdi bahsettiğinize göre, bu harika bir fikir. Sorunun normal diller için uygun olduğunu düşünüyor musunuz? Bunun değerli olabileceğini düşünüyorsanız, ilgili dillere normal bir dil sormaktan memnuniyet duyarım.
DW

2
Normal diller için kesinlikle daha kolay olurdu. Bu arada, genel karar verilemezlik, bahsettiğiniz formun dilleri için geçerli değildir.
Yuval Filmus

4
Korkarım bu sorun muhtemelen açık, en azından belirli bir durum: cstheory.stackexchange.com/questions/17976 . Daha genel probleminiz için kararsızlığa kavuşmanın bir yolu olabilir, ama görmüyorum.
sdcvvc

dilde bazı örnek kelimeler vermek faydalı olacaktır. daha fazla araştırma / işbirliğini önermek Bilgisayar Bilimi Chat
vzn

Yanıtlar:


0

By Rice'ın teoremi bir Turing makinesi tarafından kabul edilen dil önemsiz olmayan herhangi özelliği varsa, görmek için (burada: bağlam özgür olmak) Karar verilebilen değildir. Bu nedenle, bir yanıt umuduyla Turing'i tamamlamamak için tanıma makinelerinizin (veya açıklamanızın) gücünü kısıtlamanız gerekir.

Bazı dil açıklamaları için cevap önemsizdir: Eğer düzenli ifadelerle, düzenli, dolayısıyla bağlamdan bağımsızdır. Bağlamdan bağımsız gramerlerle ise, aynen.


1
Tüm yorumlarınıza katılıyorum, ancak bunun soruyu nasıl cevapladığını gördüğümden veya soruyu cevaplamak için nasıl kullandığımdan emin değilim. Tüm bu gerçeklerin farkındayım. Dil belirtmenin belirli bir yolunu tanımlarım. Turing tamamlandı mı? Bana Turing-tamamlanmış gibi görünmüyor. Doğrusal eşitsizliklerin bir sistemi Turing-complete değil, bu yüzden Turing-complete olmayacak kadar kısıtladığımı sanıyorum. Ayrıca, dilleri belirtmek için verdiğim yöntem için, normal bir ifade olmadığı ve bağlamsız bir dilbilgisi olmadığı için önemsiz değildir.
DW

-2

Herhangi bir dil Aşağı Açılan Otomatlar tarafından kabul edilir, CFL'dir. Bir dilin CFL olup olmadığını belirlemek için ayrıntılı bir döküm. dilin CFL olup olmadığını kontrol et


Bu bir algoritma değil.
xskxzr

Bunun soruyu nasıl cevapladığını anlamıyorum. Bir dilin bir PDA tarafından kabul edildiğinde bağlamdan bağımsız olduğunun farkındayım, ancak bu soruda istenen formun bir algoritmasını bulmakta yardımcı görünmüyor. Bağlandığınız geeksforgeeks makalesi, bu sorun için tam bir algoritma sağlamaz; sadece daha kolay olan kapsamlı olmayan özel durumları listeler (ve bazı ifadeleri biraz kabataslak / şüpheli olduğu için büyük bir referans değildir).
DW

AFAIK, bunun için henüz iyi yapılandırılmış bir algoritma yok. (Eğer Yanlışsam beni düzelt). Yapabileceğimiz en iyi şey vakaları kontrol etmektir.
SiluPanda

-3

Bir CFG'yi kontrol etmek istiyorsanız JFLAP yazılımını deneyin. Hatta JFLAP geliştiricilerinden size yazılımın kodunu veya algoritmasını vermesini isteyebilirsiniz. buradan JFLAP alabilirsiniz http://www.jflap.org/jflaptmp/ ücretsizdir ancak JDK veya JRE veya başka bir şey gerektirir. Ya da belki diğer benzer yazılımları ve geliştiricilerini deneyebilirsiniz.


1
Bunun soruyu cevapladığından emin değilim. JFLAP'ın matematiksel gösterimde bir dili kabul eden ve size bağlamsız olup olmadığını söyleyen bir özelliği yoktur.
Yuval Filmus

Sipser kitabındaki THEOREM 2.20 Bir dil, yalnızca bazı aşağı itme otomatları tanıdığı takdirde bağlamdan bağımsızdır. Ve bir dilbilgisinden JFLAP'ta PDA oluşturabilirsiniz
Haseeb Hassan Asif

Belki de JFLAP içine konulamayan matematiksel gösterim konusunda haklısınız, ancak yine de bir dilbilgisinin tüm kurallarını koyabilirsiniz ve bunu bir PDA'ya dönüştürebilir veya bir CFG veya başka bir hata olmadığını söyleyebilir
Haseeb Hassan Asif

{anbncn:nN}

2
Ben JFLAP bir dönüştürebilirsiniz hayal bağlamdan-bağımsız eşdeğer bir PDA için dilbilgisi, ancak bu burada kesinlikle yardımcı olamaz.
Yuval Filmus
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.