- •Примерный список дополнительных вопросов по курсу «Структуры и алгоритмы обработки данных» для групп а-80, а-90, а-100, ау-110, уч. Год 2011/2012, весенний семестр
- •Что такое комбинаторные задачи?
- •Что такое план задачи? допустимый план? оптимальный план?
- •Чем различаются комбинаторные задачи с фиксированной и нефиксированной размерностью?
- •Как зависит трудоемкость перебора от числа переменных и от числа возможных значений переменных?
- •Что называется рекордом при решении задач оптимизации?
- •В каких случаях можно сократить перебор с возвратами?
- •Какой смысл имеет операция приведения матрицы в алгоритме решения задачи
- •Как организуется ветвление при решении задачи коммивояжера методом ветвей и границ?
- •Для каких задач может использоваться метод --отсечений?
- •Что такое -отсечение? -отсечение?
- •Как поступают, если в методе --отсечений перебор остается слишком большим?
- •В чем идея метода динамического программирования для решения комбинаторных задач?
- •Что такое оценка сложности задачи?
- •Какая именно сложность рассматривается при изучении теории вычислительной сложности?
- •Что такое массовая задача и индивидуальная задача?
- •Что является аргументом функций, оценивающих сложность алгоритмов и задач?
- •Как формулируется задача о выполнимости кнф?
- •Каков смысл каждого из 6 типов условий, накладываемых на нмт в доказательстве теоремы Кука?
- •Каков смысл этих условий в совокупности?
- •Какую практическую пользу может принести доказательство np-полноты конкретной задачи?
- •Как доказывается np-полнота конкретных задач?
- •Приведите несколько примеров np-полных задач.
- •Почему задача о рюкзаке, являясь np-полной, имеет эффективные алгоритмы решения?
- •Что такое псевдополиномиальный алгоритм?
- •Какую задачу решает алгоритм Дейкстры и в чем идея этого алгоритма?
- •Какова трудоемкость алгоритмов Флойда и Дейкстры?
- •Что такое поток в сети?
- •В чем идея алгоритма поиска аугментальной цепи?
Какой смысл имеет операция приведения матрицы в алгоритме решения задачи
коммивояжера методом ветвей и границ?
Пусть i – минимальное расстояние в i-той строке матрицы. Выпишем значение i в дополнительном столбце справа и вычтем его из всех элементов строки. Затем выполним такую же операцию со столбцами матрицы. Подсчитаем сумму всех i.
Как организуется ветвление при решении задачи коммивояжера методом ветвей и границ?
Теперь следует продумать способ разделения множества маршрутов. Выберем один из элементов матрицы aij, определяющий расстояние от города i до города j, и разделим все множество маршрутов на две неравные части: те маршруты, которые включают путь из i в j (U0), и те, которые не включают этот путь (U1). Чтобы меньшее множество U0 было более перспективным, надо выбрать такой элемент aij, который с наибольшей вероятностью входит в оптимальный маршрут. В качестве такого элемента разумно выбрать один из нулевых элементов матрицы A, однако какой именно? Вероятно, тот, отказ от которого приведет к наибольшим потерям. Как можно подсчитать потери, связанные с отказом от использования пути из города i в город j? Во-первых, из города i все равно придется куда-то ехать, поэтому в суммарную длину маршрута вместо слагаемого aij = 0 войдет некоторый элемент i-той строки aik, где k j. Минимальное по i-той строке значение aik дает оценку связанных с этим потерь. Во-вторых, в город j надо будет откуда-то приехать, и минимальное по столбцу значение arj, где r i, даст оценку потерь от того, что коммивояжер приехал не из города i. Общая оценка потерь ij равна сумме оценок по строке и по столбцу.
Для каких задач может использоваться метод --отсечений?
Метод a-b-отсечений применяется для позиционных игр с полной информацией.
Подобная модель называется позиционной игрой двух лиц с полной информацией и нулевой суммой (понятие «нулевая сумма» означает, что выигрыш одного игрока в точности равен проигрышу другого). Этой моделью описывается множество реальных игр: шахматы, шашки, го, «крестики-нолики» и т.п. В большинстве случаев выигрыш может принимать одно из трех значений: 1 (партия выиграна), 0 (ничья) или -1 (партия проиграна).
Что такое -отсечение? -отсечение?
Ситуация, когда просмотр потомства вершины с ходом белых прекращается после обнаружения сына со значением (или с верхней оценкой), меньшим, чем имеющаяся нижняя оценка его деда, называется -отсечением.
ситуация, когда просмотр потомства вершины с ходом белых прекращается после обнаружения сына со значением (или с нижней оценкой), большим, чем имеющаяся верхняя оценка его деда, называется -отсечением
Как поступают, если в методе --отсечений перебор остается слишком большим?
При этом вычисление точных значений вершин приходится заменять вычислением приближенных оценочных функций. На каждом ходу строят дерево перебора, искусственно ограниченное по высоте несколькими ходами, и для тех позиций игры, которые оказались в роли листьев усеченного дерева, вычисляют приближенную оценку позиции. Для шахмат, например, самая тупая оценочная функция учитывает только суммарную стоимость оставшихся фигур. Более изощренные функции учитывают различные позиционные факторы: контроль над центром, наличие проходных пешек и т.п. На основании таких оценок выполняется перебор с --отсечениями и выбирается наилучший ход. После получения ответного хода соперника вся процедура повторяется для новой корневой позиции.