SlideShare a Scribd company logo
Алгоритмы поиска.
Задача поиска. Поиск – одно из наиболее часто программируемых действий.
Эффективность поиска – важнейший критерий качества структур данных.
Классические задачи поиска: поиск слова в тексте, отыскание данных в БД.
Современные задачи поиска: поиск в сети Интернет, антивирусное
сканирование программного кода, антиспамовская фильтрация почтовых
сообщений, расшифровка молекулярных структур для задач
биологии, генетики, фармацевтики. Многокритериальный семантический поиск:
очистка и анализ данных, оперативно-розыскная деятельность.
Простые алгоритмы поиска.
Линейный поиск. Оценка сложности. Анализ условия продолжения цикла.
Инвариант и завершимость цикла линейного поиска. Вариант с барьерным
элементом. Применение итераторов. Псевдокод.
Двоичный поиск. Дихотомия и дерево поиска. Золотое сечение. Хеширование.
Анализ цикла двоичного поиска. Сложностная оценка. Сравнение с деревом
поиска. Оптимизация цикла путѐм упрощения предусловия. Позднее
обнаружение при использовании барьерного индекса. Доказательство
завершимости цикла с модифицированным предусловием. Устойчивость
модифицированного двоичного поиска. Псевдокод.
Поиск в таблице.
Особенности поиска по составному ключу регулярной структуры.
Определение лексикографического порядка строк.
Представление строк переменной длины: использование терминатора или
дескриптора строки. Преимущество терминального способа: возможность
копирования и сравнения строк более быстрым барьерным методом.
Аппаратная реализация строк регулируемой длины.
Двоичный поиск в лексикографически упорядоченной таблице. Псевдокод с
вложенным циклом и финальной проверкой ключа правограничного элемента.
Продвинутый код программы двоичного поиска в таблице на C. Использование
указателей и терминатора для повышения выразительности поискового кода.
Готовые решения двоичного поиска в C(bsearch) и С++ STL (find() и
binary_search()) Пример использования готового решения на C.
Поиск по образцу.
Постановка задачи.
Прямой метод поиска. Прямоугольная оценка сложности. (Кнута-Морриса-
Пратта, Бойера-Мура, Карпа-Рабина). Анализ метода с использованием
предикатов частичного совпадения и первовхождения. Псевдокод с пред- и
постусловием. Преобразование предиката частичного совпадения к поиску
несовпадения. Анализ корректности и завершимости модифицированного
псевдокода. Недостатки метода: необходимость возвратов, противоречащих
инерционности движения носителей устройств внешней памяти. Сложностная
оценка. Крэш-тест.
Усовершенствованные методы.
Алгоритм Кнута-Морриса-Пратта. Идея метода: использование при сравнении с
образцом предыдущих результатов неудачного поиска для быстрого
продвижения вперѐд. Достаточность самого образца для увеличения сдвига при
поиске. Пример. Псевдокод КМП-алгоритма. Обоснование вложенного цикла
поиска. Завершимость и корректность. Соображения к вычислению таблицы
сдвигов по конкретному образцу. Примеры.
Вычисление сдвига как поиск самой длинной совпадающей
последовательности в самом образце. Идея применения КМП-алгоритма к
вычислению сдвига.
Пример реализации КМП-алгоритма.
Анализ КМП-поиска. Сложностная оценка: периметр против площади.
Алгоритм Бойера-Мура.
Критика КМП-алгоритма. Совпадения реже несовпадений! Смена культуры
письменности. Поиск с конца образца. Существенное упрощение таблицы
сдвигов. Еѐ построение по рабочему алфавиту. Пример.
Модификация поисковых предикатов. Псевдокод БМ-алгоритма.
Доказательство корректности и завершимости цикла. Программная реализация
БМ-алгоритма (правило плохой литеры без правила хорошего суффикса).
Анализ БМ-алгоритма. Сложностные оценки.
Комбинированная стратегия КМП-БМ. Ирония Н. Вирта.
Алгоритм Рабина-Карпа.
Идея метода: сведение к числовому поиску. Необходимость длинной
арифметики. Постоянные и линейные оценки для элементов поисковой
арифметики Рабина-Карпа. Аналогии с хэшированием. Сжимающее
отображение на аппаратную арифметику.
Программная реализация для 32- и 64-битной арифметики.
Более сложные реализации усовершенствованных методов.
Использование Z-блоков для поиска образца в строке в алгоритме Кнута-
Мориса-Пратта. Вариант алгоритма Кнута-Мориса-Пратта реального времени.
Множественный поиск образцов в строке. Алгоритм Ахо-Корасик.
Построение связей неудач для дерева ключей. Поиск в строке образца с
метасимволами («джокерами»).
Алгоритм Бойера-Мура. Правило плохой литеры, расширенное правило плохой
литеры. Сильное и слабое правило хорошего суффикса. Предварительная
обработка образца с использованием Z-блоков.
Алгоритм Апостолико-Джанкарло с линейной оценкой времени.
Методы поиска и поисковые системы. Технологии Мэйл.Ру.
АиСД осень 2012 лекция 12

More Related Content

What's hot

Запуск клуба "Поисковые системы"
Запуск клуба "Поисковые системы"Запуск клуба "Поисковые системы"
Запуск клуба "Поисковые системы"dbarashev
 
DUMP-2013 Наука и жизнь - Практические применения семантических вычислений - ...
DUMP-2013 Наука и жизнь - Практические применения семантических вычислений - ...DUMP-2013 Наука и жизнь - Практические применения семантических вычислений - ...
DUMP-2013 Наука и жизнь - Практические применения семантических вычислений - ...it-people
 
"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ
Yandex
 
Технологический стек классификации текстов на естественных языках
Технологический стек классификации текстов на естественных языкахТехнологический стек классификации текстов на естественных языках
Технологический стек классификации текстов на естественных языках
Сергей Пономарев
 
«Где на самом деле начинается конверсия», Анастасия Берсенева, ТопЭксперт
«Где на самом деле начинается конверсия», Анастасия Берсенева, ТопЭксперт«Где на самом деле начинается конверсия», Анастасия Берсенева, ТопЭксперт
«Где на самом деле начинается конверсия», Анастасия Берсенева, ТопЭксперт
it-people
 
L13: Заключительная
L13: ЗаключительнаяL13: Заключительная
L13: ЗаключительнаяTechnosphere1
 

What's hot (6)

Запуск клуба "Поисковые системы"
Запуск клуба "Поисковые системы"Запуск клуба "Поисковые системы"
Запуск клуба "Поисковые системы"
 
DUMP-2013 Наука и жизнь - Практические применения семантических вычислений - ...
DUMP-2013 Наука и жизнь - Практические применения семантических вычислений - ...DUMP-2013 Наука и жизнь - Практические применения семантических вычислений - ...
DUMP-2013 Наука и жизнь - Практические применения семантических вычислений - ...
 
"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ
 
Технологический стек классификации текстов на естественных языках
Технологический стек классификации текстов на естественных языкахТехнологический стек классификации текстов на естественных языках
Технологический стек классификации текстов на естественных языках
 
«Где на самом деле начинается конверсия», Анастасия Берсенева, ТопЭксперт
«Где на самом деле начинается конверсия», Анастасия Берсенева, ТопЭксперт«Где на самом деле начинается конверсия», Анастасия Берсенева, ТопЭксперт
«Где на самом деле начинается конверсия», Анастасия Берсенева, ТопЭксперт
 
L13: Заключительная
L13: ЗаключительнаяL13: Заключительная
L13: Заключительная
 

Viewers also liked

KE General Presentation June 2009
KE General Presentation June 2009KE General Presentation June 2009
KE General Presentation June 2009
Knowledge Exchange
 
Food Cravings During Pregnancy
Food  Cravings  During  PregnancyFood  Cravings  During  Pregnancy
Food Cravings During Pregnancy
Alicia Knapp
 
Leys beacon dodsworth
Leys beacon dodsworthLeys beacon dodsworth
Leys beacon dodsworthGeoBlogs
 
ESDS_Corporate_Presentation
ESDS_Corporate_PresentationESDS_Corporate_Presentation
ESDS_Corporate_Presentation
Purshottam Ubhrani
 
Formulario2009 Fdi Estudiantil
Formulario2009 Fdi EstudiantilFormulario2009 Fdi Estudiantil
Formulario2009 Fdi Estudiantilcaries.violetas
 
eLearning2006
eLearning2006eLearning2006
eLearning2006
cplp
 
Wuthering heights
Wuthering heightsWuthering heights
Wuthering heights
Ashwaq Aljumaiah
 
Oratoria juridica
Oratoria juridicaOratoria juridica
Oratoria juridica
rodrigo pineda
 
project
projectproject
project
cplp
 
Plc
PlcPlc
Hospital psiquiatrico dia para esmeraldas
Hospital psiquiatrico dia para esmeraldasHospital psiquiatrico dia para esmeraldas
Hospital psiquiatrico dia para esmeraldas
Lilian Yass
 
Presentation 3 definite & indefinite articles
Presentation 3 definite & indefinite articlesPresentation 3 definite & indefinite articles
Presentation 3 definite & indefinite articles
Marta Łopion
 

Viewers also liked (12)

KE General Presentation June 2009
KE General Presentation June 2009KE General Presentation June 2009
KE General Presentation June 2009
 
Food Cravings During Pregnancy
Food  Cravings  During  PregnancyFood  Cravings  During  Pregnancy
Food Cravings During Pregnancy
 
Leys beacon dodsworth
Leys beacon dodsworthLeys beacon dodsworth
Leys beacon dodsworth
 
ESDS_Corporate_Presentation
ESDS_Corporate_PresentationESDS_Corporate_Presentation
ESDS_Corporate_Presentation
 
Formulario2009 Fdi Estudiantil
Formulario2009 Fdi EstudiantilFormulario2009 Fdi Estudiantil
Formulario2009 Fdi Estudiantil
 
eLearning2006
eLearning2006eLearning2006
eLearning2006
 
Wuthering heights
Wuthering heightsWuthering heights
Wuthering heights
 
Oratoria juridica
Oratoria juridicaOratoria juridica
Oratoria juridica
 
project
projectproject
project
 
Plc
PlcPlc
Plc
 
Hospital psiquiatrico dia para esmeraldas
Hospital psiquiatrico dia para esmeraldasHospital psiquiatrico dia para esmeraldas
Hospital psiquiatrico dia para esmeraldas
 
Presentation 3 definite & indefinite articles
Presentation 3 definite & indefinite articlesPresentation 3 definite & indefinite articles
Presentation 3 definite & indefinite articles
 

Similar to АиСД осень 2012 лекция 12

АиСД осень 2012 лекция 9
АиСД осень 2012 лекция 9АиСД осень 2012 лекция 9
АиСД осень 2012 лекция 9Technopark
 
О том, как Computer Science нам жить помогает или современные приложения теор...
О том, как Computer Science нам жить помогает или современные приложения теор...О том, как Computer Science нам жить помогает или современные приложения теор...
О том, как Computer Science нам жить помогает или современные приложения теор...
maxkalachev
 
2014-2015_Алгор-структ_Раб-прогр_Мансуров
2014-2015_Алгор-структ_Раб-прогр_Мансуров2014-2015_Алгор-структ_Раб-прогр_Мансуров
2014-2015_Алгор-структ_Раб-прогр_Мансуров????? ????????
 
Управление требованиями - это не только требования. Для CEE-SECR-2015. Анна А...
Управление требованиями - это не только требования. Для CEE-SECR-2015. Анна А...Управление требованиями - это не только требования. Для CEE-SECR-2015. Анна А...
Управление требованиями - это не только требования. Для CEE-SECR-2015. Анна А...
Anna Abramova
 
"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУ"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУ
Yandex
 
Ранжирование: от строчки кода до Матрикснета
Ранжирование:  от строчки кода до МатрикснетаРанжирование:  от строчки кода до Матрикснета
Ранжирование: от строчки кода до Матрикснетаyaevents
 
Ainl 2013 bogatyrev_математическая и лингвистическая
Ainl 2013 bogatyrev_математическая и лингвистическаяAinl 2013 bogatyrev_математическая и лингвистическая
Ainl 2013 bogatyrev_математическая и лингвистическаяAINL Conferences
 
Никулин Павел. Machine learning для текстового анализа
Никулин Павел. Machine learning для текстового анализаНикулин Павел. Machine learning для текстового анализа
Никулин Павел. Machine learning для текстового анализа
Дмитрий Шахов
 
«SEO-экспериментариум», выпуск 1 на MegaIndex.TV. Севальнев Дмитрий
«SEO-экспериментариум», выпуск 1 на MegaIndex.TV. Севальнев Дмитрий«SEO-экспериментариум», выпуск 1 на MegaIndex.TV. Севальнев Дмитрий
«SEO-экспериментариум», выпуск 1 на MegaIndex.TV. Севальнев Дмитрий
Дмитрий Севальнев
 
Принципы работы поисковой системы
Принципы работы поисковой системыПринципы работы поисковой системы
Принципы работы поисковой системы
Netpeak
 
Принципы работы поисковой системы
Принципы работы поисковой системыПринципы работы поисковой системы
Принципы работы поисковой системы
Netpeak
 
Разжёванный Матрикс.нет. Клиентская версия (выступление в Перми, 2011)
Разжёванный Матрикс.нет. Клиентская версия (выступление в Перми, 2011)Разжёванный Матрикс.нет. Клиентская версия (выступление в Перми, 2011)
Разжёванный Матрикс.нет. Клиентская версия (выступление в Перми, 2011)Евгений Летов
 
машинное обучение и анализ данных
машинное обучение и анализ данныхмашинное обучение и анализ данных
машинное обучение и анализ данныхYandex
 
презентация F1 #12
презентация F1 #12презентация F1 #12
презентация F1 #12
Alexey Chekushin
 
Метапрограммирование с примерами на JavaScript
Метапрограммирование с примерами на JavaScriptМетапрограммирование с примерами на JavaScript
Метапрограммирование с примерами на JavaScript
Timur Shemsedinov
 
Гайд по текстовому антиспаму
Гайд по текстовому антиспамуГайд по текстовому антиспаму
Гайд по текстовому антиспаму
Alexey Chekushin
 

Similar to АиСД осень 2012 лекция 12 (20)

АиСД осень 2012 лекция 9
АиСД осень 2012 лекция 9АиСД осень 2012 лекция 9
АиСД осень 2012 лекция 9
 
лекция 35
лекция 35лекция 35
лекция 35
 
О том, как Computer Science нам жить помогает или современные приложения теор...
О том, как Computer Science нам жить помогает или современные приложения теор...О том, как Computer Science нам жить помогает или современные приложения теор...
О том, как Computer Science нам жить помогает или современные приложения теор...
 
Информационный поиск. Методы оценки качества поиска. Эволюция результатов
Информационный поиск. Методы оценки качества поиска. Эволюция результатовИнформационный поиск. Методы оценки качества поиска. Эволюция результатов
Информационный поиск. Методы оценки качества поиска. Эволюция результатов
 
2014-2015_Алгор-структ_Раб-прогр_Мансуров
2014-2015_Алгор-структ_Раб-прогр_Мансуров2014-2015_Алгор-структ_Раб-прогр_Мансуров
2014-2015_Алгор-структ_Раб-прогр_Мансуров
 
Управление требованиями - это не только требования. Для CEE-SECR-2015. Анна А...
Управление требованиями - это не только требования. Для CEE-SECR-2015. Анна А...Управление требованиями - это не только требования. Для CEE-SECR-2015. Анна А...
Управление требованиями - это не только требования. Для CEE-SECR-2015. Анна А...
 
"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУ"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУ
 
Ранжирование: от строчки кода до Матрикснета
Ранжирование:  от строчки кода до МатрикснетаРанжирование:  от строчки кода до Матрикснета
Ранжирование: от строчки кода до Матрикснета
 
Ainl 2013 bogatyrev_математическая и лингвистическая
Ainl 2013 bogatyrev_математическая и лингвистическаяAinl 2013 bogatyrev_математическая и лингвистическая
Ainl 2013 bogatyrev_математическая и лингвистическая
 
Никулин Павел. Machine learning для текстового анализа
Никулин Павел. Machine learning для текстового анализаНикулин Павел. Machine learning для текстового анализа
Никулин Павел. Machine learning для текстового анализа
 
«SEO-экспериментариум», выпуск 1 на MegaIndex.TV. Севальнев Дмитрий
«SEO-экспериментариум», выпуск 1 на MegaIndex.TV. Севальнев Дмитрий«SEO-экспериментариум», выпуск 1 на MegaIndex.TV. Севальнев Дмитрий
«SEO-экспериментариум», выпуск 1 на MegaIndex.TV. Севальнев Дмитрий
 
Принципы работы поисковой системы
Принципы работы поисковой системыПринципы работы поисковой системы
Принципы работы поисковой системы
 
Принципы работы поисковой системы
Принципы работы поисковой системыПринципы работы поисковой системы
Принципы работы поисковой системы
 
Разжёванный Матрикс.нет. Клиентская версия (выступление в Перми, 2011)
Разжёванный Матрикс.нет. Клиентская версия (выступление в Перми, 2011)Разжёванный Матрикс.нет. Клиентская версия (выступление в Перми, 2011)
Разжёванный Матрикс.нет. Клиентская версия (выступление в Перми, 2011)
 
машинное обучение и анализ данных
машинное обучение и анализ данныхмашинное обучение и анализ данных
машинное обучение и анализ данных
 
презентация F1 #12
презентация F1 #12презентация F1 #12
презентация F1 #12
 
Метапрограммирование с примерами на JavaScript
Метапрограммирование с примерами на JavaScriptМетапрограммирование с примерами на JavaScript
Метапрограммирование с примерами на JavaScript
 
Masters
MastersMasters
Masters
 
лекция 31
лекция 31лекция 31
лекция 31
 
Гайд по текстовому антиспаму
Гайд по текстовому антиспамуГайд по текстовому антиспаму
Гайд по текстовому антиспаму
 

More from Technopark

Лекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelЛекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель Pregel
Technopark
 
Лекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuЛекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.Ru
Technopark
 
Лекция 13. YARN
Лекция 13. YARNЛекция 13. YARN
Лекция 13. YARN
Technopark
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. Spark
Technopark
 
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache Mahout
Technopark
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeper
Technopark
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и Hive
Technopark
 
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)
Technopark
 
Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)
Technopark
 
Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)
Technopark
 
Лекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFSЛекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFS
Technopark
 
Лекция 2. Основы Hadoop
Лекция 2. Основы HadoopЛекция 2. Основы Hadoop
Лекция 2. Основы Hadoop
Technopark
 
Лекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduceЛекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduce
Technopark
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
Technopark
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
Technopark
 
СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"
Technopark
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
Technopark
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
Technopark
 
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"
Technopark
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
Technopark
 

More from Technopark (20)

Лекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelЛекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель Pregel
 
Лекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuЛекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.Ru
 
Лекция 13. YARN
Лекция 13. YARNЛекция 13. YARN
Лекция 13. YARN
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. Spark
 
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache Mahout
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeper
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и Hive
 
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)
 
Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)
 
Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)
 
Лекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFSЛекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFS
 
Лекция 2. Основы Hadoop
Лекция 2. Основы HadoopЛекция 2. Основы Hadoop
Лекция 2. Основы Hadoop
 
Лекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduceЛекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduce
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
 
СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
 
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
 

АиСД осень 2012 лекция 12

  • 1.
  • 2. Алгоритмы поиска. Задача поиска. Поиск – одно из наиболее часто программируемых действий. Эффективность поиска – важнейший критерий качества структур данных. Классические задачи поиска: поиск слова в тексте, отыскание данных в БД. Современные задачи поиска: поиск в сети Интернет, антивирусное сканирование программного кода, антиспамовская фильтрация почтовых сообщений, расшифровка молекулярных структур для задач биологии, генетики, фармацевтики. Многокритериальный семантический поиск: очистка и анализ данных, оперативно-розыскная деятельность. Простые алгоритмы поиска. Линейный поиск. Оценка сложности. Анализ условия продолжения цикла. Инвариант и завершимость цикла линейного поиска. Вариант с барьерным элементом. Применение итераторов. Псевдокод. Двоичный поиск. Дихотомия и дерево поиска. Золотое сечение. Хеширование. Анализ цикла двоичного поиска. Сложностная оценка. Сравнение с деревом поиска. Оптимизация цикла путѐм упрощения предусловия. Позднее обнаружение при использовании барьерного индекса. Доказательство завершимости цикла с модифицированным предусловием. Устойчивость модифицированного двоичного поиска. Псевдокод.
  • 3. Поиск в таблице. Особенности поиска по составному ключу регулярной структуры. Определение лексикографического порядка строк. Представление строк переменной длины: использование терминатора или дескриптора строки. Преимущество терминального способа: возможность копирования и сравнения строк более быстрым барьерным методом. Аппаратная реализация строк регулируемой длины. Двоичный поиск в лексикографически упорядоченной таблице. Псевдокод с вложенным циклом и финальной проверкой ключа правограничного элемента. Продвинутый код программы двоичного поиска в таблице на C. Использование указателей и терминатора для повышения выразительности поискового кода. Готовые решения двоичного поиска в C(bsearch) и С++ STL (find() и binary_search()) Пример использования готового решения на C.
  • 4. Поиск по образцу. Постановка задачи. Прямой метод поиска. Прямоугольная оценка сложности. (Кнута-Морриса- Пратта, Бойера-Мура, Карпа-Рабина). Анализ метода с использованием предикатов частичного совпадения и первовхождения. Псевдокод с пред- и постусловием. Преобразование предиката частичного совпадения к поиску несовпадения. Анализ корректности и завершимости модифицированного псевдокода. Недостатки метода: необходимость возвратов, противоречащих инерционности движения носителей устройств внешней памяти. Сложностная оценка. Крэш-тест. Усовершенствованные методы. Алгоритм Кнута-Морриса-Пратта. Идея метода: использование при сравнении с образцом предыдущих результатов неудачного поиска для быстрого продвижения вперѐд. Достаточность самого образца для увеличения сдвига при поиске. Пример. Псевдокод КМП-алгоритма. Обоснование вложенного цикла поиска. Завершимость и корректность. Соображения к вычислению таблицы сдвигов по конкретному образцу. Примеры.
  • 5. Вычисление сдвига как поиск самой длинной совпадающей последовательности в самом образце. Идея применения КМП-алгоритма к вычислению сдвига. Пример реализации КМП-алгоритма. Анализ КМП-поиска. Сложностная оценка: периметр против площади. Алгоритм Бойера-Мура. Критика КМП-алгоритма. Совпадения реже несовпадений! Смена культуры письменности. Поиск с конца образца. Существенное упрощение таблицы сдвигов. Еѐ построение по рабочему алфавиту. Пример. Модификация поисковых предикатов. Псевдокод БМ-алгоритма. Доказательство корректности и завершимости цикла. Программная реализация БМ-алгоритма (правило плохой литеры без правила хорошего суффикса). Анализ БМ-алгоритма. Сложностные оценки. Комбинированная стратегия КМП-БМ. Ирония Н. Вирта.
  • 6. Алгоритм Рабина-Карпа. Идея метода: сведение к числовому поиску. Необходимость длинной арифметики. Постоянные и линейные оценки для элементов поисковой арифметики Рабина-Карпа. Аналогии с хэшированием. Сжимающее отображение на аппаратную арифметику. Программная реализация для 32- и 64-битной арифметики. Более сложные реализации усовершенствованных методов. Использование Z-блоков для поиска образца в строке в алгоритме Кнута- Мориса-Пратта. Вариант алгоритма Кнута-Мориса-Пратта реального времени. Множественный поиск образцов в строке. Алгоритм Ахо-Корасик. Построение связей неудач для дерева ключей. Поиск в строке образца с метасимволами («джокерами»). Алгоритм Бойера-Мура. Правило плохой литеры, расширенное правило плохой литеры. Сильное и слабое правило хорошего суффикса. Предварительная обработка образца с использованием Z-блоков. Алгоритм Апостолико-Джанкарло с линейной оценкой времени. Методы поиска и поисковые системы. Технологии Мэйл.Ру.