Помощь в написании студенческих работ
Антистрессовый сервис

Алгоритмы поиска словесной информации. 
Алгоритмы Кнута Мориса-Пратта

Курсовая Купить готовую Узнать стоимостьмоей работы

Сложность табличного алгоритма O (k), где k — длина W. Как за исключением некоторых инициализации всей работы выполняется в while цикле, достаточно, чтобы показать, что этот цикл выполняется за O (k) время, которое будет осуществляться одновременно с изучением величин pos и pos — cnd. В первом отделении, pos — cnd сохраняется, как pos и cnd увеличиваются одновременно, но, естественно, pos… Читать ещё >

Алгоритмы поиска словесной информации. Алгоритмы Кнута Мориса-Пратта (реферат, курсовая, диплом, контрольная)

Содержание

  • Введение
  • 1. Алгоритмы Кнута Морриса-Пратта
  • 2. Описание псевдокод для алгоритма поиска
    • 2. 1. Эффективность алгоритма поиска
    • 2. 2. «Частичное совпадение» таблицы
    • 2. 3. Пример таблицы-алгоритм построения
    • 2. 4. Описание псевдокода для алгоритма табличной строительства
    • 2. 5. Эффективность алгоритма табличной строительства
    • 2. 6. Эффективность алгоритма табличной строительства
  • 3. Концепция
  • Вывод
  • Список используемой литературы

Note cnd = 0) elselet T[pos] ← 0, pos ← pos + 1Эффективностьалгоритматабличногостроительства.

Сложность табличного алгоритма O (k), где k

— длина&# 160;W. Как за исключением некоторых инициализации всей работы выполняется в while цикле, достаточно, чтобы показать, что этот цикл выполняется за O (k) время, которое будет осуществляться одновременно с изучением величин pos и pos — cnd. В первом отделении, pos — cnd сохраняется, как pos и cnd увеличиваются одновременно, но, естественно, pos увеличивается. Во второй ветке, cnd заменяется T[cnd], что мы виделивыше, всегда строго меньше cnd, тем самым увеличивая pos — cnd. В третью ветвь, pos увеличивается, а cnd нет, так как pos и pos — cnd увеличено. Так pos ≥ pos — cnd это означает, что на каждом этапе pos или нижняя граница posувеличивается; следовательно, поскольку алгоритм завершается путем pos = k, то он должен расторгнуть в большинстве 2k итераций цикла, так pos — cnd начинается с 1. Поэтому сложность таблице алгоритм O (k).Поскольку обе части алгоритма сложны O (k) и O (n), то трудоемкость общего алгоритма обозначается так: O (n + k).Эти трудности являются одинаковыми, независимо от того, сколько повторяющихся узоров в W или S. В реальном времени КМП может быть реализовано с помощью отдельной функции отказа таблицы для каждого символа в алфавите.

Если возникает несоответствие по характеру {свойства стиль отображения значение х}в тексте, табличная функция отказа для персонажа{свойства стиль отображения значение х} для индекса {свойства стиль отображения значение я}в шаблоне, при котором несоответствие имело место. Это возвращает длину самой длинной подстроки, заканчивающейся на {свойства стиль отображения значение я}соответствующий префикс шаблона, с дополнительным условием, что персонаж был после префикса{свойства стиль отображения значение х}. В связи с этим ограничением, характеристика {свойства стиль отображения значение х}в тексте не должна быть снова проверена на следующем этапе, и поэтому только постоянное число операций, выполняемые между обработкой каждого индекса текста. Это удовлетворяет реальному времени ограничению вычислений. Стенд алгоритма.

КМП использует модифицированную версию функциональной переработки, чтобы найти лексикографически минимальную строку вращения. Концепция.

Ключ к КМП, конечно, является частью таблицы соответствия. Главное препятствие между мной и пониманием КМП был тот факт, что я не совсем в полной мере осознал, какие ценности в частичной таблице матча действительно стоило брать во внимание. Теперь я попытаюсь объяснить их самым простым словам. Вот частичная таблица соответствия шаблона «abababca»:Если у меня есть восьми символьный шаблон (скажем, «abababca» в течение срока действия данного примера), моя частичная таблица матча будет иметь восемь клеток. Если я смотрю на восьмую и последнюю ячейку в таблице, меня интересует вся картина («abababca»). Если я смотрю на седьмую ячейку в таблице, меня интересуют только первые семь символов в цепочке («abababc»); восьмая («а») не имеет никакого отношения. Правильный префикс: все символы в строке, с одним или несколькими отрезанными концами. Правильный суффикс: все символы в строке, с одним или несколькими отрезанными началами. Теперь я могу несколькими словами рассказать о смыслезначений в частичной таблице соответствий:

Длина самого длинного правильного префикса шаблона, соответствует правильному суффиксу. Мы ищем значение третьей ячейки. Как вы помните из вышесказанного, это означает, что нас интересуют только первые три символа («ABA»). В «ABA», есть два правильных префиксов («A» и «АВ») и два соответствующих суффикса («A» и «BA»). Правильный префикс «AB» не соответствует ни одному из двух правильных суффиксов. Однако, правильный префикс «А» соответствует правильному суффикс «А». Таким образом, длина самого длинного правильного префикса, который соответствует правильному суффиксу, в данном случае составляет 1. Давайте попробуем клетку четыре. Здесь нас интересуют первые четыре символа («АВАВ»). У нас есть три правильных префикса («А», «АВ», а «АВА») и три правильных суффикса («В», «АВ», и «ВАВ»). На этот раз, «АВ» — клетка четвертая получает значение 2. Просто потому, что это интересный пример, давайте попробуем для пяти, которая касается «АВЕВА». У нас есть четыре правильных префикса («А», «АВ», «АВА и «АВАВ») и четыре правильных суффикса («А», «ВА», «АВА», и «ВАВА»). Теперь у нас есть два матча: «А» и «АВА» — оба правильных префикса и правильных суффикса. Поскольку «АВА» — это больше, чем «А», он выигрывает, и пятая получает значение 3. Давайте перейдем к камере семь, который связывают с узором «АВАВАВС». Даже без перечисления всех правильных префиксов и суффиксов, это должно быть очевидно, что там не будет никаких игр, все закончится суффиксом с буквой «С», и ни одного из префиксов не будет. Так как нет матчей, седьмая сотаполучает 0. Эти семь символов префикса не совпадает с семью символами суффикса («bababca»), так что клетки восьми получает 1.Вывод.

Так что у вас есть. Как я и обещал раньше, это не исчерпывающее объяснение или формальное доказательство КМП; это пройти через мой мозг, с деталями я нашел запутанно прописаны в мельчайших подробностях. Если у вас возникли вопросы или вы заметили что-то я напутал, пожалуйста, оставьте комментарий; может быть, мы все чему-то научиться. Список используемой литературы1. Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ. -.

М.: МЦНМО, 1999. — 960 с. 2. Гасфилд Д. Строки, деревья и последовательности в алгоритмах: Информатика и вычислительная биология. — СПб.: БХВ-Петербург, 2003.

— 654 с. 3. C rochemore M., Rytter W. J ewels of Stringology: Text Algorithms. W.

orld Scientific Publishing, 2002. — 320 pp. 4. J urafsky D., Martin J.

S peech and Language Processing.PrenticeHall. 1999. — 950 pp.

Показать весь текст

Список литературы

  1. Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ. — М.: МЦНМО, 1999. — 960 с.
  2. Д. Строки, деревья и последовательности в алгоритмах: Информатика и вычислительная биология. — СПб.: БХВ-Петербург, 2003. — 654 с.
  3. Crochemore M., Rytter W. Jewels of Stringology: Text Algorithms. World Scientific Publishing, 2002. — 320 pp.
  4. Jurafsky D., Martin J. Speech and Language Processing.PrenticeHall. 1999. — 950 pp
Заполнить форму текущей работой
Купить готовую работу

ИЛИ