КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Минимизация автомата
Построение детерминированного конечного автомата
Для автоматной грамматики строится таблица переходов недетерминированного автомата (в таблице по строкам расположены состояния, а по столбцам - входные символы, в клетках на пересечении i-й строки и j-го столбца проставляется состояние, в которое переходит автомат из состояния i по приходу входного символа j). Для этого каждому нетерминалу ставится в соответствие некоторое состояние автомата. Затем по грамматике таблица заполняется следующим образом: на пересечении строки состояния, соответствующего нетерминалу левой части правила, и столбца, соответствующего терминальному символу, ставится состояние, соответствующее нетерминальному символу правой части правила. Если нетерминал в правой части отсутствует, то в клетке таблицы ставится заключительное состояние, которое вводится дополнительно к уже имеющимся состояниям.
Приведение недетерминированного автомата к детерминированному виду Детерминированным конечным автоматом называется конечный автомат, любая клетка таблицы переходов которого не содержит несколько состояний. В пустой клетке подразумеваем состояние ошибки. Процедура приведения недетерминированного конечного автомата к детерминированному (по таблице переходов) сводится к следующему:
1. Определяется клетка, в которой содержится 2 или более состояний (например, qi и qj). 2. Строка i и строка j накладываются друг на друга, и в таблице переходов появляется новая склеенная строка, соответствующая новому состоянию qi, j. 3. Если состояние qi или qj стоит отдельно или в комбинации с другими состояниями еще в какой-либо клетке таблицы, то соответствующая строка i или j сохраняется в таблице, иначе - убирается из таблицы после склеивания. Продемонстрируем изложенное на примере: Таблица 3
Склеиваем состояния q7 и q9 в состояние q7,9. В итоге, получаем таблицу 4:
Таблица 4
Теорема. Для любого автомата существует минимальный автомат единственный с точностью до изоморфизма. Рассмотрим алгоритм минимизации автомата по методике Мура:
1. В таблице переходов автомата отыскиваются строки, у которых имеются рабочие состояния в одинаковых столбцах. Под рабочим состоянием будем понимать состояние, отличное от состояния ошибки. Состояние ошибки на таблице переходов обозначено пустой клеткой. Состояния, соответствующие таким строкам, заносятся в группы.
2. Рабочие состояния внутри группы проверяются на эквивалентность. Два состояния qi и qj называются эквивалентными, если для любого входного символа Xk функции выходов и функции переходов пар (qi, Xk), (qj, Xk) будут равны.
3. Если среди рабочих состояний групп через ряд проверок устанавливается эквивалентность, то такие состояния также считаются эквивалентными. Удаляем из таблицы строку состояния q9, так как на состояние q9 нет больше переходов. Cтроку состояния q7 заменяем на склеенную строку q7,9, так как на состояние q7 нет больше переходов. Состояния q1, q2, q3 - эквивалентны, удаляем строки q2 и q3. Заменяем в таблице 5 все q2 и q3 на q1. Состояния q4 и q5 - эквивалентны, удаляем строку q5, соответственно q5 в таблице 4 заменяем на q4. В итоге, получаем таблицу 5:
Таблица 5
Продолжим рассматривать решение в соответствии с обозначенным алгоритмом.Анализ делаем по табл. 4. Группы состояний, проверяемые на эквивалентность, следующие: (q1;q2;q3), (q4; q5,). Проведем анализ этих состояний по переходам. Устанавливаем, что состояния q1, q2 и q3, а также состояния q4 и q5 являются эквивалентными по определению. Обозначив эквивалентные состояния одним состоянием, введем новые нетерминальные символы r вместо q. Будем иметь: r0 = q0; r1 = q1; r2 = q4; r3 = q6; r4 = q7,9; r5 = q8; r6 = q10; r7 = q11; r8 = q12; r9 = q13, r10= q14, r11=q15; Введем полученные замены и подстановки в табл.5 переходов автомата. Будем иметь новую таблицу 6 эквивалентную с точностью до изоморфизма таблице переходов 5.
Таблица 6
Дата добавления: 2014-12-07; Просмотров: 1212; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |