Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ODM_GUZhVA_Lektsii_33_33_33.doc
Скачиваний:
43
Добавлен:
18.04.2019
Размер:
2.58 Mб
Скачать

Алгоритм Данцига

Вершины исходного графа перенумеруем целыми числами от 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.

Алгоритм Данцига

  1. Сформировать матрицу размером , элемент которой определяет длину кратчайшей дуги, ведущей из вершины i в вершину j (если такой дуги нет, то полагаем ).

  2. Последовательно определить элементы матрицы из элементов матрицы для согласно формулам:

(1)

(2)

(3)

Пример: применим алгоритм Данцига для поиска кратчайших путей между всеми парами

вершин.

Для нахождения матриц воспользуемся формулами:

Элементы матрицы D2

Соответствующие пути

Элементы матрицы D3

Соответствующие пути

Элементы матрицы D4

Соответствующие пути

Получили матрицу D4 размером 4×4, которая отображает кратчайшие пути между всеми парами вершин.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]