КАТЕГОРИИ: Архитектура-(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) |
Метод разбиения
Этот метод состоит в разбиении множества состояний автомата на непересекающиеся подмножества или блоки, такие, что неэквивалентные состояния попадают в разные блоки. Рассмотрим этот метод на примере автомата, таблица которого представлена на рис. 3.10 (а). Сначала разбиваем множество его состояний на два блока, один из которых содержит отвергающие, а другой - допускающие состояния: P0=({1,2,3,4},{5,6,7}) Ни одно из состояний первого блока неэквивалентно состояниям из второго блока, так как нарушается условие подобия. Посмотрим, что происходит с состояниями блока {1,2,3,4} под воздействием символа a. Состояния 3,4 переходят в состояния 1,4 из блока 1, а состояния 1,2 переходят в 6,7 из второго блока. Это означает, что для любого состояния из множества {1,2} и любого состояния из {3,4} соответствующие состояния - приемники неэквивалентны по входу a. Это нарушает условие преемственности и поэтому мы можем заключить, что ни одно из состояний {1,2} не эквивалентно ни одному из состояний {3,4}. Это позволяет провести новое разбиение: P1=({1,2},{3,4},{5,6,7}) причем состояния из разных блоков всегда неэквивалентны. Теперь попробуем найти такой входной символ и блок в P1, чтобы его можно было разбить на новые блоки, относительно этого входного символа. Так повторяем до тех пор, пока ни одно разбиение невозможно. Например, {3,4} из P1 разбивается относительно a и получается P2=({1,2},{3},{4},{5,6,7}) Блок {5,6,7} из P2 разбивается относительно a или b и получается P3=({1,2},{3},{4},{5},{6,7}) Полученное P3, не допускает дальнейшего разбиения. Действительно, блок {1,2} по a переходит в блок {6,7}, а по b - в {3}; блок {6,7} по a переходит в {4}, а по b - в {1,2}; остальные блоки имеют по одному состоянию. Когда процедура разбиения закончена, состояния внутри каждого блока эквивалентны, то есть их можно объединить и получить минимальный автомат (см. рис. 3.10 (б)), так как недостижимых состояний в рассматриваемом примере не было. В общем случае процедура разбиения должна сопровождаться удалением недостижимых состояний в целях получения минимального автомата. Попрактиковавшись, можно научиться опознавать эквивалентные состояния (нетерминалы), которые приводят к одной и той же ситуации, но каким бы ни было число ненужных состояний в автомате (нетерминалов в грамматике), с помощью предложенных алгоритмов всегда можно получить минимальное описание.
Дата добавления: 2015-06-27; Просмотров: 867; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |