Лемма о разрастании языка

 

В достаточно длинной строке регулярного языка всегда можно найти непустую подстроку, повторение которой произвольное количество раз порождает новые строки того же самого языка.

ПримерЯзык L1 = {ambn | m, n ³0} – регулярный, т.к., например, в строке aabbb повторение любой подстроки, образованной только из нулей или единиц, порождает строки (aaaabbb, aaabbb, aabbbb, aabbbbbb и т.д.) языка L1.

Язык L2 = {anbn | n ³1} – не регулярный, т.к. Действительно, любая итерация подстроки, состоящей только из нулей или единиц, нарушает баланс нулей и единиц. Подобные действия со смешанными подстроками, содержащими нули и единицы, приводят к нарушению порядка следования нулей и единиц. Таким образом, для языка L2 не строк, удовлетворяющих условиям леммы.

Удобным средством формального определения регулярных языков являются регулярные выражения.

ОпределениеРегулярные выражения над алфавитом S определяются следующим образом:

1) Æ - регулярное выражение (обозначает пустоте регулярное множество Æ);

2) e - регулярное выражение (обозначает регулярное множество {e}, состоящее из пустой строки);

3) а ÎS - регулярное выражение (обозначает множество {а});

4) если p и q – регулярные выражения, обозначающие множества P и Q, то посредством операций над выражениями определяются выражения следующих трех типов:

а) p|q или p+q – регулярное выражение (обозначает объединение PÈQ), где символ | или + называют операцией или (альтернативы);

б) pq или p×q – регулярное выражение (обозначает множество PQ = {xy | x ÎP, y ÎQ}), где символ «точка» (возможно умалчиваемый) называют операцией сцепления (конкатенации);

в) p* - регулярное выражение (обозначает множество P*), где символ «*» называют операцией итерации.

Соотношение между регулярными языками и регулярными выражениями устанавливает теорема Клини.

 

Теорема Клини.Каждому регулярному языку из S* соответствует регулярное выражение над множеством S.

 

ПримерПримеры регулярных выражений и их значений представлены в таблице 2.1.

 

Таблица 2.1 – Примеры регулярных выражений

 

Регулярное выражение Значение регулярного выражения
единственная строка 01
0|1 две строки: 0 и 1
1* строки, образованные из единиц, включая пустую строку
(0|1)* строки, образованные из символов 0 и 1, включая пустую строку
0|1* строки, состоящие из нуля и любой строки единиц, включая пустую
0|1* строки, состоящие из нуля и любой строки единиц, включая пустую
(0|1)*011 строки, образованные из символов 0 и 1, включая пустую, обязательно оканчивающиеся строкой 011

 

В практических приложениях вводятся дополнительные соглашения относительно записи регулярных выражений, например, запись вида р+ используется для обозначения выражения рр*.

 

Конечные автоматы








Дата добавления: 2016-03-27; просмотров: 919;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.