КАТЕГОРИИ: Архитектура-(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) |
Получение минимального автомата
Приведённые автоматы. Алгоритм составления списка достижимых состояний.
Для любого данного автомата – составить список достижимых состояний. 1) Начать список в начальном состоянии. 2) Для каждого состояния уже внесённого в список, добавить всё ещё незанесённые в него состояния, которые могут быть достигнуты из этого нового состояния под действием одного входного символа. Если эта процедура перестаёт давать новые состояния, то все достижимые состояния получены, а все остальные можно удалить из автомата. Число шагов процедуры ограничено числом состояний данного автомата. S0-> S1 и S5; S1 -> S2 и S7; S5-> S3 и S1. Переходов в другие состояния нет => S4, S6 и S8 - недостижимы, и автомат можно сократить.
Определение: Автомат приведённый, если он не содержит недостижим состояний и никакие 2 его состояний не эквивалентны друг другу. Замечание: Если автомат не приведённый, то можно получить эквивалентный ему автомат с меньшим числом состояний, как раннее было показано. Осуществляя приведение различными способами или начиная с разных эквивалентных автоматов, можно предположить, что полученные приведённые автоматы окажутся разными. Однако, они фактически одинаковы во всех отношениях, за исключением имён, которыми названы их состояния. Значит, какой бы распознаватель ни был выбран для некоторой проблемы распознавания и каким бы образом ни происходило бы приведение его состояний, можно построить только 1 приведённый автомат. Этот автомат называется минимальным автоматом. Метод проверки эквивалентности состояний, рассмотренный выше, использовать для приведения автоматов не удобно, т.к. он позволяет обработать только 2 состояния. Рассмотрим другой, более практичный метод – «метод разбиения». Он заключается в разбиении множества состояний на непересекающиеся подмножества, такие что не эквивалентные состояния попадают в разные блоки. Сначала состояния разбиваются на 2 блока: один содержит допускающие состояния, другой – отвергающие. В нашем примере начальное разбиение Р0 = ({1, 2, 3, 4}, {5, 6, 7}) {1, 2, 3, 4} – отвергающие; {5, 6, 7} – допускающие Ни одно состояние из первого блока не эквивалентно никакому состоянию (ни одному) второго блока, т.к. нарушаются условия подобия.
Теперь посмотрим, что происходит с состоянием первого блока под действием входного символа а. Состояния 3 и 4 переходят в состояния, принадлежащие первому блоку (1 и 4), тогда как состояния 1 и 2 переходят в состояний, принадлежащие второму блоку (6 и 7). Это означает, что для любого состояния из множества {1, 2} и любого из {3, 4} соответствующие состояния – приемники по входу а будут не эквивалентны. Это позволяет произвести новое разбиение P1 =({1,2}, {3,4}, {5, 6, 7}), причем состояния из разных блоков всегда неэквивалентны, причём получили состояния Р1 и Р0, разбивая блок {2,3,4} относительно входа а. теперь попытаемся найти такой входной символ и такой блок в Р1, чтобы его можно было разбить относительно этого входного символа и получить тем самым новое разбиение. Для этого разбиение также будет выполняться свойство неэквивалентности состояний, принадлежащих разным блокам. Повторяем процесс пока дальнейшее разбиение становится невозможным. Т.к. мы не остановили порядок, в котором входные символы и блоки проверяются на возможность разбиения, последовательность разбиений можно порождать многими способами. Последнее разбиение будем одним и тем же во всех случаях. В нашем примере, разбивая блок {3,4} из Р1 относительно а и получаем: P2 =({1,2}, {3}, {4}, {5, 6, 7}). Далее разбиваем {5, 6, 7} из P2 относительно а или b, получаем: P3 =({1,2}, {3}, {4}, {5}, {6, 7}). P3 – не допускает дальнейшего разбиения. Все состояния блока {1,2} переходят относительно а в состояния блока {6,7}, а относительно b в {3}. Аналогично блок {6,7} переходит в {4} и {1,2} относительно а и b соответственно. Оставшееся блоки имеют по одному элементу, по этому автоматически исключают дальнейшее разбиение. Когда процедура закончена, состояния внутри каждого блока эквивалентны. В примере: 1~2 и 6~7. Блоки последнего разбиения можно использовать для построения нового автомата, который эквивалентен исходному и не содержит эквивалентных состояний.
Множество состояний нового автомата – это множество блоков последнего разбиения. Переходы нового автомата получены из старого, прослеживая переходы из блока в блок, для каждого входного символа. Автомат не имеет недостижимых состояний и является, поэтому минимальным. В общем случае процедура разбиения должна сопровождается выбрасыванием недостижимых состояний в целях получения минимального автомата. Не имеет значения, какая из двух процедур выполняется первой.
Дата добавления: 2014-01-11; Просмотров: 705; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |