Bir dil verilen , uzunluğu kümesini tanımlamak kelimelerin uzunluklarının kümesi olarak : L L L S ( L ) = { | u | ∣ u ∈ L }
Hangi tamsayı kümeleri normal bir dilin uzunluk kümesi olabilir?
Bir dil verilen , uzunluğu kümesini tanımlamak kelimelerin uzunluklarının kümesi olarak : L L L S ( L ) = { | u | ∣ u ∈ L }
Hangi tamsayı kümeleri normal bir dilin uzunluk kümesi olabilir?
Yanıtlar:
İlk olarak, önemli olmayan ama uygun bir gözlem: boş olmayan bir alfabe üzerinde normal bir dil için olan tamsayı kümelerinin kümesi , seçime bağlı değildir kümesi. Bunu görmek için tanıyan sonlu bir otomat düşünün ; de bulunan kelimelerin uzunlukları, başlangıç durumundan herhangi bir kabul durumuna kadar etiketlenmemiş bir grafik olarak görülen otomattaki yolların uzunluklarıdır. Özellikle, her oku etiketleyebilir ve alfabesi üzerinde aynı uzunlukta ayarlanmış normal bir dil alabilirsiniz . Tersine, tek öğeli bir alfabe üzerinde normal bir dildir, önemsiz bir şekilde daha büyük bir alfabeye enjekte edilebilir ve sonuç hala normal bir dildir.
Bu nedenle, tek bir alfabe üzerinde kelimeler için olası uzunluk kümelerini arıyoruz. Tek bir alfabede, dil, tekli olarak yazılan uzunluktur: . Bu tür dillere tekli diller denir.
Let düzenli bir dil olması ve tanıyan bir deterministik sonlu otomat (DFA) dikkate . kelimelerinin uzunluk kümesi, DFA'da başlangıç durumunda başlayan ve kabul durumlarından birinde sona eren yönlendirilmiş bir grafik olarak görülen yolların uzunluk kümesidir. Tek elementli bir alfabe üzerindeki bir DFA oldukça uysaldır (NFA'lar daha vahşi olur): sonlu bir liste veya dairesel bir liste. Liste sonluysa, liste sırasını izleyerek ile arasındaki durumları numaralandırın ; daireselse, listenin başını takip eden ila ve döngü boyunca ila arasındaki sayıları numaralandırın .
Let kadar durumları kabul indekslerinin kümesi ve ile ilgili durumları kabul indekslerinin kümesi için . Sonra
Tersine, ve iki tamsayı olsun ve ve iki sonlu tamsayı seti olsun, öyle ki ve . Sonra normal bir dildir: dil yukarıda açıklanan DFA tarafından tanınmaktadır. Bu dili tanımlayan normal bir ifade .
İngilizce özetlemek gerekirse , normal dillerin uzunluk kümeleri, belirli bir değerin üzerinde periyodik¹ olan tamsayı kümeleridir .
¹ bir asmak için köklü kavramı , periyodik aracı bir fonksiyonudur dizi karakteristik fonksiyonu ( biz asansör hangi bir fonksiyon ) periyodiktir. Belirli bir değerin üzerinde periyodik sınırlandırılmış işlevin periyodik bir işleve kadar uzatılabileceği anlamına gelir .
herhangi bir sonlu alt kümesi, normal bir dilinin uzunluk kümesi olabilir, çünkü tekli bir alfabe ve şu şekilde tanımlayabilirsiniz (buna boş dil ve ). L { 0 } L { 0 ℓ 1 , ... , 0 ℓ n } { ε }
Şimdi sonsuz kümeler için. Kısa bir analiz yapacağım, ancak son cevap yeterince açık olmayabilir. Bana sormadıkça ayrıntıya girmeyeceğim, çünkü bence sezgisel ve şimdi fazla vaktim yok.
sırasıyla ve dilleri üreten normal ifadeler olsun . Bunu görmek çok kolayL 1 L 2
Böylece, düzenli bir dilin uzunluğu belirlenmiş olabilir tamsayılar olası setleri sonlu alt kümeleri olanlardır veya bu sonlu alt kümelerini alarak inşa edilebilir ait ve önceki formülleri sonlu kez kullanarak.
Burada, düzenli dillerin tanım gereği, düzenli ifadeyi sonlu kez oluşturmak için kurallar uygulanarak oluşturulduğunu kullanıyoruz. Normal ifadelerde 0 ve 1 uzunluğundaki kelimelerle yalnızca temel durum olarak , herhangi bir sonlu alt kümesiyle başlayabileceğimizi unutmayın . Bu, tüm (sonlu) kelimelerin alfabenin sembollerinin (sonlu) birleştirmeleri olmasıyla kolayca doğrulanabilir.
Düzenli diller için pompalama lemmasının göre, bir vardır böyle bir dize o için eşit, en azından uzunluğunun aşağıdaki biçimde yazılabilir: aşağıdaki üç koşul tutun Nerede:
Bu, kümeler için bize bir test verir: bir küme, tüm öğeleri sabit bir büyük olmayan rasgele bir tamsayılar kümesi , artı belirlenmemiş bir değerinin katları (uzunluk ve ) olan, bir kaç sonlu bir değer.
Başka bir deyişle, normal diller için olası dil uzunluğu kümeleri, aşağıdaki gibi tanımlanan kümelerin birliği (EDIT ve EDIT2'de tartışıldığı gibi) ile ilgili olarak kapatılmasıdır: Sabit ve tüm sonlu kümeler , düzenli diller için pompalama lemmasıyla (Gilles'te aptalca bir hatayı işaret ettiği için Gilles'e teşekkürler) orijinal sürümü, burada set ) tanımlamaktayım .
EDIT: Biraz daha tartışma. Kesinlikle tüm sonlu tamsayılar uzunluk kümeleridir. Ayrıca, iki uzunluk kümesinin birleşimi de herhangi bir uzunluk kümesinin tamamlayıcısı olması gerektiği gibi bir uzunluk kümesi olmalıdır (dolayısıyla kesişme, dolayısıyla fark). Bunun nedeni, bu operasyonlar altında normal dillerin kapalı olmasıdır. Bu nedenle, yukarıda verdiğim cevap (muhtemelen) eksiktir; gerçekte, bu tür kümelerin herhangi bir birleşimi aynı zamanda bazı normal dilin uzunluk kümesidir (kesişim, tamamlayıcı, fark vb. gerektiren terk ettiğimi unutmayın, çünkü bunlar normal özelliklerin bu özellikler altında kapalı olması gerçeğiyle kaplıdır. EDIT3'te tartışılmıştır; diğerleri doğru olsa bile, sadece sendikanın gerekli olduğunu düşünüyorum, durum böyle olmayabilir).
EDIT2: Daha fazla tartışma. Verdiğim cevap temelde Janoma'nın cevabını biraz daha ileri götürürseniz nerede olacağınızdır; kısmı Kleene yıldızdan gelen birleştirme gelir ve birlik, kavşak, farkın tartışma ve normal ifade + (yanı sıra düzenli dillerin diğer kapatma özelliklerine) otomata gelen kanıtlanabilir başlangıç) gelen kompleman.
EDIT3: Janoma'nın yorumları ışığında, ilk EDIT'te tartıştığım dil uzunluğu kümelerinin kapatma özelliklerini unutalım. Normal diller bu kapatma özelliklerine sahip olduğundan ve her normal dilde bir DFA bulunduğundan, normal diller için pompalama lemmasının tüm sendikalar, kavşaklar, tamamlayıcılar ve normal dillerin farklılıkları için geçerli olduğu ve bunu bu şekilde bırakacağız. ; Orijinalimin (Gilles'in girdisi sayesinde değiştirildi) düzeltilmesi için hala gerekli olabileceğini düşündüğüm sendika dışında bunlardan herhangi birini düşünmeye bile gerek yok. Yani, son cevabım şu: orijinal versiyonda söylediğim, artı set birliğine göre dil uzunluğu setlerinin kapanması.