Düzenli bir ifade sonsuz olabilir mi?


10

Normal ifadeler kullanılarak tanımlanabilen ve DFA / NFA (sonlu otomata) tarafından tanınabilen dillerin eşdeğer olduğunu biliyorum. Ayrıca dili için DFA mevcut değildir . Ama yine de normal ifadeler kullanılarak yazılabilir . Ancak, düzenli bir ifadeye sahip her dilin onu tanıyan bir DFA'ya sahip olduğunu biliyoruz (önceki ifademe aykırı). Bunun önemsiz bir şey olduğunu biliyorum, ama düzenli ifadenin tanımı sonlu olması koşulunu içeriyor mu?{0n1n|n0}{ϵ}{01}{0011}......


3
Zaten kendi sorunuzu cevapladınız: REG CFL ise, bu tür terimler normal ifadeler olamaz.
Raphael

1
Sadece bir yan not: Biz DFA / NFA olmanın sonlu gereksinimini damla, biz olabilir kabul etmek bir otomatı inşa {0n1nn0} .

3
Bir terminoloji noktası olarak, 'otomata' kelimesi 'otomat' ın çoğuludur. 'Otomata' kelimesi yoktur - zaten olduğundan daha çoğul yapamazsınız. (
otomatalar

Yanıtlar:


23

Düzenli ifadelerin sonsuz olmasına izin verilseydi, o zaman herhangi bir dil düzenli olurdu.

Dil verilen , her zaman normal ifade tanımlayabilir tam olarak tanımlayan, . (Örnek: normal ifadesi tanımlar .)L={w1,w2,}R=w1+w2+L
R1=ϵ+0+1+00+01+10+11+L1={0,1}

Bazı dillerin düzenli olmadığını biliyoruz, dolayısıyla bu sonsuz düzenli ifadelerin sonlu düzenli ifadelerden daha büyük bir dil sınıfını tanımladığını göstermektedir.


5
Bu cevabı seviyorum, çünkü sadece sonsuz düzenli ifadelerin farklı olmadığını değil, genel olarak kavramın anlamlı olmadığını söylüyor.
jmite

İkinci paragrafıma gömdüğüm noktanın daha özlü bir ifadesi ve bu nedenle daha net.
Davislor

Ancak saf bir totoloji ile sonuçlanır. Öyleyse, bu forma sahiplerse neden tüm dilleri düzenli görmüyoruz? Normal ifadelerle yaptığımız şeyler artık çalışmıyor. Bir durum makinesini endüktif algoritma ile inşa edemeyiz çünkü asla bitmez ve sonsuz hallere sahiptir. Listedeki her şeyi karşılaştıramaz ve hiçbir şey eşleşmezse reddedemeyiz. Ve yine de listeyi fiziksel olarak temsil edemiyoruz. (Bilgisayarla oluşturabileceğimiz listeler karar verilebilir dillerdir.) Her dilin bu forma sahip olduğunu, ancak regexes hakkında bildiğimiz türden şeyleri kullanarak kanıtlayabiliriz.
Davislor

@jmite "anlamlı değil" veya özel bir durum mu?
BAR

@BAR Anlamsız değildir, sınırsız düzenli ifadelerle tanımlanan üzerindeki diller sınıfında olduğu gibi sadece yani tüm diller kümesidir. Sonlu RE'ler, CFG'ler ve hatta Turing Makineleri ile dil bildiğiniz bir dil sınıfına sahip değiliz. Σ2Σ
jmite

5

Evet, sonlu olmalı. Olası sonsuz eşleşme kümesine sahip olduğunuzu ve girdinizin olduğunu düşünün 011. Hiç reddedebildin mi? Kontrol etmek için hiç maçınız biter mi?

Bu tanım gereği düzenli olmayacak herhangi bir dil var mı ? Verilen programın verilen girdi üzerinde durması için tüm program ve girdi çiftlerinin seti ne olacak?

Şimdi, bir dildeki dizeleri sözlük sırasına göre sıralayan bir programınız varsa -

Güncelleme

Yorumlardaki geri bildirimlere dayanarak biraz açıklığa kavuşturmak için, bu formun her dilinin düzenli olmamasının nedeni tanım gereğidir. Örneğin, Kleene teoreminin kanıtına bakarsanız, düzenli bir ifadenin sonlu durum makinesi ürettiğini kanıtlamak için sonlu olması gerektiğine bağlıdır.

Neden “düzenli” dili bu şekilde tanımlıyoruz? Her biçimsel dil bir alfabedeki dizelerin bir alt kümesi olduğundan ve her dizge tekil birlikler olarak ifade edilebilir, bu nedenle herhangi bir dizge kümesine “normal” bir dil denirsek, normal dil sadece bir eşanlamlı olur dil . Bu, özellikle donanım veya yazılımda gerçekten uygulayamadığımız için çok kullanışlı bir tanım değil. Herhangi bir yerde rastgele bir sonsuz liste saklayamayız veya sonsuz bir makine oluşturamayız.

Bahsettiğim gibi, bir dilde tüm dizeleri sıralamak için bir yolunuz varsa, bundan bir karar verici oluşturabilirsiniz (tam dizeyi gördüğünüzde kabul edin, bir dizeden sonra gelen bir dizeyle karşılaştığınızda reddedin 'arıyoruz) ve tersi (sırayla her dize için, kararlayıcıdan geçirin ve yalnızca kabul edilirse çıktı alın). Dolayısıyla, her sayılabilir dili düzenli kabul edersek , her karar verilebilir dil “düzenli” olurdu ve sonlu durum makineleri ve bunların eşdeğer kodlamaları tarafından sonlu ifadeler olarak tanınan diller için yeni bir terime ihtiyacımız olacaktır.


1
Bu cevap yanlış. Ğunu yapması bazı bir dilin temsil etmez bir naif bir şekilde algoritmik bir decider inşa etmeye elverişli değildir değil bu temsili yanlış olduğunu ima; başka yaklaşımlar da olabilir. Aslında, her karar verilebilir dilde sasha'nın önerdiği biçimin bir temsili vardır! Kısacası, "Nasıl göremiyorum, bu yüzden imkansız olmalı" yanılsamasını taahhüt ediyorsunuz.
Raphael

@Raphael: Lütfen ifadenizin sonuçlarını düşünün, “ her karar verilebilir dilde Sasha'nın önerdiği biçimin bir temsili var!” Aslında, cevabımda belirttiğim nokta bu. Soru, bu formun tüm dilleri düzenli olarak tanımlandı mı? Her karar verilebilir dil düzenli midir? (Ve gösterdiğim gibi, bazı kararsız olanlar da?) Bu yararlı bir “düzenli” tanımı olabilir mi?
Davislor

Ayrıca, dizelerin sonsuz bir listesi için bir karar vericinin yapılamayacağını yanlışlamaktan ziyade, son cümle nasıl yapılabileceğine dair bir ipucuydu: dizelerin listesi iyi düzenlenmişse, en kısa zamanda reddedebilirsiniz sıralamasında geçmiş bir dize ile karşılaştığınızda. Bununla birlikte, sonlu durum makinesi bunu yapamaz çünkü sonsuz listedeki her bir dizeyle karşılaştırıldığında tüm durumları temsil edemez ve normal ifadeler de olamaz. Eğer yapabilirlerse, tüm karar verilebilir dilleri tanıyacak kadar güçlü olurlardı.
Davislor

0

Düzenli ifadelerin sonsuz olmasına izin verildiğini varsayalım.

Böylece {ϵ} ∪ {01} ∪ {0011} ... tarafından tanımlanan dil normal olacaktır. Her normal dil için bir NFA vardır. Bu NFA'yı elde etmenin bir yolu, her {ϵ}, {01}, {0011} ... için ayrı NFA'lara sahip olmak ve bunları using geçişleri kullanarak birleştirmektir. Sonsuz belirgin düzenli ifadeler olduğundan, birleştirilmek için sonsuz alt NFA'lara ihtiyacımız olacaktır. Bununla birlikte, NFA sadece sınırlı sayıda duruma sahip olabilir (NFA'nın tanımı).

Dolayısıyla, sonsuz düzenli ifadelerin birleşmesiyle tanımlanan dili tanımlayabilen, dilin düzenli olmadığını ima eden bir NFA yoktur.

Dolayısıyla, sonsuz düzenli ifadelerin birleşmesi ile tanımlanan dili aynı dili tanımlayabilen düzenli bir ifade yoktur.

Dolayısıyla, düzenli ifadeler sadece sonlu ifadelere sahip olabilir.


"Sonsuz düzenli ifadeleriniz" daha sonra normal diller değil, başka bir dil sınıfı tanımlar. Aslında, herhangi bir dili herhangi bir şekilde tanımlayabilirler ve bu tamamen ilgisizdir (sonlu değildir, bu nedenle çalışmak zordur; ve herhangi bir şey yapamazlar, böylece sınırlamalar açısından çalışmak için hiçbir şey yapamazlar).
vonbrand
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.