Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
pos.doc
Скачиваний:
161
Добавлен:
10.06.2015
Размер:
2.55 Mб
Скачать

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

2.3.1 Определение конечного автомата

Конечный автомат – это простейший распознаватель без вспомогательной памяти. Он является эффективным способом определения регулярных языков.

Определение Детерминированным конечным автоматом (ДКА) называется пятерка объектов:

,

где - конечное множество состояний автомата;

- конечное множество допустимых входных символов;

- функция переходов, отображающая множество QT во множество Q;

- конечное множество начальных состояний автомата;

Z - множество заключительных состояний автомата, Z Q.

Определение Недетерминированным конечным автоматом (НКА) называется конечный автомат, в котором в качестве функции переходов используется отображение во множество всех подмножеств множества состояний автомата, т.е. функция переходов неоднозначна, так как текущей паресоответствует множество очередных состояний автомата.

2.3.2 Распознавание строк конечным автоматом

Определение Пара (q, )  QT*, где - текущий остаток входной строки, называется конфигурацией автомата М.

Определение Конфигурация (q0, ), где - полная входная строка, называется начальной, а пара (q, ), где qZ, называется заключительной конфигурацией.

Шаг работы автомата можно представить отношением непосредственного следования конфигураций |-. Тогда, если F(q, t)=p, где pQ, то можно записать (q, t) |- (p, ) для всех T*. Эта запись означает то, что если автомат находится в состоянии q и входная головка обозревает входной символ t, то автомат может делать шаг, за который он переходит в состояние p и сдвигает головку на одну ячейку вправо.

Определение Автомат М допускает (принимает) строку , если существует путь по конфигурациям (q, ) |- (q, ) для некоторого qZ.

Определение Язык L, принимаемый конечным автоматом М, формально определяется как множество:

L(M) = { | T* и (q, ) |- (q, ) для некоторого qZ}.

Существуют следующие способы представления функции переходов: - командный способ.Каждую команду ка записывают в форме , где.

- табличный способ. Строки таблицы переходов соответствуют входным символам автомата t T, а столбцы – состояниям Q. Ячейки таблицы заполняются новыми состояниями, соответствующими значению функции . Неопределенным значениям функции переходов соответствуют пустые ячейки таблицы.

- графический способ. Строится диаграмма состояний автомата – неупорядоченный ориентированный помеченный граф. Вершины графа помечены именами состояний автомата. Дуга ведет из состояния в состояниe и помечается списком всех символов t T, для которых . Вершина, соответствующая входному состоянию автомата, снабжается стрелкой. Заключительное состояние на графе обозначается двумя концентрическими окружностями.

2.3.3 Преобразование конечных автоматов

Возникают две основных задачи эквивалентного преобразования КА:

1) преобразование недетерминированного конечного автомата в детерминированный конечный автомат;

2) минимизация КА.

2.3.3.1 Преобразование конечного автомата к детерминированному виду

В теории КА доказано, что для любого НКА существует ДКА, принимающий тот же регулярный язык. Рассмотрим этот алгоритм.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]