- •Основы теории графов
- •Введение
- •Глава 1. Способы задания графов. Операции над графами. Метрические характеристики графов. Упорядочивание элементов орграфов
- •1. Способы задания графов. Операции над графами. Метрические характеристики графов
- •Основные понятия и определения
- •1.2. Операции над графами
- •1.3. Маршруты, цепи, циклы
- •. Способы задания графов
- •1.5. Метрические характеристики графа.
- •1.6. Упорядочивание дуг и вершин орграфа
- •1.8. Определение экстремальных путей на графах.
- •1.9. Порядковая функция орграфа без контуров.
- •Вопросы для повторения.
- •Глава 2. Нахождение минимальных и максимальных путей на орграфах
- •1. Нахождение кратчайших путей. Алгоритм Дейкстры
- •2. Нахождение кратчайших путей. Алгоритм Беллмана-Мура
- •Алгоритм нахождения максимального пути
- •4. Особенности алгоритмов теории графов
- •Вопросы для повторения.
- •Задачи для самостоятельного решения.
- •Глава 3. Остовы графов, фундаментальные циклы. Эйлеровы и гамильтоновы графы. Доминирующие множества и клики
- •1. Деревья (основные определения)
- •2. Задача об остове экстремального веса
- •3. Обходы графов. Фундаментальные циклы
- •4. Клики, независимые множества
- •Вопросы для повторения.
- •Глава 4. Планарные графы
- •1. Планарность графов
- •2. Алгоритм укладки графа на плоскости
- •Вопросы для повторения.
- •Глава 5. Потоки в сетях
- •1. Потоки в сетях
- •Теорема Форда-Фалкерсона
- •Случайные графы
- •Заключение
- •Библиографический список
- •Оглавление
- •Основы теории графов
- •394026 Воронеж, Московский просп., 14
Глава 2. Нахождение минимальных и максимальных путей на орграфах
1. Нахождение кратчайших путей. Алгоритм Дейкстры
Пусть G={S,U,Ω} – ориентированный граф со взвешенными дугами. Обозначим s – вершину – начало пути и t – вершину конец пути. Веса дуг должны быть положительными.
Этап 1. Нахождение длины кратчайшего пути.
Шаг 1. Присвоение вершинам начальных меток.
Полагаем и считаем эту метку постоянной (постоянные метки помечаются сверху звёздочкой). Для остальных вершин полагаем d(x) = ∞ и считаем эти метки временными. Пусть обозначение текущей вершины.
Шаг 2. Изменение меток.
Для каждой вершины xi с временной меткой, непосредственно следует за вершиной , меняет её метку в соответствии со следующим правилом:
(1)
Шаг 3. Превращение метки из временной в постоянную.
Из всех вершин с временными метками выбираем вершину с наименьшим значением метки:
(2)
Превращаем эту метку в постоянную и полагаем .
Шаг 4. Проверка на завершение первого этапа.
Если - длина кратчайшего пути от S до t. В противном случае происходит возвращение ко второму шагу.
Этап 2. Построение кратчайшего пути.
Шаг 5. Последовательный поиск дуг кратчайшего пути.
Среди вершин, непосредственно предшествующих вершине с постоянными метками, находим вершину хi, удовлетворяющую соотношению
. (3)
Включаем дугу в искомый путь и полагаем .
Шаг 6. Проверка на завершение второго этапа.
Если , то кратчайший путь найден – его образует последовательность дуг, полученных на пятом шаге и выстроенных в обратном порядке. В противном случае возвращаемся к пятому шагу.
Пример. Задана весовая матрица Ω сети G:
Рис. 34
Найти минимальный путь из вершины х1 в вершину х6 по алгоритму Дейкстры.
Решение. Т.к. в данном графе есть цикл между вершинами х2, х3 и х5, то вершины графа нельзя упорядочить по алгоритму Фалкерсона.
Этап 1.
Шаг 1. Полагаем .
Первая итерация.
Шаг 2. Множество вершин, непосредственно следующих за с временными метками . Пересчитываем временные метки этих вершин.
Шаг 3. Одна из временных меток превращается в постоянную:
Шаг 4. происходит возвращение на второй шаг.
Вторая итерация.
Шаг 2.
Шаг 3.
Шаг 4. , возвращение на 2-ой шаг.
Третья итерация.
Шаг 2.
Шаг 3.
Шаг 4. возвращение на 2-ой шаг.
Четвёртая итерация.
Шаг 2.
Шаг 3.
Шаг 4. возвращение на 2-ой шаг.
Пятая итерация.
Шаг 2.
Шаг 3.
Шаг 4. конец 1-го этапа.
Этап 2.
Первая итерация.
Шаг 5. Составим множество вершин, непосредственно предшествующих с постоянными метками
Проверим для этих двух вершин выполнение равенства (3):
Включаем дугу (х5,х6) в кратчайший путь. .
Шаг 6. , возвращение на 5-ый шаг.
Вторая итерация.
Шаг5. Включаем дугу (х1,х5) в кратчайший путь. .
Шаг 6. , завершение второго этапа.
Итак кратчайший путь от вершины х1 до вершины х6 построен. Его длина (вес) равен 15, сам путь образует следующая последовательность дуг: