КАТЕГОРИИ: Архитектура-(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) |
Минимизация числа состояний автомата
Теорема. Для любого автомата существует минимальный автомат с точностью до изоморфизма. Алгоритм Мили Пусть задан автомат S с n состояниями. На каждом шаге алгоритма будем строить некоторое разбиение множества состояний Q на классы cij, где i - номер шага, j - номер класса. Разбиение на i + 1 шаге получается разбиением классов, полученных на i шаге.
1. Два состояния q’ и q’’ относятся в класс c1j, если при " a Î A для функций выхода справедливо равенство l(q’, a) = l(q’’, a). 2.q’ и q’’ из класса cij относятся к классу ci+1,j, если для " a Î A найдется такое j, для которого справедливы следующие отношения принадлежности d(q’, a) Î cij, d(q’’, a) Î cij.
Вычисления по пункту 2 алгоритма продолжаются до тех пор, пока процесс разбиения на классы может быть продолжен, в противном случае процесс останавливается, и полученные заключительные классы состояний будут представлять собой классы эквивалентных состояний.
Пример. Для автомата, заданного таблицей переходов вида:
построить разбиение состояний на классы эквивалентности.
Решение. Построим классы c1j в соответствии с первым шагом алгоритма: c11 = { q1, q4, q6, q9 }, c12 = { q2, q3, q8 }, c13={ q5, q7 }.
Следующие классы будем выделять в соответствии с пунктом 2 алгоритма:
c21 = { q1, q6, q4}, c22 = { q9 }, c23 = { q2, q3, q8}, c24 = { q5, q7 }; c31 = { q1, q4 }, c32 = { q6 }, c33 = { q9 }, c34 = { q2, q3, q8}, с35 = { q5, q7 }; c41 = { q1, q4 }, c42 = { q6 }, c43 = { q9 }, c44 = { q2, q8 }, c45 = { q3 }, c46 = { q5, q7 }. Из эквивалентных состояний, принадлежащих одному классу, оставляем только одно состояние. В итоге, множество состояний минимизированного автомата представится множеством {q1, q6, q9, q2,q3, q5 }. Следовательно, новая таблица переходов будет иметь на три строки меньше, поскольку на три состояния уменьшилось общее число состояний заданного автомата. Таблица переходов минимального автомата будет следующей:
Алгоритм минимизации автомата по методике Мура 1.В таблице переходов отыскиваются строки, у которых есть рабочие состояния в одинаковых столбцах. Рабочим состоянием считается состояние отличное от состояния ошибки. Состояния, которым соответствуют такие строки, заносятся в группы. 2.Рабочие состояния каждой группы проверяются на эквивалентность. 3. Если среди рабочих состояний групп установлена эквивалентность, то состояния, образующие группу, считаются эквивалентными. Пример. Для автомата, заданного таблицей переходов вида:
построить минимальный автомат, используя методику Мура.
Решение. Построим группы состояний, подозреваемых на эквивалентность, в соответствии с алгоритмом. Ими будут:
[ q4; q5; q6; q7 ]; [ q8, 19; q 9, 19 ]; [ q13; q16 ]; [ q2; q11; q14,17 ].
Состояния внутри выделенных групп необходимо проверить на эквивалентность. После проверки и удаления из групп состояний, не удовлетворяющих условию эквивалентности, классы эквивалентных состояний примут вид:
[ q5; q6; q7 ]; [ q8, 19; q 9, 19 ]; [ q13; q16 ].
Введем новые обозначения состояний автомата:
r0 = { q5, q6, q7}; r6 = { q10 }; r7 ={ q11 }; r1 = { q9,19, q8,19 }; r8 ={ q12 }; r2 = { q13, q16 }; r9 = { q14,17 }; r3 = { q1,3 }; r10 = { q15,18 }; r4 = { q2 }; r11 = { q19 } - заключительное состояние; r5 = { q4 }; r12 = { q0 } - начальное состояние.
Таблица переходов минимального автомата примет вид:
Дата добавления: 2014-12-16; Просмотров: 578; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |