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


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 ii N }L1,L2,

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

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

Нарешті, я здогадуюсь, що плутанина може виникнути через фразування оригінального питання, яке починається з "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={ak21kn}{ajj(n+1)2}
n1Mnanaa

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

i=0nMi=Mn

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

i=0Mi={an2n1}

1

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

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

Аналогічно, визначаючи , ми маємо множини які є регулярними як доповнення синглтонного набору. Тоді що є доповненням , отже, ко-RE. І цього можна досягти за допомогою будь-якого набору спільних зусиль.Mi=ΣLiMii=1Mi=Σ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.