- •Примерный список дополнительных вопросов по курсу «Структуры и алгоритмы обработки данных» для групп а-80, а-90, а-100, ау-110, уч. Год 2011/2012, весенний семестр
- •Что такое комбинаторные задачи?
- •Что такое план задачи? допустимый план? оптимальный план?
- •Чем различаются комбинаторные задачи с фиксированной и нефиксированной размерностью?
- •Как зависит трудоемкость перебора от числа переменных и от числа возможных значений переменных?
- •Что называется рекордом при решении задач оптимизации?
- •В каких случаях можно сократить перебор с возвратами?
- •Какой смысл имеет операция приведения матрицы в алгоритме решения задачи
- •Как организуется ветвление при решении задачи коммивояжера методом ветвей и границ?
- •Для каких задач может использоваться метод --отсечений?
- •Что такое -отсечение? -отсечение?
- •Как поступают, если в методе --отсечений перебор остается слишком большим?
- •В чем идея метода динамического программирования для решения комбинаторных задач?
- •Что такое оценка сложности задачи?
- •Какая именно сложность рассматривается при изучении теории вычислительной сложности?
- •Что такое массовая задача и индивидуальная задача?
- •Что является аргументом функций, оценивающих сложность алгоритмов и задач?
- •Как формулируется задача о выполнимости кнф?
- •Каков смысл каждого из 6 типов условий, накладываемых на нмт в доказательстве теоремы Кука?
- •Каков смысл этих условий в совокупности?
- •Какую практическую пользу может принести доказательство np-полноты конкретной задачи?
- •Как доказывается np-полнота конкретных задач?
- •Приведите несколько примеров np-полных задач.
- •Почему задача о рюкзаке, являясь np-полной, имеет эффективные алгоритмы решения?
- •Что такое псевдополиномиальный алгоритм?
- •Какую задачу решает алгоритм Дейкстры и в чем идея этого алгоритма?
- •Какова трудоемкость алгоритмов Флойда и Дейкстры?
- •Что такое поток в сети?
- •В чем идея алгоритма поиска аугментальной цепи?
В чем идея алгоритма поиска аугментальной цепи?
Поиск аугментальной цепи осуществляется посредством расставления пометок (-xj, δ) или (+xj, δ). Пометки указывают, вдоль каких дуг может быть увеличен поток и на сколько. Как только найдена одна из таких цепей, поток вдоль нее увеличивается до максимального значения, все пометки в вершинах стираются и вновь полученный поток используется в качестве исходного при новой расстановке меток.
Как определить, что поток является максимальным?
Нельзя построить аугментальную цепь
Как решать задачу о максимальном потоке при нескольких источниках?
Стягиваем в один источник, путем его добавления.
Задача сводится к простой задаче о максимальном потоке путем добавления нового искусственного источника s и стока t с добавлением дуг, ведущих от источника s к каждому истинному источнику, от каждого истинного стока к t.
Как решать задачу о максимальном потоке при ограниченном источнике?
Вводим фиктивный источник, дуга от которого введет к истинному источнику, пропускная способность данной дуги = величине ограничения источника.
Добавить перед ним бесконечный.
Как решать задачу о максимальном потоке при ограниченной пропускной способности вершин?
Если пропускные способности наряду с дугами имеют и узлы сети, то каждую вершину v, имеющую пропускную способность c(v), следует заменить двумя (v’ и v’’), соединенными дугой (v’, v’’) и c(v’, v’’) = c(v).
В этом случае все узлы сети делятся на 3 группы: S - множество источников, T – множество стоков и R - множество промежуточных узлов. Поток может следовать из любого источника в любой сток. В этом случае сеть модифицируется следующим образом:
Добавим новую вершину S* и соединим ее дугами со всеми вершинами из множества S. Вершина S* называется суперисточником. Добавим новую вершину T* и соединим ее дугами со всеми вершинами из множества T. Вершина T* называется суперстоком. Пропускные способности всех новых дуг положим равными ∞.
Очевидно, что поиск максимального потока из вершин множества S в вершины множества T равносилен поиску максимального потока из S* в T*.
Как решаются задачи о максимальном числе непересекающихся путей?
1. Максимальное число путей –нет ребер,пропускная способность 1
2.Выбираем не общие вершины, разделяем их на вход и выход, пропуск способность ед
3. Ищем минимальное количество вершин включающихся в любой путь, любая из них выбир мак путь
Что такое паросочетание?
Паросочетание – это множество ребер, в котором ребро связывает вершины, принадлежащие двум разным компонентам связности.
Паросочетание применимо к неориентированным графам.
Паросочетание в неорграфе - это такое подмножество ребер E’ , что никакие ребра из Е’ не содержат общих вершин.
Что такое двудольный граф?
Двудольным графом называется граф, у которого множество вершин можно разбить на два непересекающихся подмножества так, что ребра соединяют вершины из разных подмножеств.
Что такое чередующаяся цепь? Что можно сказать о числе ребер такой цепи?
Цепь, соединяющая 2 непарные вершины, при этом чередуются ребра не входящие в паросочетание и входящие в паросочетание.
Общее число рёбер нечётное; непарных рёбер на 1 больше, чем парных. Цепь начинается с непарной вер-ны , непарной же и заканчивается.
Как можно увеличить паросочетание, если известна чередующаяся цепь?
Исключаем из паросочетаний парные ребра и заменяем их непарными.
В чем идея алгоритма поиска чередующейся цепи в двудольном графе?
Начинаем перебор непарных и заканчиваем парными, включаем непарные, потом чередуем парные непарные, заканчиваем непарной.
Что такое эйлеров цикл и эйлерова цепь?
Эйлеров цикл – цикл, проходящий по всем рёбрам графа.
Эйлерова цепь - цепь, проходящая по всем рёбрам графа.
Эйлеровым циклом в неор графе называется такой цикл, который включает в себя все рёбра в графе, проходя ровно 1 раз по каждому ребру.
Эйлерова цепь – незамкнутый путь, между 2 вершинами, включающий все рёбра графа.
При каких условиях в графе существует эйлеров цикл или эйлерова цепь?
Необходимо, чтобы все вершины были чётной степени.
В чем идея алгоритма поиска эйлерова пути?
Будем обходить вершины рекурсивно и удалять пройденные рёбра. В ходе такого обхода попадаем в вершину, где хода нет. Записываем эту вершину в цикл и возвращаемся на шаг назад.
Что такое гамильтонов цикл и гамильтонова цепь?
Граф называется гамильтоновым, если он содержит цикл, проходящий по всем вершинам в графе. Аналогично - цепь.
Какова трудоемкость поиска эйлерова цикла и гамильтонова цикла?
О(n,m), O(n+m).
Порядок прохода ребер
Что такое хроматическое число графа?
Хроматическое число графа - минимальное количество цветов, требуемое для раскраски вершин графа, при которой любые вершины, соединенные ребром, раскрашены в разные цвета.
Каковы максимально и минимально возможное значения хроматического числа графа?
γ(G) ≥ n2/(n2−2m)
Каждый планарный граф без петель и кратных ребер является не более чем 5-хроматическим.
Какое максимальное хроматическое число может быть у планарного графа?
4
Назовите какие-либо жадные алгоритмы раскраски графа.
Алгоритм неявного перебора, алгоритм последовательной раскраски.
- длина пути - это количество входящих в него ребер (ребро считается столько раз, сколько оно повторяется);
- простой путь - это путь в котором все вершины (а, следовательно, и все ребра) различны;
- степень вершины - это количество выходящих из нее ребер, то есть количество ее соседей;
- вершина может называться четной или нечетной, в зависимости от четности ее степени;
- связный граф - это граф, в котором между любыми двумя вершинами есть путь;
- компонента связности - это часть графа, которая сама по себе связна, но ее нельзя расширить так, чтобы она осталась связной; между разными компонентами связности ребер нет (!);