Доказательство нерегулярности языков: лемма о разрастании — различия между версиями
DrozdovVA (обсуждение | вклад) |
DrozdovVA (обсуждение | вклад) м (→Доказательства нерегулярности языков) |
||
Строка 21: | Строка 21: | ||
== Доказательства нерегулярности языков == | == Доказательства нерегулярности языков == | ||
Для доказательства нерегулярности языка можно использовать свойства регулярных и автоматных языков. | Для доказательства нерегулярности языка можно использовать свойства регулярных и автоматных языков. | ||
− | <br/>Часто удобно использовать отрицание леммы о | + | <br/>Часто удобно использовать отрицание леммы о разрастании. Пусть <tex>L</tex> - язык над алфавитом <tex>\Sigma</tex>. Если для любого натурального <tex>n</tex> найдётся такое слово <tex>\omega</tex> из данного языка, что его длина будет не меньше <tex> n</tex> и при любом разбиении на три слова <tex>x,y,z</tex> такие, что <tex>y</tex> непустое и длина <tex>xy</tex> не больше <tex>n</tex>, существует такое <tex>k</tex>, что <tex>xy^kz \notin L</tex>, то язык <tex>L</tex> - не регулярный. |
=== Нерегулярность языка правильных скобочных последовательностей === | === Нерегулярность языка правильных скобочных последовательностей === | ||
Пусть дан какой-то <tex>n</tex> для него предъявляем слово <tex>\omega=(^n)^n</tex>. После этого слово <tex>\omega</tex> как-то разбили на <tex>x, y, z</tex>. Так как <tex>|xy|\leqslant n</tex>, то из-за выбранного слова <tex>y=(^b</tex>, где <tex>b</tex> больше нуля. Для любого такого разбиения берём <tex>k=2</tex> и получаем <tex>xy^kz=(^{n+b})^n</tex>, что не является правильной скобочной последовательностью. Значит язык правильных скобочных последовательностей не регулярный язык. | Пусть дан какой-то <tex>n</tex> для него предъявляем слово <tex>\omega=(^n)^n</tex>. После этого слово <tex>\omega</tex> как-то разбили на <tex>x, y, z</tex>. Так как <tex>|xy|\leqslant n</tex>, то из-за выбранного слова <tex>y=(^b</tex>, где <tex>b</tex> больше нуля. Для любого такого разбиения берём <tex>k=2</tex> и получаем <tex>xy^kz=(^{n+b})^n</tex>, что не является правильной скобочной последовательностью. Значит язык правильных скобочных последовательностей не регулярный язык. | ||
=== Нерегулярность языка <tex>\{0^a1^a\}_{a\geqslant 0}</tex> === | === Нерегулярность языка <tex>\{0^a1^a\}_{a\geqslant 0}</tex> === | ||
Пусть дан какой-то <tex>n</tex> для него предъявляем слово <tex>\omega=0^n1^n</tex>. После этого слово <tex>\omega</tex> как-то разбили на <tex>x, y, z</tex>. Так как <tex>|xy|\leqslant n</tex>, то из-за выбранного слова <tex>y=0^b</tex>, где <tex>b</tex> больше нуля. Для любого такого разбиения берём <tex>k=2</tex> и получаем <tex>xy^kz=0^{n+b}1^n</tex>, что не является элементом множества слов языка <tex>\{0^a1^a\}_{a\geqslant 0}</tex>, значит этот язык не регулярен. | Пусть дан какой-то <tex>n</tex> для него предъявляем слово <tex>\omega=0^n1^n</tex>. После этого слово <tex>\omega</tex> как-то разбили на <tex>x, y, z</tex>. Так как <tex>|xy|\leqslant n</tex>, то из-за выбранного слова <tex>y=0^b</tex>, где <tex>b</tex> больше нуля. Для любого такого разбиения берём <tex>k=2</tex> и получаем <tex>xy^kz=0^{n+b}1^n</tex>, что не является элементом множества слов языка <tex>\{0^a1^a\}_{a\geqslant 0}</tex>, значит этот язык не регулярен. | ||
+ | |||
== См. также == | == См. также == | ||
* [[Лемма о разрастании для КС-грамматик]] | * [[Лемма о разрастании для КС-грамматик]] |
Версия 09:38, 30 октября 2011
Содержание: |
Лемма · Доказательства нерегулярности языков · См. также · Литература |
---|
Лемма (О разрастании): |
Пусть регулярный язык над алфавитом , тогда существует , такой что для любого слова , длины не меньше найдутся слова , для которых верно и для всех . — |
Доказательство: |
Пусть |
Замечание. Условие леммы не является достаточным для регулярности языка.
Доказательства нерегулярности языков
Для доказательства нерегулярности языка можно использовать свойства регулярных и автоматных языков.
Часто удобно использовать отрицание леммы о разрастании. Пусть - язык над алфавитом . Если для любого натурального найдётся такое слово из данного языка, что его длина будет не меньше и при любом разбиении на три слова такие, что непустое и длина не больше , существует такое , что , то язык - не регулярный.
Нерегулярность языка правильных скобочных последовательностей
Пусть дан какой-то
для него предъявляем слово . После этого слово как-то разбили на . Так как , то из-за выбранного слова , где больше нуля. Для любого такого разбиения берём и получаем , что не является правильной скобочной последовательностью. Значит язык правильных скобочных последовательностей не регулярный язык.Нерегулярность языка
Пусть дан какой-то
для него предъявляем слово . После этого слово как-то разбили на . Так как , то из-за выбранного слова , где больше нуля. Для любого такого разбиения берём и получаем , что не является элементом множества слов языка , значит этот язык не регулярен.См. также
- Лемма о разрастании для КС-грамматик
- Интерпретация булевых формул с кванторами как игр для двух игроков
Литература
- Хопкрофт Д., Мотвани Р., Ульман Д. — Введение в теорию автоматов, языков и вычислений, 2-е изд. : Пер. с англ. — Москва, Издательский дом «Вильямс», 2002. — 528 с. : ISBN 5-8459-0261-4 (рус.)