- •Грубый подход определения макс. Потока:
- •Классификация:
- •47. Цель оптимальной сортировки:
- •48. Дано множество из n чисел; нужно найти тот его элемент, который будет k-м по счѐту,
- •Сбалансированное многопутевое слияние
- •53. Особенности естественного слияния. Сортировка, при которой сливаются 2 упорядоченные серии – упорядоченное слияние.
- •55. Похожа на многофазную сортировку. Отличие заключается в самом процессе слияния:
- •Недостатки хеширования:
- •Классы хеш-функций:
- •65. По сравнению с методом поиска с возвратом метод ветвей и границ требует:
- •Разновидности метода решета
- •68. Эвристические алгоритмы
- •Эвристический подход для улучшения решения задачи о шахматном коне
- •Характеристика жадных алгоритмов
- •Жадные алгоритмы для задачи о рюкзаке
- •69. Файл - это совокупность элементов данных, сгруппированных для хранения и использования в информационно-вычислительных системах.
- •Логическая и физическая структура файла
- •71. Изучение np-полных задач связано с так называемым вопросом р≠np. Этот вопрос был поставлен в 1971 году и является сейчас одной из наиболее интересных и сложных проблем теории вычислений.
Разновидности метода решета
• решето Эратосфена
• Нерекурсивное модульное решето
• обобщенное модульное решето
• Рекурсивное решето
• Двойное решето
• Решето, отбраковывающее изоморфные объекты
68. Эвристические алгоритмы
• Для трудных с вычислительной точки зрения проблем один из подходов состоит в том, чтобы требовать результат близкий к оптимальному. Ослабление ограничений на оптимальность часто приводит к более эффективным алгоритмам, поскольку в этом случае исчерпывающий поиск является только «приближенным». При этом ожидается, что проигрыш в стоимости найденных (квазиоптимальных) решений будет умеренным.
• Не трудно изобрести эвристические алгоритмы, которые быстро находят решение; в действительности, можно обнаружить, что большинство, но не все решения, получаемые эвристикой, являются хорошими. • Теоретически невозможно доказать, что эвристический алгоритм всегда находит решение, близкое к оптимальному.
Эвристический подход для улучшения решения задачи о шахматном коне
• Для очередного хода выберем такое поле, в которое можно перейти из минимального числа полей. Так мы оставляем свободными поля, доступные из большего числа полей. Для этого дополнительно к матрице доски используем еще одну матрицу М такого же размера n*n, каждый элемент mi,j которой будет содержать число возможных переходов коня с поля hi,j на другие поля. Так же, как и в предыдущем примере, в элемент hi,j заносится номер хода коня,
одновременно соответствующий элемент mi,j обнуляется. Так как поле hi,j теперь стало
недоступным для перехода с других полей, то соответственно корректируется и матрица
m. • Этот эвристический алгоритм с направленным выбором хода коня превращает
предыдущий алгоритм с возвратом, реализованный с применением рекурсии, в алгоритм без возврата и без рекурсии. Он выполняется всего за (m - 1) ходов (m - число полей на доске).
Характеристика жадных алгоритмов
• Жадные алгоритмы, как и динамическое программирование, применяются в тех случаях,
когда искомый объект строится по частям. Жадный алгоритм делает на каждом шаге «локально оптимальный» выбор.
• Простой пример: стараясь набрать данную сумму денег минимальным числом монет, можно последовательно брать монеты наибольшего возможного достоинства (не превосходящего той суммы, которую осталось набрать). • Жадный алгоритм обычно работает гораздо быстрее, чем алгоритм, основанный на динамическом программировании. Однако жадный алгоритм вовсе не всегда даѐт оптимальное решение. Во многих задачах применимость жадных алгоритмов удаѐтся доказать с помощью так называемых матроидов.
Жадные алгоритмы для задачи о рюкзаке
Шаг 1. Вычислим удельные стоимости всех предметов множества ri= vi /wi , i = 1,2,..., n.
Шаг 2. Отсортируем предметы в невозрастающем порядке по их удельным стоимостям,
вычисленным на шаге 1 (неоднозначности разрешаются произвольным образом).
Шаг 3. До тех пор пока в отсортированном списке не останется ни одного предмета,
повторяем следующие действия: если текущий предмет помещается в рюкзак, мы
помещаем его туда; в противном случае переходим к следующему предмету.