Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
9. АЛГОРИТМЫ ИДЕНТИФИКАЦИИИдентификация цепочек символов входит как составная часть во многие задачи, связанные с редактированием текстов, поиском данных и символьной обработкой. В типичной задаче идентификации цепочек задаются цепочка-текст х и множество цепочек-образов Начнем с краткого обзора регулярных выражений и конечных автоматов. Затем изложим алгоритм, выявляющий в данной цепочке вхождение какой-нибудь цепочки из множества, заданного регулярным выражением. Время работы алгоритма равно по порядку произведению длин цепочки х и данного регулярного выражения. Потом приведем алгоритм линейной сложности, который распознает, является ли данная цепочка у подцепочкой данной цепочки х. Далее докажем сильный теоретический результат, состоящий в том, что любую проблему распознавания вхождения цепочек, разрешимую на двустороннем детерминированном магазинном автомате, можно решить на РАМ за линейное время. Это замечательный результат, поскольку магазинный автомат может потребовать для решения задачи квадратичное или даже экспоненциальное время. Наконец, введем понятие дерева позиций (позиционного дерева) и применим его к другим задачам идентификации цепочек, таким, как поиск в данной цепочке самого длинного повторения. 9.1. КОНЕЧНЫЕ АВТОМАТЫ И РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯМногие задачи идентификации (распознавания образов) и их решения можно выразить в терминах регулярных выражений и конечных автоматов. Поэтому начнем с обзора соответствующего материала. Определение. Алфавитом называется конечное множество символов. Цепочка в алфавите I — это конечная последовательность символов из Языком над алфавитом Пусть Замыканием Клини (итерацией) Регулярные выражения и языки, которые они представляют (регулярные множества), полезны во многих областях науки о вычислениях. В этой главе мы увидим, что они полезны для описания идентифицируемых образов. Определение. Пусть 1. 2. 3. Для каждого а 4. Если При записи регулярного выражения можно опустить многие скобки, если предположить, что операция имеет более высокий приоритет, чем конкатенация и Пример 9.1. 1. 2. 3. Язык называется регулярным, если его можно представить регулярным выражением. Два регулярных выражения Понятие детерминированного конечного автомата было введено в гл. 4. Его можно воспринимать как устройство, состоящее из блока управления, который всегда находится в одном из конечного числа состояний, и входной ленты, которая просматривается слева направо своей головкой (входной головкой). Детерминированный конечный автомат выполняет "шаги", определяемые текущим состоянием его блока управления и входным символом, обозреваемым входной головкой. Каждый шаг состоит из перехода в новое состояние и сдвига входной головки на одну клетку вправо. Оказывается, что язык представим регулярным выражением тогда и только тогда, когда он допускается некоторым конечным автоматом. Важным обобщением рассматриваемого понятия является недетерминированный конечный автомат. Для каждого состояния и каждого входного символа недетерминированный автомат имеет нуль или более вариантов выбора следующего шага. Он может также выбирать, сдвигать ему входную головку при изменении состояния или нет. Определение. Недетерминированным конечным автоматом (НКА) называется пятерка 1) S - конечное множество состояний устройства управления; 2) 3) S - функция переходов, отображающая 4) 5) Мгновенным описанием (МО) НКА М называется пара Представим шаги НКА бинарным отношением
Рис. 9.1. Функция переходов Рефлексивное и транзитивное замыкание отношения Пример 9.2. Рассмотрим недетерминированный конечный автомат Пусть на вход автомата С каждым НКА связан ориентированный граф, естественным образом представляющий функцию переходов этого автомата. Определение. Пусть
Рис. 9.2. Последовательность МО для входа
Рис. 9.3. Граф переходов для примера 9.2.
Пример 9.3. Граф переходов для НКА М из примера 9.2 изображен на рис. 9.3. Заключительное состояние обведено двойным кружком. Диаграммы НКА и задачи о путях на графах можно связать с помощью определенного замкнутого полукольца. Пусть I — алфавит; положим Теорема 9.1. Всякий язык, допускаемый недетерминированным конечным автоматом, регулярен. Доказательство. Пусть Теорема, обратная к теореме 9.1, также верна. Иными словами, для данного регулярного выражения найдется НКА, допускающий язык, представленный этим регулярным выражением.
Рис. 9.4. Конечные автоматы, допускающие языки, представленные регулярными выражениями длины С точки зрения сложности вычислений наиболее важно, что можно найти НКА, у которого число состояний не больше удвоенной длины данного регулярного выражения и который из каждого своего состояния может перейти не более чем в два других. Теорема 9.2. Пусть а — регулярное выражение. Тогда найдется 1) 2) для каждого а 3) для каждого Доказательство. Доказательство проведем индукцией по длине выражения а. Рассмотрим базис, т. е. случай Для шага индукции рассмотрим четыре возможных вида Пусть длины
Рис. 9.5. Графы переходов автоматов, допускающие языки, представленные регулярными выражениями как по предположению из каждого узла В случае Пример 9.4. Построим НКА для регулярного выражения Необходимо упомянуть один дополнительный результат. По данному НКА можно найти эквивалентную "детерминированную" машину. Однако детерминированный конечный автомат, эквивалентный данному
Рис. 9.6. Построение НКА для оказываются полезными в распознавании образов, и сейчас мы напомним их определение. Определение. Детерминированным конечным автоматом (ДКА) называется недетерминированный конечный автомат
Теорема 9.3. Если Доказательство. По теореме Теперь построим такой 1) 2) Для каждого
Рис.
В качестве упражнения предлагаем доказать, что Далее по 1) для каждого подмножества
В качестве упражнения предлагаем доказать индукцией по Пример 9.5. Рассмотрим НКА М на рис. 9.7. Из начального состояния
Рис. 9.8. Граф G.
Рис. 9.9. НКА
Рис. 9.10. ДКА единственное ребро, входящее в узел При построении ДКА
|
1 |
Оглавление
|