Главная » Просмотр файлов » Алгоритмы - построение и анализ

Алгоритмы - построение и анализ (1021735), страница 212

Файл №1021735 Алгоритмы - построение и анализ (Алгоритмы - построение и анализ) 212 страницаАлгоритмы - построение и анализ (1021735) страница 2122017-07-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 212)

Процесс такого конструирования для образца Р = аЬабаса проиллюстрирован на рис. 32.6. С этого момента предполагается, что образец Р— это заданная фиксированная строка: для краткости мы будем опускать в обозначениях зависимость от Р. Чтобы создать автомат поиска подстрок, соответствующий заданному образцу Р [1..тл], сначала определим вспомогательную функцию о, которая называется суффиксной функцией (зпщх гппспол), отвечающей образцу Р. Функция о является отображением множества Е' на множество (О, 1,..., т), таким что величина о (х) равна длине максимального префикса Р, который является суффиксом строки х: о (х) = шах(к: Рь 1х). Суффиксная функция о вполне определена, поскольку пустая строка Ро —— е является суффиксом любой строки.

В качестве примера рассмотрим образец вида 1031 Глава 32. Поиск подстрок 1 (6'.— '-а ~ ~,' '-' — з Яз~-'-ч; 5 Й-в ( ~~-2; (5',-'=' — з ~'6 5 —."'-в ф вхм: Созмжие а ь 5 4 5 6 5 .'. З '.0 П ГК вЂ” а Ь 4 Ь 4 Ь 4 С,а Ь а Соломлиж54 а ~ " 5 4 5 4 5 6 Я 5 и Рис. 32.6. Процесс конструирования конечного автомата лля образца Р = аЬаЬаса Р = аЬ;тогда сг(е) = 0,4г(ссаса) = 1 но (ссоЬ) = 2. Для образца Рдлиной гправенство и (х) = т выполняется тогда и только то5ца, когда Р Л х.

Из определения суффиксной функции следует, что если х ] у, то 4т (х) с 4т (у). Определим автомат поиска подстрок, соответствующий образцу Р [1..т), следующим образом. ° Множество состояний Я имеет вид (0,1,... тп). В роли начального состояния дс выступает состояние О, а единственным допустимым является состояние т. ° Функция переходов Б определена для любого состояния д и символа а уравнением Б(й,а) = с" (Рва).

Поясним, откуда берется соотношение б (41, а) = ц (Рча). В качестве инварианта цикла этот автомат поддерживает соотношение ф(Т;) = 4т(Т4); (32.4) этот результат доказывается в сформулированной ниже теореме 32.4. На словах это означает, что после сканирования первых 1 символов текстовой строки Т автомат переходит в состояние ф (Т4) = 4Ь где д = 4т (Т;) — длина самого длинного 1032 Часть Ч11.

Избранные темы суффикса Т;, который одновременно является префиксом образца Р. Если следующим сканируемым символом является символ Т [1+ 1] = а, то машина должна осуществить переход в состояние сг (Т+~) = о (Тга). Из доказательства этой теоремы видно, что и (Тга) = <т (Рта). Другими словами, чтобы вычислить количество символов в самом длинном суффиксе Т;а, юторый является префиксом образца Р, можно найти самый длинный суффикс Рца, юторый является префиксом Р.

На каждом этапе машине нужна информация о длине самого длинного префикса Р, который является суффиксом считанной до сих пор строки. Таким образом, если положить 6 (д, а) = и (Рда), то будет поддерживаться нужный инвариант (32.4). Вскоре это неформальное пояснение будет изложено в более строгой форме. Например, в автомате поиска подстрок, представленном на рис. 32.6, 6 (5, Ь) = = 4. Этот переход осуществляется потому, что если автомат считывает символ Ь, находясь в состоянии 11 = 5, то РяЬ = аЬаЬаЬ, и самый длинный префикс образца Р, совпадающий с суффиксом строки аЬаЬаЬ вЂ” Ря = аЬаЬ. Рассмотрим рис.

32.6 подробнее. В части а приведена диаграмма состояний для автомата поиска подстрок, который воспринимает все строки, оканчиваюшиеся строкой аЬаЬаса. Состояние Π— начальное, а состояние 7 (оно выделено черным цветом) — единственное допустимое состояние. Ориентированные ребра, направленные от состояния 1 в состояние 7' и обозначенные меткой а, представляют значение функции б (г, а) = т1 Ребра, направленные вправо, которые образуют "хребет" автомата и выделены на рисунке жирными линиями, соответствуют точным совпадениям образца и входных символов. Ребра, направленные влево, соответствуют несовпадениям.

Некоторые ребра, соответствующие несовпадениям, не показаны; в соответствии с соглашением, если для некоторого символа а Е Е у состояния 4 отсутствуют исходящие ребра с меткой а, то 6 (1, а) = О. В части б представлена соответствующая функция переходов б, а также строка образца Р = аЬаЬаса. Элементы, соответствующие совпадениям между образцом и входными символами, выделены серым цветом.

В части в проиллюстрирована обработка автоматом текста Т = аЬаЬаЬасаЬа. Под каждым символом текста Т [г) указано состояние ф (Т;), в котором находится автомат после обработки префикса Т;. Образец встречается в тексте один раз, причем совпадающая подстрока оканчивается на девятой позиции. Чтобы пояснить работу автомата, предназначенного для поиска подстрок, приведем простую, но эффективную программу для моделирования поведения такого автомата (представленного функцией переходов 6) при поиске образца Р длиной гп во входном тексте Т [1..п[. Как и в любом другом автомате поиска подстрок, предназначенном для образца длиной т, множество состояний Я имеет внд (О, 1,..., тл), начальное состояние имеет индекс О, а единственным допустимым является состояние т.

Глава 32. Поиск подстрок 1033 Р1н!те АУтОмАтОН МАтснеи(Т, с, ти) 1 и — 1еидй(Т] 2 й» вЂ” О 3 Тог г — 1 Фо и 4 йо д — 6(д, Т]1]) 5 Ыо=ти б Феи ргш1 "Образец обнаружен при сдвиге" 1 — ти Поскольку структура процедуры Р1н1те Аитомдтон Мдтснен представляет собой простой цикл, время поиска совпадений с его помощью в тексте длиной и равна 9(и). Однако сюда не входит время предварительной обработки, которое необходимо для вычисления функции переходов б. К этой задаче мы обратимся позже, после доказательства корректности работы процедуры Р1- н!те А11тОмАтОН МАтснен.

Рассмотрим, как автомат обрабатывает входной текст Т (1..и]. Докажем, что после сканирования символа Т (г] автомат окажется в состоянии о (Т;). Поскольку соотношение о (Т;) = ти справедливо тогда и только тогда, когда Р:1 Ть машина окажется в допустимом состоянии тогда и только тогда, когда она толью что считала образец Р. Чтобы доказать этот результат, воспользуемся двумя приведенными ниже леммами, в которых идет речь о суффиксной функции и.

Лемма 32.2 (Неравенство суффиксной функции). Для любой строки х и сим- вола а выполняется неравенство и (ха) < и (х) + 1. Доказательстиво. Введем обозначение т = г(ха) (рис. 32.7). Если т = О, то неравенство о (ха) = т < о (х) + 1 тривиальным образом следует из того, что величина сг (х) неотрицательна. Теперь предположим, что г ) О. Тогда Р,:1 ха согласно определению функции 1т.

Если в конце строк Р„и ха отбросить по символу а, то мы получим Р„1 1 х. Следовательно, справедливо неравенство т — 1 < о (х), так как ~т (х) — максимальное значение 1с, при ютором выполняется соотношение Рь 1х, и о(ха) = т < п(х) + 1. Ы Рис. 32.7. Иллюстрация к доказательству леммы 32.2; из рисунка видно, что выполняется неравенство т < ~т (х) + + 1, где т = и (ха) 1034 Часть ЧП. Избранные темы Рис. 32.8. Иллюстрация к доказательству леммы 32.3; из рисунка видно„что выполняется соотношение т = о (Рца), где д = о (х) и т = о (ха) Лемма 32.3 (Лемма а рекурсии суффиксной функции). Если для произвольных строки х и символа а о = о (х), то сг (ха) = о (Ряа). Доказательство. Согласно определению функции ст, Рч 1 х.

Как видно из рис. 32.8, наряду с ним выполняется соотношение Рча 1 ха. Если ввести обозначение г = о (ха), то, согласно лемме 32.2, справедливо неравенство т < 4+ 1. Поскольку Рча 1 ха, Р, 1 ха и ~Рт~ < ~Рда~, из леммы 32.1 следует, что Р„:1 Рза. Поэтому справедливо неравенство т < сг(Рча), те. гт (ха) < гт(Рча). Но, кроме того, сг(Ряа) < о (ха), поскольку Ряа 1 ха. Таким образом, о (ха) = о (Ряа). Теперь все готово для доказательства основной теоремы, характеризующей поведение автомата поиска подстрок при обработке входного текста. Как уже упоминалось, в этой теореме показано, что автомат на каждом шагу просто отслеживает, какой самый длинный префикс образца совпадает с суффиксом части текста, считанной до сих пор.

Другими словами, в автомате поддерживается инвариант (32.4). Теорема 32.4. Если ф — функция конечного состояния, соответствующая автомату поиска подстрок с заданным образцом Р, а Т (1..п] — входной текст этого автомата, то ф(Т) = о (Т) для 1 = О, 1,..., и. Доказаотельсотво. Докажем теорему по индукции по г. Если г = О, то справедливость теоремы очевидна, поскольку То = е. Таким образом, ф (То) = 0 = гт(То). Теперь предположим, что выполняется равенство ф (Т;) = гт (Т,), и докажем, что ф (Т;+з) = о (Т1+з). Обозначим величину ф (Т;) как о, а величину Т [г+ Ц— Глава 32. Поиск подстрок 1035 через а.

То1да можно написать цепочку следующих соотношений: В соответствии с теоремой 32.4, если автомат попадает в состояние о в строке 4, то д — наибольшее значение, такое что Ря 1 Т,. Таким образом, в строке 5 равенство д = т выполняется тогда и только тогда, когда только что был считал образец Р. Итак, мы приходим к выводу, что процедура Р1х1те Аитомлтох Млтснек работает корректно.

Характеристики

Тип файла
DJVU-файл
Размер
18,3 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6525
Авторов
на СтудИзбе
301
Средний доход
с одного платного файла
Обучение Подробнее