КАТЕГОРИИ: Архитектура-(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) |
Преобразование НКА в ДКА
Алгоритм моделирования ДКА Вход. ДКА A; Выход. «Да», если ДКА A допускает Метод. move(S, C) - функция переходов, возвращает состояние, в которое происходит переход из состояния nextchar – функция, которая возвращает очередной символ входной строки
Пример. Граф переходов ДКА, допускающий тот же язык
Алгоритм, который мы рассмотрим, называется построением подмножества. Предварительные замечания. В таблице переходов НКА каждая клеточка представляет собой некоторое подмножество состояний, в ДКА – единственное состояние. Общая идея преобразования НКА в ДКА состоит в том, что каждое состояние ДКА моделирует некоторое подмножество состояний НКА. ДКА использует свои состояния для отслеживания всех возможных состояний, в которых НКА может находиться после прочтения очередного входного символа. Таким образом, после чтения входной строки Количество состояний ДКА может оказаться экспоненциально зависящим от количества состояний НКА. Это наихудший случай. На практике встречается редко.
Для отслеживания подмножества состояний НКА нам понадобятся некоторые вспомогательные операции. Пусть 1.
2.
3.
Вычисление
Алгоритм построения ДКА из НКА («ленивое» вычисление подмножеств) Изначально таблица переходов ДКА содержит только одно состояние - Для текущего состояния по каждому символу Тем самым происходит заполнение текущей строки в таблице переходов ДКА. Если при этом образуются новые подмножества, те, которые еще не включены в эту таблицу, то дописываем их в новую строку как еще одно состояние ДКА. Процесс останавливается после заполнения всей таблицы. В построенной таблице строка, соответствующая Заключительными объявляются те из полученных подмножеств, в состав которых входит хотя бы одно из заключительных состояний исходного НКА.
Пример. НКА, допускающий язык, строки которого оканчиваются на 011 и соответствующий ДКА.
Дата добавления: 2013-12-14; Просмотров: 5058; Нарушение авторских прав?; Мы поможем в написании вашей работы! |