- •Примерный список дополнительных вопросов по курсу «Структуры и алгоритмы обработки данных» для групп а-80, а-90, а-100, ау-110, уч. Год 2011/2012, весенний семестр
- •Что такое комбинаторные задачи?
- •Что такое план задачи? допустимый план? оптимальный план?
- •Чем различаются комбинаторные задачи с фиксированной и нефиксированной размерностью?
- •Как зависит трудоемкость перебора от числа переменных и от числа возможных значений переменных?
- •Что называется рекордом при решении задач оптимизации?
- •В каких случаях можно сократить перебор с возвратами?
- •Какой смысл имеет операция приведения матрицы в алгоритме решения задачи
- •Как организуется ветвление при решении задачи коммивояжера методом ветвей и границ?
- •Для каких задач может использоваться метод --отсечений?
- •Что такое -отсечение? -отсечение?
- •Как поступают, если в методе --отсечений перебор остается слишком большим?
- •В чем идея метода динамического программирования для решения комбинаторных задач?
- •Что такое оценка сложности задачи?
- •Какая именно сложность рассматривается при изучении теории вычислительной сложности?
- •Что такое массовая задача и индивидуальная задача?
- •Что является аргументом функций, оценивающих сложность алгоритмов и задач?
- •Как формулируется задача о выполнимости кнф?
- •Каков смысл каждого из 6 типов условий, накладываемых на нмт в доказательстве теоремы Кука?
- •Каков смысл этих условий в совокупности?
- •Какую практическую пользу может принести доказательство np-полноты конкретной задачи?
- •Как доказывается np-полнота конкретных задач?
- •Приведите несколько примеров np-полных задач.
- •Почему задача о рюкзаке, являясь np-полной, имеет эффективные алгоритмы решения?
- •Что такое псевдополиномиальный алгоритм?
- •Какую задачу решает алгоритм Дейкстры и в чем идея этого алгоритма?
- •Какова трудоемкость алгоритмов Флойда и Дейкстры?
- •Что такое поток в сети?
- •В чем идея алгоритма поиска аугментальной цепи?
Примерный список дополнительных вопросов по курсу «Структуры и алгоритмы обработки данных» для групп а-80, а-90, а-100, ау-110, уч. Год 2011/2012, весенний семестр
Что такое комбинаторные задачи?
Задачу имеет смысл называть комбинаторной, если ее решение состоит в переборе элементов x множества X.
Комбинаторные задачи – это задачи, требующие осуществления перебора всех возможных вариантов или подсчета их числа.
Что такое план задачи? допустимый план? оптимальный план?
План задачи – это результат решения (наборы значений переменных X = x1, x2, ... xn) . Допустимый план - любой набор значений x1, x2, ... xn, такой, что функция ограничения G(X, p) = 1 (задача поиска);
Оптимальный план - такой набор значений x1, x2, ... xn, что G(X, p) = 1 и заданная целевая функция F(X, p) принимает минимальное значение (задача оптимизации).
Чем различаются комбинаторные задачи с фиксированной и нефиксированной размерностью?
Комбинаторная задача с нефиксированной размерностью отличается тем, что величина n (длина плана) заранее неизвестна и может быть различной для разных планов одной и той же задачи.
Для таких задач план строится, начиная с x1, и после выбора значения каждой очередной xk по определенным правилам определяется, получен ли уже полный план задачи или требуется определение следующей переменной xk+1. В то же время требуется, чтобы число шагов было заведомо конечно.
Назовите несколько примеров комбинаторных задач.
Задача о раскраске графа, о коммивояжёре, о рюкзаке, о кратчайшем и длиннейшем пути в графе.
Что такое исчерпывающий перебор?
Исчерпывающий перебор – это такой перебор, когда в конкретном алгоритме можно гарантировать, что не пропущен ни один план, который мог бы повлиять на результат.
Что такое перебор с возвратами?
Перебор планов задачи можно представить как обход дерева перебора. Для задачи поиска обход дерева можно прекратить, как только найдена ветвь, представляющая допустимый план задачи. Для задач перечисления и оптимизации перебор следует продолжать до получения всех допустимых планов.
Что такое дерево перебора? Как выглядит на этом дереве план задачи?
Это такое дерево, у которого вершины – набор переменных, из которых состоит план, а длина ветви – это план задачи.
Почему перебор не является практичным методом решения комбинаторных задач?
Потому что при решении задач методом перебора может случиться ситуация, названная комбинаторным взрывом - явление, когда комбинаторная задача для малой размерности решается запросто, но при увеличении размерности быстро становится практически неразрешимой (время работы растет экспоненциально при увеличении размерности задачи). Поэтому полный перебор планов является весьма нежелательным способом решения комбинаторных задач, своего рода крайним средством при отсутствии более практичных алгоритмов.