![]() |
Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Минимизация конечного автомата
Конечный автомат может содержать лишние состояния двух типов: недостижимые и эквивалентные состояния. Определение Два различных состояния Определение Состояние q КА называется недостижимым, если к нему нет пути из начального состояния автомата. Определение КА, не содержащий недостижимых и эквивалентных состояний, называется приведенным или минимальным КА. В теории КА доказано, что каждое регулярное множество распознается единственным для данного множества ДКА с минимальным числом состояний. Рассмотрим алгоритмы построения минимального ДКА. Устранение недостижимых состояний КА
Алгоритм Устранение недостижимых состояний КА
Вход: КА Выход: КА
Шаг 1. Поместить начальное состояние КА в список достижимых состояний Шаг 2. Для новых элементов списка достижимых состояний пополнить список группой их состояний-приемников, отсутствующих в списке, т.е. Шаг 3. Повторить шаг 2, пока список достижимых состояний не перестанет меняться. То есть, если Шаг 4. Исключить из множества Q состояний КА все состояния, отсутствующие в списке Qд достижимых состояний, т.е. Шаг 5. Исключить недостижимые заключительные состояния и функции переходов, содержащие недостижимые состояния, т.е.
Пример Устранить недостижимые состояния КА
Таблица 2.4 – Функция переходов конечного автомата M
Рисунок 2.2 – Граф исходного конечного автомата М
Последовательность устранения недостижимых состояний КА имеет вид:
Q0 = {A}; Q1 = {A, B, C}; Q2 = {A, B, C, D, E}; Q3 = {A, B, C, D, E}; т.к. Q2 = Q3, то Qд = {A, B, C, D, E}. Qн = {F, G}; Функция переходов автомата
Таблица 2.5 - Функция переходов автомата
![]()
Рисунок 2.3 - Граф КА
Объединение эквивалентных состояний КА Алгоритм Объединение эквивалентных состояний КА
Вход: КА Выход: минимальный КА Шаг 1. На первом шаге строим нулевое разбиение R(0), состоящее из двух классов эквивалентности: заключительные состояния КА - Z и не заключительные - Q-Z. Шаг 2. На очередном шаге построения разбиения R(n) в классы эквивалентности включить те состояния, которые по одинаковым входным символам переходят в n-1 эквивалентные состояния, т.е.
Шаг 3. До тех пор, пока R(n) ¹ R(n-1) полагаем n=n+1 и идем к шагу 2. Шаг 4. Переобозначить оставшиеся неразбитые группы состояний и включить их в таблицу новых обозначений состояний автомата. Шаг 5. Определить эквивалентный КА Пример Минимизировать конечный автомат из предыдущего примера. Последовательность построения разбиений будет иметь вид:
R(0) = {{A, B, C}, {D, E}}, n = 0; R(1) = {{A}, {B, C}, {D, E}}, n = 1; R(2) = {{A}, {B, C}, {D, E}}, n=2. Т.к. R(1) = R(2), то искомое разбиение построено.
Переобозначим оставшиеся неразбитые группы состояний: X={B, C}, Y={D, E}. Получим минимальный автомат Функция переходов автомата
Таблица 2.6 - Функция переходов автомата
Граф переходов конечного автомата после его минимизации показан на рисунке 2.4.
Рисунок 2.4 – Граф минимального ДКА
2.4 Взаимосвязь способов определения грамматик
Регулярные грамматики, регулярные выражения и конечные автомата – три основных способы определения регулярных языков, между которыми существует полное соответствие. Разработаны алгоритмы преобразования одной формы определения в другую. При работе с языками программирования наибольший практический интерес представляют преобразования регулярной грамматики в конечный автомат. Рассмотрим его.
Популярное:
|
Последнее изменение этой страницы: 2016-04-11; Просмотров: 1872; Нарушение авторского права страницы