Теория графов

Теория графов

Основные понятия

Теория графов — раздел дискретной математики, изучающий свойства графов. Граф — это математическая абстракция, представляющая собой множество вершин (узлов) и множество рёбер, соединяющих пары вершин.

Определение графа

Формально граф \(G\) определяется как пара множеств \(G = (V, E)\), где:
- \(V\) — непустое множество вершин (узлов)
- \(E\) — множество рёбер, каждое из которых соединяет две вершины из \(V\)

Виды графов

  1. Неориентированный граф — граф, в котором рёбра не имеют направления
  2. Ориентированный граф (орграф) — граф, в котором рёбра имеют направление (называются дугами)
  3. Взвешенный граф — граф, рёбрам которого присвоены числовые значения (веса)
  4. Полный граф — граф, в котором каждая вершина соединена с каждой другой вершиной
  5. Двудольный граф — граф, вершины которого можно разделить на две группы так, что рёбра соединяют только вершины из разных групп

Представление графов

Матрица смежности

Матрица смежности графа \(G\) с \(n\) вершинами — это квадратная матрица \(A\) размера \(n \times n\), где элемент \(A_{ij}\) равен:
- 1, если существует ребро из вершины \(i\) в вершину \(j\)
- 0, если такого ребра нет

Для неориентированного графа матрица смежности симметрична относительно главной диагонали.

Список смежности

Список смежности — это массив списков, где для каждой вершины \(i\) хранится список всех вершин \(j\), с которыми она соединена рёбрами.

Основные характеристики графов

Степень вершины

Степень вершины \(v\) (обозначается \(\deg(v)\)) — это количество рёбер, инцидентных данной вершине. В ориентированном графе различают входящую степень \(\deg^-(v)\) и исходящую степень \(\deg^+(v)\).

Лемма о рукопожатиях: Сумма степеней всех вершин графа равна удвоенному числу рёбер: \(\sum_{v \in V} \deg(v) = 2|E|\).

Путь и цикл

Путь — последовательность вершин, в которой каждая вершина соединена ребром со следующей.

Цикл — путь, начинающийся и заканчивающийся в одной и той же вершине.

Простой путь — путь без повторяющихся вершин.

Простой цикл — цикл без повторяющихся вершин (кроме первой и последней).

Связность

Связный граф — граф, в котором существует путь между любыми двумя вершинами.

Компонента связности — максимальный связный подграф.

Алгоритмы на графах

Поиск в ширину (BFS)

Алгоритм поиска в ширину исследует все вершины на текущем уровне удаленности от начальной вершины, прежде чем перейти к вершинам на следующем уровне.

Применение: поиск кратчайшего пути в невзвешенном графе, проверка двудольности графа.

Сложность: \(O(|V| + |E|)\), где \(|V|\) — число вершин, \(|E|\) — число рёбер.

Поиск в глубину (DFS)

Алгоритм поиска в глубину исследует как можно дальше вдоль каждой ветви, прежде чем возвращаться назад.

Применение: топологическая сортировка, поиск компонент сильной связности, проверка на наличие циклов.

Сложность: \(O(|V| + |E|)\).

Алгоритм Дейкстры

Алгоритм нахождения кратчайших путей от одной вершины до всех остальных во взвешенном графе с неотрицательными весами рёбер.

Сложность: \(O(|E| \log |V|)\) с использованием приоритетной очереди.

Алгоритм Флойда-Уоршелла

Алгоритм нахождения кратчайших путей между всеми парами вершин во взвешенном графе.

Сложность: \(O(|V|^3)\).

Минимальное остовное дерево

Остовное дерево — подграф, являющийся деревом и содержащий все вершины исходного графа.

Минимальное остовное дерево (MST) — остовное дерево с минимальной суммой весов рёбер.

Алгоритм Прима: строит MST, начиная с одной вершины и добавляя рёбра минимального веса.

Алгоритм Крускала: строит MST, сортируя все рёбра по весу и добавляя их в порядке возрастания, если они не образуют цикл.

Специальные типы графов

Деревья

Дерево — связный ациклический граф. Свойства:
- Число рёбер равно числу вершин минус 1: \(|E| = |V| - 1\)
- Между любыми двумя вершинами существует ровно один простой путь

Эйлеров путь и цикл

Эйлеров путь — путь, проходящий через каждое ребро графа ровно один раз.

Эйлеров цикл — эйлеров путь, начинающийся и заканчивающийся в одной вершине.

Граф имеет эйлеров цикл тогда и только тогда, когда он связен и степень каждой вершины чётна.

Гамильтонов путь и цикл

Гамильтонов путь — путь, проходящий через каждую вершину графа ровно один раз.

Гамильтонов цикл — гамильтонов путь, замкнутый в цикл.

В отличие от эйлеровых путей, не существует простого критерия для определения наличия гамильтонова пути или цикла в графе.

Практические применения

Теория графов находит применение во многих областях:
- Компьютерные сети и маршрутизация
- Планирование проектов (метод критического пути)
- Социальные сети и анализ связей
- Химические структуры молекул
- Транспортные системы и логистика
- Искусственный интеллект и машинное обучение

Text copied
Done
Error
×