
- •Виды графов
- •Изоморфизм
- •Матричное задание графа
- •Свойства матрицы смежности
- •Операции над графами
- •Достижимость и связность
- •Матрицы достижимости и контрдостижимости
- •Нахождение сильных компонент
- •Конденсация графа
- •Базы и антибазы
- •Построение компонент связности в неориентированном графе
- •Построение компонент связности в ориентированном графе
- •Система независимых циклов
- •Дерево. Остов граф
- •Процесс восстановления дерева по набору
- •Алгоритм построения произвольного остова
- •Определение минимального остова
- •Алгоритм построения системы независимых циклов графа
- •Определение кратчайшего пути на графе методом Дейкстры
- •Модификация Форда
- •Алгоритмы поиска всех кратчайших путей
- •Алгоритм Флойда
- •Алгоритм Флойда
- •Алгоритм Данцига
- •Алгоритм Данцига
- •Раскраска
- •Метод построения функции Гранди на графе
- •Свойства хроматического числа
- •Гамильтоновы пути, контуры и задача Коммивояжера
- •Метод Роберта и Флореса (перебор-метод для орграфов)
- •Применение метода ветвей и границ к решению задачи Коммивояжера.
- •Потоковые алгоритмы
- •Алгоритм поиска увеличивающего пути
- •Алгоритм поиска максимального потока
- •Алгоритм Форда и Фалкерсона
- •Модификация алгоритма поиска максимального потока при нескольких источниках и стоках
- •Алгоритм поиска потока минимальной стоимости
- •Алгоритм поиска потока минимальной стоимости
- •Алгоритмы построения покрывающих деревьев
- •Алгоритм построения покрывающего дерева славик?!! последняя :-(
Алгоритм Данцига
Вершины исходного графа перенумеруем целыми числами от 1 до n и обозначим через длину кратчайшего пути из вершины i в вершину j, в котором допускается использование в качестве промежуточных m первых вершин графа.
Матрица
,
состоящая из элементов
при
каждом
имеет размерность не
,
а
.
Требуется определить матрицу
,
-ый
элемент которой определяет длину
кратчайшего пути из вершины i
в вершину j.
В этом алгоритме матрица
определяется из матрицы
,
из
,
из
.
Каждая новая вычисляемая матрица содержит на 1 строку и 1 столбец больше, чем ее предшественница .
Элементы матрицы
,
не входящие в последнюю строку и в
последний столбец, число которых
(элементов), равное
,
определяется также как и в методе Флойда.
Элементы последней строки и последнего
столбца матрицы
вычисляются с учетом следующих
соображений: кратчайший путь из i
в m, в котором
допускается использование в качестве
промежуточных только n-первых
вершин графа, должен иметь своей первой
частью кратчайший путь из вершины i
в некоторую вершину j
,
который допускает использование в
качестве промежуточных только n
- первых вершин графа, а второй частью
– кратчайшую дугу, ведущую из вершины
j в вершину m.
Аналогично, кратчайший путь из
вершины m в вершину i
, в котором допускается использование
в качестве промежуточных только m-первых
вершин графа, должен иметь своей первой
частью - кратчайшую дугу, ведущую из
вершины m в некоторую
вершину j
,
а второй частью – кратчайший путь
из вершины j в вершину
i, который допускает
использование в качестве промежуточных
только
- первых вершин графа (следует рассматривать
только такие вершины j,
для которых имеется хотя бы одна дуга,
ведущая из вершины m
в вершину j).
Все величины
должны полагаться равными 0.
Алгоритм Данцига
Сформировать матрицу размером , элемент которой определяет длину кратчайшей дуги, ведущей из вершины i в вершину j (если такой дуги нет, то полагаем
).
Последовательно определить элементы матрицы из элементов матрицы
для
согласно формулам:
(1)
(2)
(3)
Пример: применим алгоритм Данцига для поиска кратчайших путей между всеми парами
вершин.
Для нахождения матриц воспользуемся формулами:
Элементы матрицы D2 |
Соответствующие пути |
|
|
Элементы матрицы D3 |
Соответствующие пути |
|
|
Элементы матрицы D4 |
Соответствующие пути |
|
|
Получили матрицу D4 размером 4×4, которая отображает кратчайшие пути между всеми парами вершин.