Примеры графов и сфер их использования
Примеры графов и сфер их использования
- Схема метрополитена
- Родословное древо
- Карта подводных оптоволоконных магистралей
- Семантический анализ новостных лент
- Логистика
- Телекоммуникации
- Банковские операции
Графы
Неориентированный граф
Неориентированный граф
- совокупность множества вершин и множества соединяющих рёбер. Имеет неупорядоченные пары.
Пример:
Ориентированный граф
Ориентированный граф
- граф, в котором рёбра имеют определённое направление. Имеет упорядоченные пары.
Пример:
Смешанный граф
Смешанный граф
- граф, в котором рёбра имеют как определённые, так и неопределённые направления. Имеет как упорядоченные, так и неупорядоченные пары.
Пример:
Псевдограф
Псевдограф
- граф, содержащий петли.
Петля:
- Пара одинаковых элементов множества вершин V вида называется петлёй.
- Ребро, концы которого есть одна и та же вершина, называют петлёй.
Пример:
- Петля
Мультиграф
Мультиграф
- граф, содержащий кратные рёбра
Кратные рёбра:
Два и более ребра, соединяющие одни и те же две вершины, называются кратными.Пример:
- Кратное с
- Кратное с
Полный граф
Полный граф
- граф, в котором каждые две различные вершины соединены одним и только одним ребром.
Пример:
Подграф
Подграф
Граф называется подграфом графа (), если и . Это граф, содержащий некое подмножество вершин данного графа и некое подмножество инцидентных им рёбер.
Исходный граф (Пример):
Собственный подграф
Это подграф, где и . (отличен от исходного графа)
Остовный подграф
Это подграф, содержащий все вершины, то есть .
Пример:
Вершинно-порождённый подграф
Неориентированный подграф называется вершинно-порождённым подграфом неориентированного графа , если он получен путём выбора некоторого подмножества вершин и присоединения к ним всех соответствующих рёбер.
Пример:
Рёберно-порождённый подграф
Неориентированный подграф называется рёберно-порождённым подграфом неориентированного графа , если он получен путём выбора некоторого подмножества рёбер с сохранением, естественно, соответствующих вершин.
Дерево
Определения
(Неориентированное) дерево — это связный ациклический граф.
(Ориентированное) дерево — это ацикличный орграф, в котором только одна вершина имеет нулевую степень захода (в неё не ведут дуги), а все остальные вершины имеют степень захода 1 (в них ведёт ровно по одной дуге).
Элементы ориентированного дерева
- Корень — это вершина с нулевой степенью захода.
- Концевые вершины (листья) — это вершины с нулевой степенью исхода (из которых не исходит ни одна дуга).
Свойства
- Любое дерево с вершинами содержит ребро.
- Конечный связный граф является деревом тогда и только тогда, когда (где — число вершин, — число рёбер).
- Граф является деревом тогда и только тогда, когда любые две различные его вершины можно соединить единственной простой цепью.
Пример (Ориентированное дерево):
- Корень: Вершина 1.
- Листья: Вершины 4, 2, 7, 8.
Остовное дерево (Остов)
Определение
Остовное дерево (Остов) — это ациклический связный подграф некоторого связного неориентированного графа, в который входят все его вершины.
Свойства
- Остовное дерево получается из исходного графа удалением максимального числа рёбер, входящих в циклы, без нарушения связности графа.
- Остовное дерево включает в себя все вершин исходного графа и содержит ребро.
Пример:
Граф-решетка. Синим выделены ребра, образующие остов.
Взвешенные графы
Основные понятия
Минимальное остовное (покрывающее) дерево (минимальный остов) — это остовное дерево неориентированного связного взвешенного графа, имеющее минимальный возможный вес (сумма весов входящих в него рёбер).
Максимальное остовное дерево — аналогично, но с максимальным весом.
Задачи
- Минимальный остов: Задача о минимизации общей стоимости строительства дорог.
- Максимальный остов: Задача о максимальной суммарной скорости передачи данных между вычислительными узлами в компьютерной сети.
Алгоритмы построения минимального остова
- Алгоритм Краскала
- Алгоритм Прима
- Алгоритм Борувки
- Алгоритм Дейкстры (Примечание: обычно используется для поиска кратчайших путей, но упомянут в контексте лекции).
Пример (Взвешенный граф):
Разреженный граф
Разреженный граф
Разреженный граф — это граф, в котором число рёбер значительно меньше максимально возможного. Обычно разреженный граф имеет примерно столько же рёбер, сколько вершин, т.е. .
Примеры:
- Транспортные и дорожные сети: Количество дорог (рёбер) ненамного превышает количество перекрёстков (вершин).
- Веб-граф: Интернет-сайты (вершины) и гиперссылки (рёбра), идущие с одних сайтов на другие.
Плотный граф
Плотный граф
Плотный граф — это граф, в котором число рёбер близко к максимально возможному (как у полного графа). Например, в плотном графе каждая пара вершин соединена одним ребром, т.е. .
Примеры:
- Криптография и управление ключами: В системах с симметричным шифрованием каждый участник должен иметь общий секретный ключ с каждым другим участником.
- Обнаружение полных подграфов (клик): В социальных сетях (группы с высокой внутренней сплочённостью: команды, семьи, закрытые сообщества).
Эйлеровы графы
Эйлеров граф
Это граф, содержащий эйлеров цикл.
Полуэйлеров граф
Это граф, содержащий эйлеров путь.
Гамильтоновы графы
Гамильтонов граф
Это граф, содержащий гамильтонов цикл.
Полугамильтонов граф
Это граф, содержащий гамильтонов путь.
Планарные графы
Определения
Планарный граф — граф, который изоморфен плоскому графу.
Плоский граф — граф, изображенный на плоскости так, что его ребра не пересекаются в точках, отличных от вершин графа.
Грань плоского графа — область плоскости, ограниченная ребрами графа и не содержащая внутри себя вершин или ребер.
- Внешняя грань — неограниченная область.
Правильные многогранники
- Тетраэдр — 4 треугольника.
- Куб (гексаэдр) — 6 квадратов.
- Октаэдр — 8 треугольников.
- Додекаэдр — 12 правильных пятиугольников.
- Икосаэдр — 20 равносторонних треугольников.
Изоморфность и укладка Для любого планарного графа существует плоская укладка, в которой все ребра — прямолинейные отрезки.
Смежность, инцидентность, достижимость
Смежность
Смежность
Вершины u и v, соединённые ребром , называют смежными, а также концами ребра {u,v}.
u и v в таком случае связаны отношением непосредственной достижимости.Пример:
- смежная с
- смежная с
- смежная с
- смежная сСписки смежности
Списки, в которых каждой вершине графа сопоставляется список смежных ей вершин.
Пример:
:
:
:
:Матрица смежности
Так называется матрица
для неориентированного графа
для ориентированного графа
Пример:
0 1 1 1 1 0 1 0 1 1 0 1 1 0 1 0
Инцидентность
Инцидентность
Ребро e называют инцидентным вершине v, если она является одним из его концов.
Два ребра, инцидентные одной вершине, так же как и две вершины, инцидентные одному ребру - смежныеПример:
Вершины - смежны
Вершины - не смежны
Ребра и - смежныСписки инцидентности
Списки, в которых каждому ребру графа сопоставляется список инцидентных ему вершин.
Пример:
:
:
:
:
:Матрица инцидентности
Так называется матрица (где — количество вершин, — количество ребер):
Для неориентированного графа:
Для ориентированного графа:
Пример:
1 1 0 1 0 1 0 0 0 1 0 0 1 1 1 0 1 1 0 0
Достижимость
Достижимость
Отношение достижимости
В неориентированном графе Вершина v достижима из вершины u, если существует цепь из u в v.
В ориентированном графе Вершина v ориентированного графа G достижима из вершины u этого же графа, если существует путь , такой, что .
Матрица достижимости
Это квадратная матрица порядка (), каждый элемент которой равен 1, если -я вершина достижима из -й вершины, и равен 0 иначе.
Согласно определению достижимости, элементы .
Пример: Граф из 4 вершин () и 5 дуг.
Матрица для вершин в порядке :
Леммы и алгоритмы
Лемма Эйлера
Лемма Эйлера
Формулировка
Сумма степеней всех вершин графа есть чётное число, равное удвоенному числу рёбер.
Доказательство
Посчитаем количество инцидентных пар , где — ребро и — одна из его концевых вершин, двумя разными способами.
Каждая вершина принадлежит парам, где — степень вершины (количество инцидентных ей рёбер). Следовательно, число инцидентных пар совпадает с суммой всех степеней.
Однако каждое ребро принадлежит двум инцидентным парам, так как имеет две концевые вершины. Поэтому число инцидентных пар равно . Поскольку две данные формулы предназначены для одного и того же множества, их значения одинаковы.
Для ориентированного графа
Сумма степеней всех вершин ориентированного графа есть чётное число, равное удвоенному числу рёбер.
Другая формулировка
В ориентированном графе сумма полустепеней исхода вершин равна сумме полустепеней захода всех вершин и равна числу рёбер.
Пример:
Сумма полустепеней исхода по часовой стрелке, начиная от А:
Сумма полустепеней захода против часовой стрелки, начиная от А:Верна ли лемма Эйлера для мультиграфов?
Да, прибавляя любое кратное ребро, которое связывает 2 вершины, сумма всех степеней увеличивается на 2.
Верна ли лемма Эйлера для псевдографов?
В случае псевдографа вклад каждой петли, инцидентной вершине u, в d(u) равен 2. Тогда лемма Эйлера верна не только жля графов и мультиграфов, но и для псевдографов.
Лемма о рукопожатиях
Лемма о рукопожатиях
Формулировка
В любом графе число вершин чётной степени чётно.
Лемма о цепи
Лемма о цепи
Формулировка
Если есть цепь, соединяющая вершины u,v, то есть простая цепь, соединяющая вершины u,v.
Доказательство
Рассмотрим в графе (u,v) - маршрут наименьшей длины.
Нужно показать, что этот маршрут является простой цепью.
Если в нём имеется повторяющаяся вершина w, то, заменяя часть маршрута от первого вхождения вершины w до её второго вхождения на одну вершину w, получим более короткий (u,v) - маршрут.
Алгоритм Флойда — Уоршелла
Общие сведения
Алгоритм Флойда — Уоршелла (1962) предназначен для нахождения замыкания транзитивности графа (матрицы достижимости).
- Авторы: Роберт Флойд, Стивен Уоршелл.
- Сложность: (для графа из вершин).
Описание алгоритма
Пошаговая инструкция
- Пусть (матрица смежности графа).
- Строим последовательность матриц .
- Для построения матрицы рассматриваем -й столбец матрицы :
- Строки, у которых в -м столбце стоит 0, просто копируем в новую матрицу .
- Строки с номером , у которых в -м столбце стоит 1, объединяем с помощью операции ИЛИ () с -й строкой матрицы . Результат записываем в .
- Итоговая матрица достижимости вычисляется как объединение единичной матрицы (рефлексивность) и полученной матрицы :
Пример выполнения
Исходный граф и матрица
(Примечание: Граф содержит 4 вершины. Вершины пронумерованы как 1, 2, 3, 4).
Шаг 1. Матрица ()
- Рассматриваем 1-й столбец матрицы : .
- Во всех строках в 1-м столбце стоят нули все строки просто копируются.
Шаг 2. Матрица ()
- Рассматриваем 2-й столбец матрицы : .
- Строки 2 и 4 (значение 0): Копируем.
- Строки 1 и 3 (значение 1): Выполняем дизъюнкцию с 2-й строкой.
- Строка 2: .
- Строка 1: .
- Строка 3: . (Матрица не изменилась, так как 2-я строка пустая).
Шаг 3. Матрица ()
- Рассматриваем 3-й столбец матрицы : .
- Строки 2 и 3 (значение 0): Копируем.
- Строки 1 и 4 (значение 1): Выполняем дизъюнкцию с 3-й строкой.
- Строка 3: .
- Строка 1: .
- Строка 4: .
Шаг 4. Матрица () и Итог
- Рассматриваем 4-й столбец матрицы : .
- Строка 2 (значение 0): Копируем.
- Строки 1, 3, 4 (значение 1): Выполняем дизъюнкцию с 4-й строкой.
- Строка 4: .
- Все объединения с этой строкой дадут (так как она уже “полная” для этого примера).
Финальная матрица достижимости: .
Алгоритм Краскала
Описание
- В начале текущее множество рёбер устанавливается пустым.
- Затем, пока это возможно, проводится следующая операция: из всех рёбер, добавление которых к уже имеющемуся множеству не вызовет появление в нём цикла, выбирается ребро минимального веса и добавляется к уже имеющемуся множеству.
- Когда таких рёбер больше нет, алгоритм завершён.
- Подграф данного графа, содержащий все его вершины и найденное множество рёбер, является его остовным деревом минимального веса.
Эффективнее для разреженных графов!
Сложность
- — число вершин
- — число рёбер
Пример работы алгоритмов На рисунке показан взвешенный граф. Зеленым цветом выделены рёбра, входящие в минимальное остовное дерево (сумма весов минимальна).
Алгоритм Прима
Описание
- Сначала берётся произвольная вершина и находится ребро, инцидентное данной вершине и обладающее наименьшим весом.
- Найденное ребро и соединяемые им две вершины образуют дерево. Затем рассматриваются рёбра графа, один конец которых — уже принадлежащая дереву вершина, а другой — нет; из этих рёбер выбирается ребро наименьшего веса.
- Выбираемое на каждом шаге ребро присоединяется к дереву.
- Рост дерева происходит до тех пор, пока не будут исчерпаны все вершины исходного графа.
- Результатом работы алгоритма является минимальное остовное дерево.
Эффективнее для плотых графов!
Сложность
Пример работы алгоритмов На рисунке показан взвешенный граф. Зеленым цветом выделены рёбра, входящие в минимальное остовное дерево (сумма весов минимальна).
Формула Эйлера для планарных графов
Формулировка
Если — связный планарный граф с вершинами и ребрами, то для каждой его укладки на плоскости верно равенство:
- — число вершин
- — число рёбер
- — число граней (включая внешнюю) в этой укладке.
Следствие
Сумма степеней граней равна удвоенному числу рёбер:
- — степень грани (число ребер, ограничивающих грань).
Элементы графа
Маршрут
Маршрут
Описание Обозначение Условие Последовательность вершин и ребер (не обязательно различных) в которой
т.е. любые две вершины соединены ребромПоследовательность вершин (не обязательно различных) любые два последовательных элемента являются смежными вершинами Последовательность ребер (не обязательно различных) если существует последовательность вершин
(не обязательно различных), таких, что ребро инцидентно вершинам иЗамкнутый маршрут
Если , то маршрут называется замкнутым, то есть его концы совпадают.
Пример:
- Вершины и ребра:
- Ребра:
- Маршрут: a b d b c
- Замкнутый маршрут: a b d b c a
Цепь
Цепь
Маршрут, в котором все рёбра различны.
Простая цепь
Маршрут, в котором все вершины и рёбра различны.
Замкнутая цепь
Если , то цепь называется замкнутой, то есть её концы совпадают.
Длина цепи
Для конечной цепи число (число рёбер) называют длиной цепи.
Цепь длины 0 — произвольная вершина графа.Пример:
- Цепь: a b d c b
- Простая цепь: a b c d e
Цикл
Цикл
Замкнутый маршрут, в котором все рёбра различны (замкнутая цепь).
Простой цикл
Замкнутый маршрут, в котором все вершины различны (простая замкнутая цепь).
Пример:
- Цикл: a b f e d b c a
- Простой цикл: a b c a
Ациклический граф
Неориентированный граф, не содержащий циклов.
Пример:
Путь
Путь
Пример:
- Маршрут: 1 2 4 1 2 3
- Путь этого маршрута: 1 2 4 1
Простой путь
Пример:
- Простой путь для маршрута выше: 1 2 3
Контур
Контур
Замкнутый маршрут, в котором все его дуги различны (замкнутый путь).
Пример (Контур, но не простой):
a11 a3 a4 a7 a1 a12 a9Повторяется вершина и .Замкнутый контур (Простой контур)
Замкнутый маршрут, в котором все вершины различны (простой замкнутый путь).
Примеры:
a3 a6 a11a3 a4 a7 a10 a9 c11Бесконтурный граф
Ориентированный граф, не содержащий контуров.
Пример:
[!INFO]- Маршруты, цепи, циклы, пути, контуры, мосты
Маршруты, цепи, циклы, пути, контуры, мосты
Мост
Мост
Ребро графа называется мостом, если его удаление увеличивает число компонент связности графа.
Пример:
- Мостом является ребро .
- При его удалении граф распадается на две компоненты связности: левую () и правую ().
Эйлеров путь и цикл
Эйлеров путь (эйлерова цепь)
Это путь (без возвращения в исходную точку), проходящий по всем рёбрам графа и притом только по одному разу.
Эйлеров цикл (эйлерова линия)
Это эйлеров путь, являющийся циклом, то есть замкнутый путь, проходящий через каждое ребро графа ровно по одному разу.
Связность графа
Неориентированный граф
Неориентированный граф
Две вершины и в графе называются связными, если существует соединяющая их цепь.
Пример:
- Какие вершины связные, а какие нет?
- Связные: , , .
- Не связные: например, 1 и 2, или 6 и 8.
Связный граф
Граф называется связным, если любые две вершины в нем связны. (Существует лишь одна компонента связности).
В противном случае граф называется несвязным.
Компонента связности
Компонентой связности (или просто компонентой) графа называется его максимальный связный подграф. Это связный подграф, не являющийся собственным подграфом никакого другого связного подграфа графа .
Примеры:
- Связный граф: Все вершины соединены.
- Несвязный граф: 2 компоненты связности ( и ).
- Несвязный граф с 3 компонентами: Одна из компонент — изолированная вершина .
Ориентированный граф
Ориентированный граф
Виды связности вершин
- Связные (односторонне связные): Существует путь из в ИЛИ из в .
- Сильно связные: Существует путь из в И из в .
- Слабо связные: Вершины связны в неориентированном графе , полученном отменой ориентации ребер.
Ассоциированный граф
Неориентированный граф называют ассоциированным с ориентированным графом , если его множество вершин совпадает с множеством вершин орграфа, а ребро существует тогда и только тогда, когда между вершинами есть дуга (в любом направлении).
Типы связности орграфа
- Связный (односторонне связный): Любые две вершины связны (достижимость хотя бы в одну сторону).
- Сильно связный: Любые две вершины сильно связны (взаимная достижимость).
- Слабо связный: Ассоциированный с ним неориентированный граф связный.
Примеры:
- (Сильно связный): Можно попасть из любой точки в любую.
- (Связный / Односторонне): Есть пути, но не везде можно вернуться обратно.
- (Слабо связный): Граф “держится вместе” только если убрать стрелки.
Компоненты и бикомпоненты
Компоненты и бикомпоненты ориентированного графа
Определения
Бикомпонента (сильная компонента) — максимальный сильно связный подграф. (Входит в бикомпоненту, если вершины взаимно достижимы).
Компонента связности — максимальный связный (односторонне) подграф.
Компонента слабой связности — максимальный слабо связный подграф.
Пример:
- Граф является слабо связным.
- Бикомпоненты ():
- Компоненты ():
- Свойство: Любая бикомпонента или не пересекается с компонентой, или целиком в неё входит.
Матрица достижимости
Для графа из примера:
Алгоритм поиска бикомпонент
- В бикомпоненту входят взаимно достижимые вершины.
- Для двух вершин и должно выполняться:
- Нужно просмотреть -ю строку и -й столбец матрицы и сформировать множество номеров вершин:
- Различные бикомпоненты не пересекаются.
Алгоритм поиска компонент
- Выписываем для каждой вершины множество , состоящее из вершин, которые достижимы из ИЛИ из которых достижима :
- Для примера:
- Компонента строится как пересечение множеств .
- (содержащая ): .
- (содержащая , отличная от ): . [!DANGER]- Матричные методы анализа графов
Нахождение количества путей
Пусть — матрица смежности орграфа. Если возвести матрицу смежности в квадрат (), то элемент будет равен числу путей длины 2, идущих из в .
Обобщение Если является элементом матрицы , то равно числу путей (не обязательно простых) длины , идущих из в .
Матрица достижимости ()
Матрица достижимости содержит информацию о существовании пути между любыми вершинами. , если вершина достижима из , иначе .
Алгоритм построения Для графа с вершинами матрица достижимости определяется через булеву сумму степеней матрицы смежности:
- — единичная матрица (пути длины 0).
- — информация о путях длины .
- — логическое сложение (дизъюнкция).
Матрица сильной связности ()
Матрица сильной связности содержит информацию обо всех сильно связанных вершинах (вершины и взаимно достижимы). Элемент , если существует путь из в И из в .
Алгоритм построения
- — матрица достижимости.
- — транспонированная матрица достижимости.
- — логическое умножение (конъюнкция), поэлементно.
Пример (Полный цикл вычислений):
Дан граф из 4 вершин. Найдем количество путей, матрицу достижимости и сильной связности.
1. Матрица смежности и её степени:
(Примечание: показывает пути длины 2, например, из 1 в 4 есть путь ).
2. Матрица достижимости :
3. Матрица сильной связности :
- Блок в правом нижнем углу показывает, что вершины 3 и 4 образуют сильную компоненту (взаимно достижимы).
- Вершины 1 и 2 образуют свои отдельные компоненты (на диагонали 1, но связей с другими в нет).
Матричные методы анализа графов
Нахождение количества путей
Пусть — матрица смежности орграфа. Если возвести матрицу смежности в квадрат (), то элемент будет равен числу путей длины 2, идущих из в .
Обобщение Если является элементом матрицы , то равно числу путей (не обязательно простых) длины , идущих из в .
Матрица достижимости ()
Матрица достижимости содержит информацию о существовании пути между любыми вершинами. , если вершина достижима из , иначе .
Алгоритм построения Для графа с вершинами матрица достижимости определяется через булеву сумму степеней матрицы смежности:
- — единичная матрица (пути длины 0).
- — информация о путях длины .
- — логическое сложение (дизъюнкция).
Матрица сильной связности ()
Матрица сильной связности содержит информацию обо всех сильно связанных вершинах (вершины и взаимно достижимы). Элемент , если существует путь из в И из в .
Алгоритм построения
- — матрица достижимости.
- — транспонированная матрица достижимости.
- — логическое умножение (конъюнкция), поэлементно.
Пример (Полный цикл вычислений):
Дан граф из 4 вершин. Найдем количество путей, матрицу достижимости и сильной связности.
1. Матрица смежности и её степени:
(Примечание: показывает пути длины 2, например, из 1 в 4 есть путь ).
2. Матрица достижимости :
3. Матрица сильной связности :
- Блок в правом нижнем углу показывает, что вершины 3 и 4 образуют сильную компоненту (взаимно достижимы).
- Вершины 1 и 2 образуют свои отдельные компоненты (на диагонали 1, но связей с другими в нет).
Эйлеровы пути и циклы
Эйлеров путь и цикл
Эйлеров путь (эйлерова цепь)
Это путь (без возвращения в исходную точку), проходящий по всем рёбрам графа и притом только по одному разу.
Эйлеров цикл (эйлерова линия)
Это эйлеров путь, являющийся циклом, то есть замкнутый путь, проходящий через каждое ребро графа ровно по одному разу.
Эйлеров граф
Это граф, содержащий эйлеров цикл.
Полуэйлеров граф
Это граф, содержащий эйлеров путь.
Необходимое и достаточное условия (Критерии)
Для неориентированного графа
Критерий существования эйлерова цикла
Связный граф, степени всех вершин которого чётные, обладает эйлеровым циклом, т.е. является эйлеровым графом. (Необходимое и достаточное условие).
Критерий существования эйлерова пути
Эйлеров путь в графе существует тогда и только тогда, когда граф связный и содержит не более двух вершин нечётной степени.
- Если таких вершин 0 — существует цикл (частный случай пути).
- Если таких вершин 2 — путь начинается в одной нечетной вершине и заканчивается в другой.
Эйлеров путь в неориентированном графе существует тогда и только тогда, когда граф связный и содержит не более двух вершин нечётной степени.
Для ориентированного графа
Критерий существования эйлерова цикла
Эйлеров цикл в ориентированном графе существует тогда и только тогда, когда граф сильно связан и для каждой вершины графа её входящая степень равна её исходящей степени ().
Ориентированный граф содержит эйлеров путь, не являющийся циклом, тогда и только тогда, когда он слабо связен и существуют две вершины и (начальная и конечная вершины пути соответственно) такие, что их полустепени захода и полустепени исхода связаны равенствами:
а все остальные вершины имеют одинаковые полустепени исхода и захода:
Алгоритм Флёри (1883)
Нахождение эйлерова цикла
- Отправляемся из произвольной вершины.
- Каждое пройденное ребро зачёркиваем и вносим в список рёбер эйлерова цикла.
- Правило моста: Никогда не выбираем ребро, которое в рассматриваемый момент является мостом (т.е. при удалении которого граф, образованный незачеркнутыми рёбрами, распадается на две компоненты связности, имеющие хотя бы по одному ребру), если есть альтернатива.
Задача китайского почтальона (1962)
Постановка задачи (Мэй-Ку Куан)
Это поиск кратчайшего замкнутого пути или цикла, который проходит через каждое ребро (связного) взвешенного неориентированного графа.
Решение
- Если граф имеет эйлеров цикл, тогда этот цикл служит оптимальным решением (вес маршрута равен сумме весов всех рёбер).
- В противном случае задачей оптимизации является поиск наименьшего числа рёбер графа с повторными проходами, так что образующийся мультиграф имеет эйлеров цикл.
Алгоритм решения
- Перечислите все нечётные вершины.
- Перечислите все совершенные паросочетания на этих нечётных вершинах.
- Для каждого паросочетания найдите рёбра, соединяющие соответствующие вершины, с минимальным весом.
- Найдите паросочетание, сумма весов которого минимальна.
- Добавьте к исходному графу рёбра, найденные на Шаге 4 (дублирование ребер).
- Длина оптимального маршрута китайского почтальона равна сумме всех исходных рёбер графа и сумме длин рёбер, добавленных на Шаге 5.
- Постройте эйлеров цикл в полученном мультиграфе.
Практическое применение
- Поиск оптимальных маршрутов в городах: уборка улиц, доставка товаров, туристические маршруты.
- Маршруты обхода зоопарков, выставок и т.д.
Гамильтоновы пути и циклы
Определения
Гамильтонов путь (гамильтонова цепь)
Это простой путь (путь без петель), проходящий через каждую вершину графа ровно один раз.
Гамильтонов цикл
Это цикл, проходящий через все вершины по одному разу (рёбра при этом могут быть пройдены не все).
Условия существования (Неориентированный граф)
Необходимое и достаточное условие
Теорема Бонди-Хватала (1976)
Граф является гамильтоновым тогда и только тогда, когда его замыкание — гамильтонов граф. (Этот результат обобщает утверждения Дирака и Оре).
Замыкание графа Замыкание графа с вершинами строится добавлением в ребра для каждой пары несмежных вершин и , сумма степеней которых не меньше (). Операция повторяется, пока такие пары существуют.
Достаточные условия
(Из выполнения этих условий следует существование цикла, но обратное неверно).
Условие Дирака (1952)
Если каждая вершина соединена рёбрами более чем с половиной других вершин, то в графе есть гамильтонов цикл.
Условие Оре (1960)
Пусть в графе вершин. Если сумма степеней любых двух несмежных вершин не меньше , то в графе есть гамильтонов цикл.
Практическое применение
Задачи
- Организация путешествий.
- Доставка товаров.
- Распределение продуктов в сетях супермаркетов.
Задача коммивояжёра (TSP)
Поиск самого выгодного (кратчайшего, самого дешёвого и т.п.) маршрута, проходящего через указанные города по одному разу с последующим возвратом в исходный город.
Дан граф из 4 вершин. Найдем количество путей, матрицу достижимости и сильной связности.