китг-пми / Программа экзамена КиТГ
.pdf
Программа экзамена КиТГ-2025
1.Отношение эквивалентности. Алгоритм построения классов эквивалентности. Алгоритм построения компонент связности графа. Сравнение алгоритмов.
Пример отношения эквивалентности: сравнимость по модулю. a ≡ b mod m
1.a ≡a mod m
2.a ≡b, то b ≡a(mod m)
3.a ≡b и b ≡c, то a ≡c (mod m)
Алгоритм построения классов эквивалентности.
Изначально каждыи/ элемент считается своим собственным классом. Когда в ходе цикла сообщается, что два элемента эквивалентны, мы объединяем их классы так: находим «представителя» (корень) каждого из двух элементов, а затем делаем корень одного ребёнком корня другого, стараясь прикреплять дерево меньшеи/ «высоты» к дереву большеи/ «высоты», чтобы итоговые деревья оставались «плоскими». При многократном объединении один и тот же представитель быстро находится благодаря тому, что при каждом запросе «наи/ ти корень» мы не только поднимаемся по ссылкам вверх, но и перенаправляем все промежуточные узлы сразу к корню.
Алгоритм построения компонент связности графа.
Поиск компонент связности основан на том, что любые две вершины в однои/ компоненте соединены цепочкои/ рёбер. последовательно проходим по списку всех вершин, и для каждои/ ещё не встретившеи/ ся вершины «растем» из неё, посещая всех соседеи/ , затем соседеи/ соседеи/ и так далее,отмечая каждую достигнутую вершину как принадлежащую к текущеи/ компоненте. Тот же процесс можно описать как «заливка»: когда заливка останавливается, мы завершаем одну компоненту и начинаем следующую из оставшихся непомеченных вершин.
2. Определение отношений частичного и линейного порядка. Топологическая сортировка.
Примеры: Частичный порядок - a R b Û a b (a, b принадлежат N) Линейный порядок - a R b Û a ≤ b (a, b принадлежат Z)
3.Свойство транзитивности. Транзитивное замыкание. Сложность алгоритма построения транзитивного замыкания. Построение транзитивного замыкания умножением матриц. Алгоритм Уоршелла.
4.Сильная связность. Структура компонент сильной связности. Алгоритм построения компонент сильной связности по определению. Алгоритм Косарайу. Сравнение сложности алгоритмов.
Алгоритм Косарайю:
1)Пронумеровать вершины графа в процессе обхода в глубину так, чтобы номер корня любого поддерева был больше номеров его вершин (увеличивать счетчик номера при выходе из очередного уровня рекурсии).
2)Инвертируем граф и, начиная с больших номеров вершин, сделаем поиск в глубину. В полученном лесе каждое дерево (его вершины) – компонента сильной связности.
5.Деревья. Необходимое и достаточное условие для графа быть деревом. Теорема Кэли. Код Прюфера.
Связный граф без циклов называется деревом.
Условие: Граф является деревом тогда и только тогда, когда он связный и выполняется: |E| = |V| - 1, где |E| - число ребер, |V| - число вершин.
6.Задание графа матрицей инциденций. Матрица Кирхгофа. Доказательство формулы I*IT=D-A. Подсчет числа остовных деревьев графа.
Матрица киргофа:
7.Алгоритм построения эйлерова пути в графе. Сложность алгоритма. Рекурсивный и нерекурсивный алгоритмы.
Эйлеровым графом называется граф, у которого есть простой цикл через все ребра графа (то есть проходящий по каждому ребру только один раз, причем начинаясь и заканчиваясь в одной вершине). Эйлеров цикл существует все вершины имеют чётную степень.
Эйлеров путь существует ровно две вершины имеют нечётную степень (начало и конец пути), остальные — чётные.
8.Линейные пространства циклов и коциклов (разрезов) графа. Алгоритм Каргера.
Разобъем вершины графа на два непересекающихся множества, тогда множество ребер, соединяющих эти вершины, называется разрезом графа.
Алгоритм Каргера:
ЦИКЛ-ПОКА |V| > 2
ВЫБРАТЬ ЛЮБОЕ РЕБРО (u, v)
СТЯНУТЬ РЕБРО ЧТОБЫ u ~ v ВЫБРОСИТЬ ПЕТЛИ
КЦ ПОСЧИТАТЬ ЧИСЛО РЕБЕР В МУЛЬТИГРАФЕ С 2 ВЕРШИНАМИ
9.Линейные пространства циклов и коциклов (разрезов) графа. Алгоритмы построения базиса циклов графа: через решение системы уравнений и через построение остовных деревьев. Сравнение алгоритмов по трудоемкости.
10.Планарные графы. Критерии планарности графа. Доказательство непланарности K5 и K3,3. Гамма-алгоритм плоской укладки планарного графа.
Планарный граф — граф, который можно изобразить на плоскости без пересечений ребер. Пример: K5 и K3, 3.
Формула: В+Г=Р+2 и 3Г≤2Р, а для двудольного графа еще 4Г≤2Р (в двудольном нет циклов нечетной длины) Критерий планарности: Граф является планарным тогда и только тогда, когда он не приводится к K5 и K3, 3 путем удаления или стягивания ребер.
Гамма-алгоритм:
11.Хроматический многочлен. Рекуррентные формулы для построения хроматических многочленов. Хроматическое число графа. Теорема Зыкова. Хроматический многочлен цикла.
Количество способов правильной x-раскраски графа G называется хроматическим многочленом. Обозначение: P(G,x).
Рекуррентные формулы:
12.Покрытия (вершинное и реберное) и независимые множества (вершинное и реберное). Теорема о связи чисел покрытия и чисел независимости.
Ребро и вершина покрывают друг друга, если они инцидентны.
Множество вершин S называется вершинным покрытием графа, если любое его ребро инцидентно вершине из S. a0(G) – количество вершин в минимальном вершинном покрытии
Множество ребер T называется реберным покрытием графа, если любая его вершина инцидентна ребру из T. a1(G) – количество ребер в минимальном реберном покрытии
Множество вершин S’ называется независимым, если никакие две вершины из S’ не соединены ребром. b0(G) – количество вершин в наибольшем независимом множестве
Множество ребер T’ называется независимым, если никакие два ребра из T’ не имеют общей вершины. b1(G) - количество ребер в наибольшем независимом множестве
Теорема 1: a0(G) + b0(G) = n для любого графа Теорема 2: a1(G) + b1(G) = n
13.Алгоритм построения наибольшего паросочетания в двудольных графах и теорема о связи максимального паросочетания с минимальным вершинным покрытием.
Алгоритм построения максимального паросочетания:
Ввести фиктивное начало S и конец F Ориентировать все ребра от S к F Цикл-пока есть путь из S в F
найти путь из S в F
поменять ориентированные ребра вдоль пути удалить фиктивные ребра этого пути
Кц Ребра, ориентированные справа налево образуют максимальное паросочетание
Теорема: a0(G) = b2(G), где a0(G) – мин. покрывающее вершинное множество, b2(G) – макс. паросочетание.
14.Алгоритм Краскала и теорема о его корректности на основе нахождения циклов (алгоритмом поиска в глубину). Доказать корректность алгоритма с раскраской вершин. Сравнить трудоемкости алгоритмов.
Алгоритм Краскала:
Отсортируем ребра по возрастанию весов
T = пустое множество Цикл-пока не закончились ребра
Если очередное ребро e не образует цикла с ребрами из T то T = T u {e}
КЕ
КЦ
15.Матроиды. Определение. Матричный и графовый матроиды. Теорема Радо-Эдмондса.
Матроидом над множеством M называется набор его подмножеств I, удовлетворяющих:
16.Алгоритм Прима и теорема о его корректности. Определить матроид в рамках решения этой задачи.
17.Нахождение кратчайших длин путей в графе. Алгоритм Форда-Беллмана. Сформулировать алгоритм, инвариант цикла, доказать корректность алгоритма. Алгоритм Форда-Беллмана
с построением дерева кратчайших путей.
Алгоритм Форда-Беллмана:
Цикл по v принадлежащим V
D(v) = A(s, v) (A - матрица весов ребер; A(u, v) - длина ребра)
КЦ
Повторить n-2 раза
Цикл по v принадлежащим V
Цикл по u принадлежащим V (т е по соседям из которых можно попасть в v) D(v) = min(D(v); D(u) + A(u, v))
КЦ
КЦ
Применяется только к графам, у которых нет циклов отрицательной длины.
Алгоритм Форда-Беллмана с построением дерева кратчайших путей.
//V — множество вершин, A(u,v) — вес ребра u→v или +∞, если ребра нет
//s — источник
//1) Инициализация
Для всех v V: D(v) ← +∞ π(v) ← NIL
Конец цикла
