![]() |
Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Распознавание строк конечным автоматом
Определение Пара (q, t) Î Q´ T*, где t - текущий остаток входной строки, называется конфигурацией автомата М. Определение Конфигурация (q0, t), где t - полная входная строка, называется начальной, а пара (q, e), где q Í Z, называется заключительной конфигурацией. Шаг работы автомата можно представить отношением непосредственного следования конфигураций |-. Тогда, если F(q, t)=p, где pÎ Q, то можно записать (q, tt) |- (p, t) для всех t Î T*. Эта запись означает то, что если автомат находится в состоянии q и входная головка обозревает входной символ t, то автомат может делать шаг, за который он переходит в состояние p и сдвигает головку на одну ячейку вправо. Определение Автомат М допускает (принимает) строку t, если существует путь по конфигурациям (q, t) |- (q, e) для некоторого q Î Z. Определение Язык L, принимаемый конечным автоматом М, формально определяется как множество:
L(M) = {t | t Î T* и (q, t) |- (q, e) для некоторого q Î Z}.
Существуют следующие способы представления функции переходов: - командный способ. Каждую команду КА записывают в форме - т абличный способ. Строки таблицы переходов соответствуют входным символам автомата t Î T, а столбцы – состояниям Q. Ячейки таблицы заполняются новыми состояниями, соответствующими значению функции - графический способ.Строится диаграмма состояний автомата – неупорядоченный ориентированный помеченный граф. Вершины графа помечены именами состояний автомата. Дуга ведет из состояния 2.3.3 Преобразование конечных автоматов
Возникают две основных задачи эквивалентного преобразования КА: 1) преобразование недетерминированного конечного автомата в детерминированный конечный автомат; 2) минимизация КА.
2.3.3.1 Преобразование конечного автомата к детерминированному виду В теории КА доказано, что для любого НКА существует ДКА, принимающий тот же регулярный язык. Рассмотрим этот алгоритм. Алгоритм Преобразование НКА в ДКА Вход: НКА Выход: ДКА Шаг 1. Пометить первый столбец таблицы переходов Шаг 2. Заполняем очередной столбец таблицы переходов
Шаг 3. Для каждого нового множества Шаг 4. Если в таблице переходов КА Шаг 5. Во множество Шаг 6. Составить таблицу новых обозначений множеств состояний и определить ДКА Этот алгоритм обеспечивает отсутствие недостижимых состояний ДКА, но не гарантирует его минимальности. Пример Пример 2.1. Дана регулярная грамматика Построим по НКА 1 Строим таблицу переходов для ДКА
Таблица 2.2 – Построение функции переходов для ДКА
2 Во множество заключительных состояний автомата 3 Введем следующие новые обозначения состояний автомата 4 Искомый ДКА определяется следующей пятеркой объектов:
Таблица 2.3 – Функция переходов для ДКА
Граф полученного ДКА представлен на рисунке 2.1.
Рисунок 2.1 – Граф ДКА
Популярное:
|
Последнее изменение этой страницы: 2016-04-11; Просмотров: 1193; Нарушение авторского права страницы