Yalnızca 2 normal ifade işlemiyle ifade edilemeyen normal diller


12

Tüm normal dillerin düzenli ifadelerle ifade edilebileceğini düşündüm (eğer bir dil düzenli ise, normal ifade ile ifade edilebilir), ancak bunun için düzenli işlemlerin üçüne (birleştirme, birleşme ve yıldız) ihtiyacınız olduğu söylendi. tutmak.

Örneğin, ben söylendi ben eğer sadece birlik ve birleştirme kullanmak (3 2 takım) regex işlemlerini, sadece bu ikisiyle tarif edemez düzenli dil olacaktı.

Sadece Kleene yıldızı ve birliği ile aynı. Bunun bazı örnekleri nelerdir?

Yanıtlar:


19

Yalnızca birleşim ve birleştirme ile sonsuz bir dili tanımlayamazsınız. Birleşme ve birleştirme yalnızca sonlu sayıda dizge üretebilir. Yalnızca birleşim ve Kleene yıldızı ile, gibi bir dili tanımlayamazsınız , çünkü yalnızca a üreten bir ifadeyi yalnızca b üreten bir ifadeyle birleştirmenin bir yolu yoktur . Sadece birleştirme ve Kleene yıldızı ile L = { a , b } gibi bir dili tanımlayamazsınız .L={ab}abL={a,b}


3
{a,b}

Öyleyse neden birleşme olmadan L = {a, b} tanımlayamıyorum? Yıldız ve birleştirme ile ayrı elemanlar olarak temsil edilemedikleri için mi? Sadece ab, bb, aba vs. yapabilir mi?
user3295674

@ user3295674 Kesinlikle.
DylanSp

ve L = {a *} gibi bir şey sadece birleşme ve birleştirme ile mümkün olmaz, değil mi? Çok teşekkür ederim!
user3295674

Birleştirme olmadan yıldızın nasıl tanımlanacağını bile anlamıyorum.
G. Bach


4

A(ab)(a(ab)b)(aa)

Eğer şimdi yıldız kullanılmasına izin verilir, ancak iç içe yıldız kullanılmazsa, o zaman tüm normal dilleri elde edip edemeyeceğini bilmek açık bir sorundur (en az 45 yıl). Bu soru genelleştirilmiş yıldız yüksekliği problemi olarak bilinir . Yuval Filmus'un bahsettiği yıldız yüksekliği problemine benzer, şimdi tamamlanmaya izin verilir.

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.