Библиотека Рефераты Курсовые Дипломы Поиск
Библиотека Рефераты Курсовые Дипломы Поиск
сделать стартовой добавить в избранное
Кефирный гриб на сайте za4eti.ru

Компьютеры, Программирование Компьютеры, Программирование     Программирование, Базы данных Программирование, Базы данных

Алгоритм Кнута-Морриса-Пратта

Карабин, 6x60 мм.
Размеры: 6x60 мм. Материал: металл. Упаковка: блистер.
44 руб
Раздел: Карабины для ошейников и поводков
Горшок торфяной для цветов.
Рекомендуются для выращивания крупной рассады различных овощных и цветочных, а также для укоренения саженцев декоративных, плодовых и
7 руб
Раздел: Горшки, ящики для рассады
Чашка "Неваляшка".
Ваши дети во время приёма пищи вечно проливают что-то на ковёр и пол, пачкают руки, а Вы потом тратите уйму времени на выведение пятен с
222 руб
Раздел: Тарелки

Реферат Алгоритм Кнута-Морриса-Пратта (КМП) получает на вход слово X=x и просматривает его слева направо буква за буквой, заполняя при этом массив натуральных чисел l) (функция l определена в предыдущем пункте). Словами: l, одновременно являющегося его концом. Какое отношение все это имеет к поиску подслова? Другими словами, как использовать алгоритм КМП для определения того, является ли слово A подсловом слова B? Решение. Применим алгоритм КМП к слову A#B, где # - специальная буква, не встречающаяся ни в A, ни в B. Слово A является подсловом слова B тогда и только тогда, когда среди чисел в массиве l будет число, равное длине слова A. Описать алгоритм заполнения таблицы l. Решение. Предположим, что первые i значений l уже найдены. Мы читаем очередную букву слова (т.е. x. Другими словами, нас интересуют начала Z слова x.x[i 1, одновременно являющиеся его концами -из них нам надо брать самое длинное. Откуда берутся эти начала? Каждое из них (не считая пустого) получается из некоторого слова Z' приписыванием буквы x . Слово Z' является началом и концом слова x. Однако не любое слово, являющееся началом и концом слова x, годится - надо, чтобы за ним следовала буква x. Получаем такой рецепт отыскания слова Z. Рассмотрим все начала слова x, являющиеся одновременно его концами. Из них выберем подходящие - те, за которыми идет буква x. Из подходящих выберем самое длинное. Приписав в его конец х, получим искомое слово Z. Теперь пора воспользоваться сделанными нами приготовлениями и вспомнить, что все слова, являющиеся одновременно началами и концами данного слова, можно получить повторными применениями к нему функции l из предыдущего раздела. Вот что получается: i:=1; 1 заполнена правильно} while i &l ;> do begi le := l, которое является его концом; все более длинные начала оказались неподходящими} while (x) a d (le >0) do begi {начало не подходит, применяем к нему функцию l} le :=l; e d; {нашли подходящее или убедились в отсутствии} if x - самое длинное подходящее начало} l:= 0; e d; i:=i 1; e d; Доказать, что число действий в приведенном только что алгоритме не превосходит C для некоторой константы C. Решение. Это не вполне очевидно: обработка каждой очередной буквы может потребовать многих итераций во внутреннем цикле. Однако каждая такая итерация уменьшает le по крайней мере на 1, и в этом случае l. С другой стороны, при увеличении i на единицу величина l может возрасти не более чем на 1, так что часто и сильно убывать она не может - иначе убывание не будет скомпенсировано возрастанием. Более точно, можно записать неравенство l - (число итераций на i-м шаге) 1 или (число итераций на i-м шаге)&l ;= l 1 Остается сложить эти неравенства по всем i и получить оценку сверху для общего числа итераций. Будем использовать этот алгоритм, чтобы выяснить, является ли слово X длины подсловом слова Y длины m. (Как это делать с помощью специального разделителя #, описано выше.) При этом число действий будет не более C( m}, и используемая память тоже. Придумать, как обойтись памятью не более C (что может быть существенно меньше, если искомый образец короткий, а слово, в котором его ищут - длинное).

Решение. Применяем алгоритм КМП к слову А#В. При этом: вычисление значений l проводим для слова X длины и запоминаем эти значения. Дальше мы помним только значение l.l, нам для вычислений ничего не нужно. На практике слова X и Y могут не находиться подряд, поэтому просмотр слова X и затем слова Y удобно оформить в виде разных циклов. Это избавляет также от хлопот с разделителем. Написать соответствующий алгоритм (проверяющий, является ли слово X=x Решение. Сначала вычисляем таблицу lкак раньше. Затем пишем такую программу: j:=0; le :=0; {le - длина максимального качала слова X, одновременно являющегося концом слова y} while (le &l ;> ) a d (j&l ;>m) do begi while (x) a d (le >0) do begi {начало не подходит, применяем к нему функцию l} le : = l; e d; {нашли подходящее или убедились в отсутствии} if x - самое длинное подходящее начало} le :=le 1; e d else begi {подходящих нет} le :=0; e d; j:=j 1; e d; {если le = , слово X встретилось; иначе мы дошли до конца слова Y, так и не встретив X} Алгоритм Бойера - Мура Этот алгоритм делает то, что на первый взгляд кажется невозможным: в типичной ситуации он читает лишь небольшую часть всех букв слова, в котором ищется заданный образец. Как так может быть? Идея проста. Пусть, например, мы ищем образец abcd. Посмотрим на четвертую букву слова: если, к примеру, это буква e, то нет никакой необходимости читать первые три буквы. (В самом деле, в образце буквы e нет, поэтому он может начаться не раньше пятой буквы.) Мы приведем самый простой вариант этого алгоритма, который не гарантирует быстрой работы во всех случаях. Пусть x - образец, который надо искать. Для каждого символа s найдем самое правое его вхождение в слово X, то есть наибольшее k, при котором х; если символ s вовсе не встречается, то нам будет удобно положить pos=0 (мы увидим дальше, почему). Как заполнить массив pos? Решение. положить все pos:=i; e d; В процессе поиска мы будем хранить в переменной las номер буквы в слове, против которой стоит последняя буква образца. Вначале las = (длина образца), затем las постепенно увеличивается. las := ; {все предыдущие положения образца уже проверены} while las &l ;= m do begi {слово не кончилось}  if x he begi {последние буквы разные} las :=las ( -pos - это минимальный сдвиг образца, при котором напротив y встанет такая же буква в образце. Если такой буквы нет вообще, то сдвигаем на всю длину образца} e d else begi если нынешнее положение подходит, т.е. если x, то сообщить о совпадении; las :=las 1; e d; e d; Знатоки рекомендуют проверку совпадения проводить справа налево, т.е. начиная с последней буквы образца (в которой совпадение заведомо есть). Можно также немного сэкономить, произведя вычитание заранее и храня не pos, т.е. число букв в образце справа от последнего вхождения буквы Возможны разные модификации этого алгоритма. Например, можно строку las :=las i заменить на las :=las ( -u), где u - координата второго справа вхождения буквы x в образец. Как проще всего учесть это в программе Решение. При построении таблицы pos написать for i:=1 o -1 do. (далее как раньше), а в основной программе вместо las :=las 1 написать las :=las -pos; Приведенный упрощенный вариант алгоритма Бойера-Мура в некоторых случаях требует существенно больше действий (число действий порядка m ), проигрывая алгоритму Кнута-Морриса-Пратта.

Пример ситуации, в которой образец не входит в слово, но алгоритму требуется порядка m действий, чтобы это установить. Решение. Пусть образец имеет вид baaa. aa, а само слово состоит только из букв а. Тогда на каждом шаге несоответствие выясняется лишь в последний момент. Настоящий (не упрощенный) алгоритм Бойера-Мура гарантирует, что число действий не превосходит C(m ) в худшем случае. Он использует идеи, близкие к идеям алгоритма Кнута-Морриса-Пратта. Представим себе, что мы сравнивали образец со входным словом, идя справа налево. При этом некоторый кусок Z (являющийся концом образца) совпал, а затем обнаружилось различие: перед Z в образце стоит не то, что во входном слове. Что можно сказать в этот момент о входном слове? В нем обнаружен фрагмент, равный Z, а перед ним стоит не та буква, что в образце. Эта информация может позволить сдвинуть образец на несколько позиций вправо без риска пропустить его вхождение. Эти сдвиги следует вычислить заранее для каждого конца Z нашего образца. Как говорят знатоки, все это (вычисление таблицы сдвигов и ее использование) можно уложить в C(m ) действий. Алгоритм Рабина Этот алгоритм основан на простой идее. Представим себе, что в слове длины m мы ищем образец длины . Вырежем окошечко размера и будем двигать его по входному слову. Нас интересует, не совпадает ли слово в окошечке с заданным  образцом. Сравнивать по буквам долго. Вместо этого фиксируем некоторую функцию, определенную на словах длины . Если значения этой функции на слове в окошечке и на образце различны, то совпадения нет. Только если значения одинаковы, нужно проверять совпадение по буквам. В чем выигрыш при таком подходе. Казалось бы, ничего - ведь чтобы вычислить значение функции на слове в окошечке, все равно нужно прочесть все буквы этого слова. Так уж лучше их сразу сравнить с образцом. Тем не менее выигрыш возможен, и вот за счет чего. При сдвиге окошечка слово не меняется полностью, а лишь добавляется буква в конце и убирается в начале. Хорошо бы, чтобы по этим данным можно было рассчитать, как меняется функция. Привести пример удобной для вычисления функции. Решение. Заменим все буквы в слове и образце их номерами, представляющими собой целые числа. Тогда удобной функцией является сумма цифр. (При сдвиге окошечка нужно добавить новое число и вычесть пропавшее.) Для каждой функции существуют слова, к которым она применима плохо. Зато другая функция в этом случае может работать хорошо. Возникает идея: надо запасти много функций и в начале работы алгоритма выбирать из них случайную. (Тогда враг, желающий подгадить нашему алгоритму, не будет знать, с какой именно функцией ему бороться.) Привести пример семейства удобных функций. Решение. Выберем некоторое число p (желательно простое, смотри далее) и некоторый вычет x по модулю p. Каждое слово длины будем рассматривать как последовательность целых чисел (заменив буквы кодами). Эти числа будем рассматривать как коэффициенты многочлена степени -1 и вычислим значение этого многочлена по модулю p в точке x. Это и будет одна из функций семейства (для каждой пары p и x получается, таким образом, своя функция).

ЛУИЗИАНСКИЙ МОХ - многолетнее растение семейства бромелиевых. В Америке. Растет на деревьях наподобие бородатых лишайников. Используется для набивки матрацев. ЛУИС (Louis) Джо Барроу (1914-81) - американский спортсмен. Чемпион мира в тяжелом весе среди боксеров-профессионалов (1937-49). Звание чемпиона мира защищал 25 раз подряд. ЛУИС (Luis) Леопольдо де (р. 1918) - испанский поэт. Лирика (сборники "Стихи 1946-68", 1968; "Стихи 1964-74", 1974; "О страхе и нищете", 1985). Эссе об А. Мачадо-и-Руисе, В. Алейксандре и др. ЛУИС (Louis) Моррис (1912-1962) - американский живописец. С сер. 1950-х работает в стиле колор филд. Среди работ преобладают крупноформатные композиции, написанные водяными красками нейтральных тонов ("Бет Фех"). ЛУИСВИЛЛ (Louisville) - город в США, шт. Кентукки. 269 тыс. жителей (1990). Порт на р. Огайо. Крупный центр производства виски, табачных изделий. Химическая, машиностроительная, мебельная промышленность. Университет. "ЛУК" ("Look") - ежемесячный иллюстрированный многотиражный журнал в США, 1937-71 и с 1979, Нью-Йорк

1. Практика перевода числа из одной системы счисления в другую + блок-схема алгоритма определения наименьшего числа

2. Понятие алгоритма, его свойства. Описание алгоритмов с помощью блок схем на языке Turbo Pascal

3. Проектування керуючих автоматів Мура та Мілі за заданою граф-схемою алгоритму

4. Разработка средств оценки эффективности алгоритмов поиска и обнаружения целей прицельных радиоэлектронных комплексов

5. Структура и алгоритмы работы спутниковых радионавигационных систем

6. Генетические алгоритмы
7. Рекурсивные алгоритмы
8. Распределенные алгоритмы

9. Принцип программного управления. Микропроцессор. Алгоритм работы процессора

10. Разработка алгоритмов и программ выполнения операций над последовательными и связанными представлениями структур данных

11. Циклические алгоритмы

12. Алгоритм создания базы данных складского учета

13. Компьютерный файлово-загрузочный полиморфный стелс-вирус ONEHALF 3544, особенности алгоритма и методы борьбы с ним

14. Понятие об алгоритмах

15. Адаптивное параметрическое оценивание квадратно-корневыми информационными алгоритмами

16. Применение алгоритма RSA для шифрования потоков данных

Багетная рама "Irma" (цвет: коричневый), 30x40 см.
Багетные рамы предназначены для оформления картин на холсте, на картоне, а также вышивок и фотографий. Оформленное изделие всегда
504 руб
Раздел: Размер 30x40
Глобус политический, d=21 см.
Глобус политический. Диаметр - 21 см. На треугольной подставке.
394 руб
Раздел: Глобусы
Набор шариков, диаметр: 5 см, 100 штук.
Шарики для палаток и сухих бассейнов. Диаметр 5 см, в упаковке 100 штук.
445 руб
Раздел: Шары для бассейна

17. Методы и алгоритмы компоновки, размещения и трассировки печатных плат

18. Алгоритм анализа финансовой устойчивости предприятия

19. Генетический алгоритм

20. Применение рекурсии в алгоритмах с возвратом. Файловый тип. Ввод/вывод

21. Модель управления конфликтными потоками в классе алгоритмов

22. Методы и алгоритмы построения элементов систем статистического моделирования
23. Сравнительный анализ алгоритмов построения выпуклой оболочки на плоскости
24. Интуитивное понятие алгоритма и его свойств

25. Градиентный алгоритм для систем независимости с отрицательными весами

26. Место цифровой рентгенографии в современном алгоритме лучевой диагностики

27. Принципы и особенности составления лекарственных алгоритмов

28. Алгоритм иммуногематологического исследования женщин во время беременности

29. Алгоритмы выполнения манипуляций

30. Алгоритм развития для науки

31. Об алгоритмах самоорганизации в задаче синтеза информационных технологий обработки сигналов

32. Способ устойчивого решения неустойчивых задач и его алгоритм

Аспиратор нозальный Pigeon с футляром.
Аспиратор разработан совместно с ведущими японскими специалистами отоларингологами. Позволяет без труда очистить содержимое носика ребенка
704 руб
Раздел: Аспираторы
Настольная игра «Пороховая бочка».
В игре могут принять участие 2 или 4 ребёнка. Поместите пирата на его бочку так, чтобы зажать выталкивающий механизм и по очереди
490 руб
Раздел: Игры на ловкость
Настольная игра "Скоростные колпачки".
Игра на ловкость рук и остроту глаза. Способствует развитию зрительно-моторной координации движений, концентрации внимания и зрительного
635 руб
Раздел: Игры на ловкость

33. Системный подход и алгоритм управления подготовкой студентов к духовно-просветительской деятельности

34. Алгоритмы трассировки

35. Алгоритм создания сценария рекламного радиоролика

36. Составление алгоритма расчета расхода сырья верхних трикотажных изделий

37. Образ государства как алгоритм политического поведения

38. Типовой алгоритм составления бюджета
39. СППР фінансового аналізу на базі алгоритмів нечіткої логіки
40. Постановка и разработка алгоритма решения задачи Учёт основных средств

41. Алгоритм и программа

42. Алгоритм удаления циклов в графе вертикальных ограничений задачи трассировки многослойного канала

43. Генетические алгоритмы

44. Алгоритм определения динамических характеристик гидроупругих систем для управления гидросооружениями

45. Формализация понятия алгоритма

46. Анализ алгоритма вируса

47. Алгоритмы выделения контуров

48. Конфигурирование програмного обеспечения алгоритмов IGRP, EIGRP на маршрутизаторе Cisco

Шарики, 50 шт.
Шарики из мягкого пластика. Диаметр: 6 см. Цвет представлен в ассортименте, без возможности выбора.
342 руб
Раздел: Шары для бассейна
Папка для труда, А4.
Формат листов: А4. Материал: картон, текстиль. Товар в ассортименте, без возможности выбора! На фото представлен не весь ассортимент товара!
366 руб
Раздел: Папки-портфели, папки с наполнением
Карандаши цветные "Lyra Groove Slim", 12 цветов + точилка.
Карандаши с эргономичным захватом по всей длине. Диаметр грифеля 3,3 мм! Точилка. Уникальные карандаши с канавками! Запатентовано! Научите
540 руб
Раздел: 7-12 цветов

49. Понятие алгоритма

50. Разработка алгоритмов и программных средств подсистемы документооборота системы управления содержанием информационного сервера

51. Алгоритм сжатия "Unbuffered RLE"

52. Алгоритм «рамо»

53. Модификация алгоритма определения клик графа с параметрической адаптацией

54. Методика и алгоритмы контроля работоспособности и диагностики сейсмометрических каналов
55. Варианты алгоритма возведения в степень: повышение точности и ускорение
56. Алгоритм нисходящего разбора. Нисходящие распознаватели

57. Сравнительные характеристики трёх наиболее эффективных алгоритмов рисования отрезка

58. Циклические алгоритмы

59. Разработка программы, реализующей алгоритм шифрования ГОСТ 28147-89

60. Исследование и разработка алгоритмов программной среды взаимодействия рабочих станций вычислительных сетей

61. Генетический алгоритм

62. Методы и алгоритмы построения элементов систем статистического моделирования

63. Математическая логика и теория алгоритмов

64. Применение рекурсии в алгоритмах с возвратом. Файловый тип. Ввод/вывод

Подставка для ножей AK-210ST "Alpenkok", 11x22 см.
Размеры: 11х22 см. Подставка для ножей мраморной расцветки с черным наполнением. Материал корпуса: пластик. Внутренняя часть:
673 руб
Раздел: Подставки для ножей
Колокольчик декоративный "Узор", 8x13 см.
Цвет: белый. Материал: фарфор. Размер: 8x13 см.
355 руб
Раздел: Миниатюры
Горшок надувной для дома и авто "Baby-Krug", розовый.
Невероятно удобный надувной горшок был разработан при непосредственном участии квалифицированных медицинских работников и технических
489 руб
Раздел: Горшки обычные

65. Алгоритм внедрения управленческого абсолюта

66. Групповой полет летательных аппаратов – алгоритм обработки информации относительного движения.

67. Алгоритм ситуационного анализа для разрешения конфликтных ситуаций

68. Общий алгоритм оценки эффективности рекламной кампании

69. Горные породы, алгоритмы их определения

70. Алгоритм и его свойства
71. Алгоритм криптографического преобразования в режиме простой замены
72. Алгоритм работы программы "Консультант Плюс"

73. Алгоритми сортування

74. Алгоритмічні мови програмування

75. Алгоритмы вокруг нас

76. Алгоритмы и структуры данных. Программирование в Cи

77. Алгоритмы на графах. Независимые и доминирующие множества

78. Алгоритмы поиска остовного дерева Прима и Крускала

79. Алгоритмы поиска подстроки в строке

80. Алгоритмы сжатия данных

Ручка-стилус шариковая "Любимый дедушка".
Перед Вами готовый подарок в стильной упаковке — шариковая ручка со стилусом. Она имеет прочный металлический корпус, а надпись нанесена с
415 руб
Раздел: Металлические ручки
Кольцеброс с корзинами и мячами.
Спортивная игра. Цель играющих - набросить кольца с установленного расстояния на один из четырех вертикальных стержней, так чтобы кольца
470 руб
Раздел: Кольцебросы, кегли
Рюкзак "Стрит", черный.
Практичный рюкзак с универсальным дизайном подойдет для тех, кто в первую очередь ценит комфорт и сохранность своих вещей. Станет надежным
330 руб
Раздел: Без наполнения

81. Алгоритмы сортировки, поиска кратчайшего пути в графе и поиска покрытия, близкого к кратчайшему

82. Анализ алгоритмов нечисленной обработки данных

83. Интеллектуальные информационные технологии и системы: генетические алгоритмы

84. Компрессия информации и упорядочение дерева по алгоритму Виттера

85. Методические проблемы изучения алгоритмов работы с величинами

86. Порівняльний аналіз ефективності та складності швидких алгоритмів сортування масивів
87. Программирование алгоритма цифровой подписи ГОСТ Р 34.10-94
88. Программная реализация алгоритма Дейкстры (построение цепей минимальной длины)

89. Програмування алгоритмічною мовою VBA

90. Разработка алгоритма работы интеллектуальной информационной системы "Расчет меню"

91. Реализация алгоритма обратной трассировки лучей для моделей с большим числом полигонов

92. Розробка алгоритмів та складання програм на мові програмування MS VisualBasic for Application

93. Сжатие речи на основе алгоритма векторного квантования

94. Способы описания алгоритма. Виды операторов

95. Структуры данных и алгоритмы

96. Технологія ATM та алгоритм RED

Игрушка-подушка "Жираф", 32 см.
Главное достоинство подушки-это осязательный массаж, приятный, полезный и антидепрессивный. Внешний материал-гладкий, эластичный и прочный
1009 руб
Раздел: Антистрессы
Карандаши цветные "Kores", 24 цвета, с точилкой.
Двусторонние цветные карандаши имеют насыщенные цвета. Трехгранная форма корпуса снижает усталость и придает дополнительный комфорт.
311 руб
Раздел: 13-24 цвета
Кружка фарфоровая "FIFA 2018. Забивака. Триумф!", 480 мл.
Объем: 480 мл. Материал: фарфор.
401 руб
Раздел: Кружки, посуда

97. Шифрование и дешифрование данных при помощи симметричных криптографических алгоритмов

98. Генетический алгоритм

99. Динамическое программирование, алгоритмы на графах


Поиск Рефератов на сайте za4eti.ru Вы студент, и у Вас нет времени на выполнение письменных работ (рефератов, курсовых и дипломов)? Мы сможем Вам в этом помочь. Возможно, Вам подойдет что-то из ПЕРЕЧНЯ ПРЕДМЕТОВ И ДИСЦИПЛИН, ПО КОТОРЫМ ВЫПОЛНЯЮТСЯ РЕФЕРАТЫ, КУРСОВЫЕ И ДИПЛОМНЫЕ РАБОТЫ. 
Вы можете поискать нужную Вам работу в КОЛЛЕКЦИИ ГОТОВЫХ РЕФЕРАТОВ, КУРСОВЫХ И ДИПЛОМНЫХ РАБОТ, выполненных преподавателями московских ВУЗов за период более чем 10-летней работы. Эти работы Вы можете бесплатно СКАЧАТЬ.