- •Курс лекций
- •Оглавление
- •Лекция 1 Языки и грамматики Языки
- •ГГрамматики
- •Лекция 2 Конечные автоматы Автоматы
- •Детерминированные конечные автоматы (распознаватели)
- •Языки и детерминированные конечные автоматы
- •Лекция 3 Конечные автоматы Недетерминированные конечные автоматы (распознаватели)
- •Эквивалентность дка и нка
- •Лекция 4 Конечные автоматы Минимизация конечных автоматов
- •Лекция 5 Регулярные выражения и регулярные грамматики
- •Регулярные выражения
- •Связь между регулярными выражениями и автоматными языками
- •Лекция 6 Регулярные выражения и регулярные грамматики Регулярные грамматики
- •Лекция 7 Свойства регулярных языков
- •Замкнутость класса регулярных языков
- •Алгоритмические проблемы регулярных языков
- •Лемма о расширении регулярных языков
- •Лекция 8 Контекстно-свободные языки
- •Контекстно-свободные грамматики
- •Лекция 9 Контекстно-свободные языки
- •Грамматический разбор
- •Неоднозначность грамматик и языков
- •Лекция 10 Преобразования кс‑грамматик и нормальные формы
- •Методы преобразования грамматик
- •Лекция 11 Преобразования кс‑грамматик и нормальные формы
- •Нормальные формы кс-грамматик
- •Лекция 12 Магазинные автоматы Магазинные автоматы
- •Недетерминированные магазинные автоматы
- •Лекция 13 Магазинные автоматы Магазинные автоматы и кс-языки
- •Лекция 14 Магазинные автоматы Детерминированные магазинные автоматы и детерминированные кс-языки
- •Лекция 15 Свойства контекстно-свободных языков
- •Лемма о расширении
- •Свойства замкнутости класса контекстно-свободных языков
- •Лекция 16 Свойства контекстно-свободных языков Некоторые алгоритмические проблемы для кс-языков
- •Предметный указатель
- •Формальные языки и грамматики Курс лекций
Языки и детерминированные конечные автоматы
Дадим теперь строгое определение языка, связанного с конкретным ДКА.
Определение 2.4.
Язык, допустимый ДКА M = (Q,,,q0,F), – это множество всех строк из *, допустимых автоматом М, т.е. L(M) = { | * и *(q0, ) F}.
Так как функции и * являются всюду определенными и каждый шаг работы автомата определяется единственным образом, то любая строка * после прочтения ее либо допускается (распознается) автоматом, либо отвергается им. Отсюда следует, что
= { | * и *(q0, ) F}.
Пример 2.5.
a a, b
q0 b q1 a, b q2
Этой диаграмме соответствует ДКА, допускающий язык L = {anb| n 0}.
Теорема 2.6.
Пусть M = (Q, , , q0, F) – детерминированный конечный авто-мат (распознаватель) и пусть DM – соответствующая диаграмма пе-реходов. В этом случае для любых qi, qj Q и + *(qi, ) = qj тогда и только тогда, когда в DM существует путь, помеченный последовательностью символов , из вершины qi в вершину qj.
Доказательство.
Проведем его индукцией по длине строки .
Пусть || = 1, т.е. = а для некоторого a . Тогда *(qi, α) = (qi, а) = qj, по определению, соответствует дуге (qi, qj), помеченной а, в DM. Допустим, что для всех таких, что || n, утверждение верно. Пусть || = n + 1, и пусть *(qi, ) = qj. Можно положить = а, где || = n. Тогда для некоторого qk
*(qi, ) = qk и *(qi, ) = (qk, a) = qj.
По предположению, равенство *(qi, ) = qk эквивалентно существованию пути в DM из qi в qk, помеченному . Кроме того, соотношение *(qk, a) = qj эквивалентно существованию дуги (qk, qj) с меткой а, что дает нам в DM путь из qi в qj, проходящий через вершину qk и помеченный строкой a, который соответствует соотношению *(qi, ) = qj. Теорема доказана.
Функция может быть задана таблицей:
|
a1 |
a2 |
... |
ak |
... |
an |
q0 |
|
|
|
|
|
|
q1 |
|
|
|
|
|
|
. . . |
|
|
|
|
|
|
qi |
|
|
|
qj |
|
|
. . . |
|
|
|
|
|
|
qm |
|
|
|
|
|
|
Здесь на пересечении i-й строки и k-го столбца находится qj тогда и только тогда, когда (qi, ak) = qj.
Если функция не всюду определенная, то ее можно доопределить так, что соответствующий автомату язык не изменится.
Для любой пары (q, a), для которой (q, a) не определено, положим (q, a) = , где Q . Кроме того, для любого а положим (, a) = .
При этом функция становится всюду определенной. Так как Q, то F, а отсюда следует, что для любой строки * L(M) тогда и только тогда, когда в модифицированном ДКА М *(q0, ) F, что означает, что L(M). Следовательно, L(M) = L(M).
Пример 2.7.
b a, b
a
q0 q1
b a a b
q2 q3 q4
a b
b a
У приведенного на диаграмме автомата функция переходов не является всюду определенной. Вводя новое состояние , являющееся «ловушкой», мы доопределяем эту функцию (достройка диаграммы показана штрихами).
Определение 2.8.
Язык L называется автоматным, если существует ДКА М такой, что L = L(M).
Таким образом, семейство всех ДКА определяет класс автоматных языков.