
- •2.Графы
- •3. Конечные автоматы и формальные языки
- •4. Конечные автоматы с ε-переходами. Эпсилон ε -замыкание. Расширенные переходы и языки ε -нка.
- •5. Операции над яыками и операторы регулярных выражений. Построение регулярных выражений. Язык, представленный регулярным выражением.
- •1.Объядинение языков.
- •2.Конкатенация языков
- •3.Звездочка Кинни.
- •6. Лемма «о накачке для регулярных языков».
- •8. Язык, задаваемый грамматикой.
- •7. Определение контекстно-свободных грамматик.
3. Конечные автоматы и формальные языки
Определение детерминированного конечного автомата, способы его задания. Расширенные функции переходов на цепочки. Язык ДКА.
Алфавитом
называется конечное непустое множество
символов. Пример: бинарный алфавит =
{0, 1}. Цепочкой илисловом
называется любая последовательность
символов из некоторого алфавита.
- пустая цепочка (пустое слово) не содержит
ни одного символа.
Длина
слова – число позиций для символов в
цепочке. Пример: 01100. Символов – 2 длина
– 5.
- все слова в алфавите
Множество слов
каждое из которых принадлежит
называетсяязыком
L.
Детерминированным
конечным автоматом (ДКА) называется
пятерка A
= (Q,
,
,
,F)
Q
– непустое конечное множество (множество
состояний).
-
алфавит, множество входных символов.
- начальное состояние.
F – множество допустимых (заключительных) состояний
,
Язык ДКА – множество всех его допустимых цепочек. Любой ДКА определяет язык, а именно множество всех цепочек приводящих автомат из начального состояния в одно из допускающих. Язык ДКА – множество всех меток вдоль всех маршрутов, ведущих из начального состояния в любое допускающее.
,
- расширенная
функция переходов,
Индукция по длине слова
| w | - количество позиций в слове
| w
| = 0
,
,
,
x
– начальное слово, a
– алфавитный символ,
Язык ДКА
A
= (Q,
,
,
,F),
такие слова, которые приводят начальное
состояние в конечное. ЯзыкL
называется регулярным, если L
= L(A)
(если совпадает с языком некоторого
автомата).
Определение недетерминированного конечного автомата, способы его задания. Расширенные функции переходов на цепочки. Язык НКА.
НКА обладает свойством находиться в нескольких состояниях одновременно. Эту особенность часто представляют как свойство автомата “делать догадки” относительно его входных данных. Нужно: 1. определить НКА 2. показать, что всякий такой автомат допускает язык допустимый ДКА.
НКА допускает регулярные языки точно так же как и ДКА.
НКА автоматы строить легче, можно преобразовать в ДКА.
A
= (Q,
,
,
,F),
- функция перехода
Различие ДКА и НКА
состоит в типе функции
.
НКА
функция, аргументами которой являются
состояния и элемент входного алфавита,
а значениями
- множество состоящее из 0,1 или нескольких
состояний.
Язык НКА. НКА
допускает цепочку w,
если в процессе чтения этой цепочки
можно выбрать хотя бы 1 последовательность
переходов, так чтобы перейти из начального
состояния в одно из допускающих. Тот
факт, что при другом последовательности
переходов по символам цепочки
мы можем попасть в недопускающее
состояние или вообще не попасть ни в
какое, совсем не означает
не является допустимым.
Для данного НКА
A
= (Q,
,
,
,F)
язык L(A)
есть множество цепочек
Конструкция подмножеств. Теорема эквивалентности детерминированных и недетерминированных конечных автоматов.
Предположим есть
D-ДКА
и есть N-НКА,
каждый из этих автоматов допускает язык
для D-L(D)
и N-L(N),
тогда автоматы D
и N
будем называть эквивалентными если их
язык совпадают (т.е. D-ДКА
N-НКА)
если L(D)
= L(N).
Задача. Есть N, построим D такой что языки у них совпадают L(D) = L(N). Это делается с помощью конструкций подмножеств.
Дано
,
будем строить
.
Начнем с множества
состояний
.
Рассмотрим все его подмножества
,
т.е. возникает булеан
=
.
Начальное состояние нового автомата
будет подмножество состояний из одного
элемента
,
.
Определим множество заключительных
состояний.
есть множество подмножества вS
множества
,
для которого
.
В качестве заключительного состояния
нового автомата мы берем все подмножества
из булеана которые содержат хотя бы
одно состояние из
.
Определим функцию
,
мы должны взять
т.еS
подмножество
(
).
Теорема. Если
детерминированный конечный автомат
построен из недетерминированного
автомата
,
с помощью конструкций подмножеств, тоL(D)
= L(N)
(языки допускаемые этими автоматами
совпадают).
Доказательство:
индукция по длине слова
,
покажем что
(
крышечка недоступна маткад гнилой
поэтому как есть).
Установим равенство
,
считаем что
при этом
т.к.
.
Индукция по
тогда слово можно представить
.
.
Предполагаем что наша формула верна
для всех слов
значит для всех х наша формула справедлива.
значение функции
являются: состояния
,
если детерминированный автомат то это
множество воспринимаем как один элемент,
а если недетерминированный то разные
множества состояния.
.
Заметим что
детерминированный автомат D
и недетерминированный N
допускают слово
когда
или
соответственно
содержат некоторое состояние из
.
Теорема доказана.