Союз регулярних мов, який не є регулярним


12

Я натрапив на це питання: "Наведіть приклади двох регулярних мов, які їх об'єднання не видають звичайної мови".

Це мене дуже шокує, оскільки я вважаю, що звичайні мови закриваються під союзом. Що означає для мене, що якщо я беру дві звичайні мови та об'єдную їх, я повинен отримати звичайну мову.

І я думаю, що я розумію доказ цього: З моїх слів, якщо мови регулярні, то існують автомати, які їх розпізнають. Якщо ми візьмемо всі стани (союз), і додамо новий стан для точки входу, і змінимо функцію переходу для нового стану за допомогою epsilon, у нас все нормально. Ми також показуємо, що існує шлях від кожної держави тощо.

Чи можете ви сказати мені, де я помиляюся, чи, можливо, інший спосіб підійти до питання.

Джерело запитання, вправа 4, французькою мовою.

Також те ж питання задається з перетином.


Інший спосіб бачити це. Припустимо, що такий нескінченний союз дає звичайну мову. Розглянемо будь-які нерегулярного мови . Ви можете поділити його елементи на нескінченну кількість де кожен з є кінцевим (і, отже, регулярним). Тепер зробіть союз усіх . За припущенням, це звичайна мова, але ми вважали, що є нерегулярною мовою, отже, суперечність. Якщо дозволити закриття в умовах нескінченного союзу, всі мови будуть регулярними. L i L i L i LLLiLiLiL
— Бакуріу

Для нескінченного союзу: візьміть будь-яку не регулярну мову та розгляньте кожну . Ясно, що регулярний. L i = { w i } L iL={w1,w2,w3,…}Li={wi}Li
— Pål GD

Відповіді:


26

Існує значна різниця між питанням, яке ви ставите перед цим, і питанням, поставленим у вправі. Питання задає приклад набору регулярних мов таких, що їх об'єднання не є регулярним. Зверніть увагу на діапазон об'єднання: від до . Регулярні мови закриваються за допомогою обмеженого з'єднання, і докази проходять по лініях, які ви накреслюєте у питанні, однак це розпадається під нескінченним союзом. Ми можемо показати це, взявши для кожного (зL = ∞ ⋃ i = 1 L i 1 ∞ L i = { 0 i 1 i } i Σ = { 0 , 1 } L = { 0 i 1 i ∣ i ∈ N }L1,L2,…

L=⋃i=1∞Li
1∞Li={0i1i}iΣ={0,1}). Нескінченний союз цих мов, звичайно, дає канонічну нерегулярну (без контексту) мову .L={0i1i∣i∈N}

Як осторонь, ми легко бачимо, де нормальне доведення не вдається. Уявіть ту саму конструкцію, де ми додамо новий стартовий стан і -переходи до старих стартових станів. Якщо ми робимо це з нескінченним набором автоматів, ми створимо автомати з нескінченною кількістю станів, очевидно суперечивши визначенню кінцевих автоматів.ε

Нарешті, я здогадуюсь, що плутанина може виникнути через фразування оригінального питання, яке починається з "Donner deux primjeles des suites de langages ...", що є ( приблизно , моя французька трохи іржава, але зовні перевірена!) "Наведіть два приклади послідовностей мов ...", а не "Наведіть два приклади мов ...". Необережне читання може помилити друге для першого, хоча.


1
І визначаючи як доповнення , їх перетин також було б нерегулярним. Ваше французьке читання правильно, а не лише приблизно . L iMiLi
— Лоран LA RIZZA

Ви праві щодо французької частини перекладу. Я хоч ця послідовність не мала значення. ха-ха. Дякую за відповідь, зараз мені зрозуміла різниця.
— Дейв

3

Для вашого другого питання розгляньте мови, визначені Зауважте, що для будь-якого , є регулярним, оскільки (1) лівий множина є кінцевим і, отже, регулярним, (2) правий набір позначається регулярним виразом тому є регулярним, і (3) звичайні мови закриті під обмеженими об'єднаннями, як ви вже знаєте.n ≥ 1 M n a n a a ∗

Mn={ak2∣1≤k≤n}∪{aj∣j≥(n+1)2}
n≥1Mnanaa∗

Не надто складно показати, що для будь-якого цілого нас є і, отже, тому індуктивно маємо (який нам насправді тут не потрібен, але це занадто красиво, щоб його не залишати).n≥1Mn+1⊆MnMn∩Mn+1=Mn+1

⋂i=0nMi=Mn

Тепер що не містить , тому жоден з цих рядків буде в повному перетині. Як наслідок, у нас з'явиться яка, як відомо, не є звичайною мовою. (Якщо ви не знали цього факту, це є в багатьох теоретичних текстах, і доказ того вартий зусиль для читання.)Mnan2+1,an2+2,…,a(n+1)2−1

⋂i=0∞Mi={an2∣n≥1}

1

Навіщо вибирати складні регулярні мови, щоб показати, що регулярні набори не закриваються в умовах нескінченного об'єднання? Однотонних мов достатньо, щоб показати, що будь-яка мова RE є нескінченним об'єднанням регулярних множин.

Візьмемо будь-який рекурсивно перечислимого мови . Кожен рядок має індекс нумерації . Нехай . Кожен є набором, отже, регулярним. Але є RE.Lw∈Li=index(w)Li={w∣i=index(w)}LiL=⋃i=1∞Li

Аналогічно, визначаючи , ми маємо множини які є регулярними як доповнення синглтонного набору. Тоді що є доповненням , отже, ко-RE. І цього можна досягти за допомогою будь-якого набору спільних зусиль.Mi=Σ∗∖LiMi⋂i=1∞Mi=Σ∗∖LL

Отже, будь-яка рекурсивна мова - це нескінченний союз регулярних множин, а також нескінченний перетин регулярних множин (не тих самих, але їх доповнень :).

Нескінченність сповнена сюрпризів, і те, що вірно для довільно великих значень, може бути неправдивим у нескінченності.


1

Якщо ви об'єднаєте нескінченно багато наборів одиниць, ви можете створити будь-яку мову (ну, принаймні, будь-яку мову повторної мови, тому що якщо це не можна визначити, ви не можете вказати список усіх його рядків). Наприклад, об'єднання наборів одиниць, де кожен містить різну паліндромну рядок над {a, b}, дає в результаті мову паліндром (без контексту): це {ϵ}⋃{a}⋃{b}⋃{aa}⋃{bb}⋃{aaa}⋃{aba}⋃{bab}⋃{bbb}⋃ ...

Ви можете зробити що - щось подібне з перетином, що робить нескінченно багато наборів , де кожен , де це в - й паліндром слово, в результаті чого мова все не палиндромов слів (додаток паліндромності мови, не -регулярний).Σ∗−{pi}pii

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.