Построение деревьев кратчайших путей

ДО 4 БАЛЛОВ ЗА КОНСПЕКТ

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

Если в графе р вершин, требуется отыскать Построение деревьев кратчайших путей - student2.ru кратчайших путей.

Произвольно перенумеруем вершины графа числами от 1 до р.

Обозначим через Построение деревьев кратчайших путей - student2.ru длину пути от вершины i до вершины j, кратчайшего из всех путей от i до j, промежуточные вершины которых имеют номера, не превосходящие k.

Числа Построение деревьев кратчайших путей - student2.ru находятся сразу - это длины путей без промежуточных вершин.

Построение деревьев кратчайших путей - student2.ru

Числа Построение деревьев кратчайших путей - student2.ru – это длины кратчайших путей.

Опишем переход от чисел Построение деревьев кратчайших путей - student2.ru к числам Построение деревьев кратчайших путей - student2.ru (рис. 8).

Разрешение вершине с номером Построение деревьев кратчайших путей - student2.ru быть промежуточной добавляет к известным путям от вершины i до вершины j еще один путь, проходящий через вершину с номером Построение деревьев кратчайших путей - student2.ru . Он состоит из двух частей (рис. 8): пути от

Построение деревьев кратчайших путей - student2.ru вершины i до вершины Построение деревьев кратчайших путей - student2.ru длины Построение деревьев кратчайших путей - student2.ru и пути от вершины Построение деревьев кратчайших путей - student2.ru до вершины j длины Построение деревьев кратчайших путей - student2.ru . Тогда

Построение деревьев кратчайших путей - student2.ru . (4)

Если в графе р вершин, то требуется р раз вычислять Построение деревьев кратчайших путей - student2.ru величин Построение деревьев кратчайших путей - student2.ru ( Построение деревьев кратчайших путей - student2.ru , Построение деревьев кратчайших путей - student2.ru ; Построение деревьев кратчайших путей - student2.ru ). При этом удобно использовать матрицы D0, D1,…, Dp размера Построение деревьев кратчайших путей - student2.ru . В матрице Dk стоят числа Построение деревьев кратчайших путей - student2.ru , Построение деревьев кратчайших путей - student2.ru , Построение деревьев кратчайших путей - student2.ru .

Количество вычислений можно сократить. При переходе от матрицы Dk к матрице Dk+1 не нужно пересчитывать строку и столбец с номером Построение деревьев кратчайших путей - student2.ru , они переносятся из матриц Dk. В самом деле

Построение деревьев кратчайших путей - student2.ru

Подобным образом

Построение деревьев кратчайших путей - student2.ru

Попросту говоря, если вершина с номером Построение деревьев кратчайших путей - student2.ru - промежуточная вершина некоторого пути, она не первая и не последняя вершина этого пути, поэтому длины путей, которые начинаются (заканчиваются) в вершине Построение деревьев кратчайших путей - student2.ru не меняются, если вершине Построение деревьев кратчайших путей - student2.ru разрешено быть промежуточной.

Пример. Определим длины кратчайших путей между всеми парами вершин графа, изображенного на рис. 9.

Перейдем от матрицы D0 к матрице D1. Первую строку и первый столбец матрицы D1 переносим из матрицы D0.

Построение деревьев кратчайших путей - student2.ru
-3
-1
-1

Построение деревьев кратчайших путей - student2.ru

Кроме того, Построение деревьев кратчайших путей - student2.ru . Это означает отсутствие пути из первой вершины в четвертую, что, в свою очередь, означает невозможность найти новые пути в четвертую вершину через первую вершину. Четвертый столбец матрицы D1 переносится из матрицы D0 .

В матрице D0 первом столбце и четвертой строке также стоит бесконечность, из четвертой вершины в вершину 1 пути нет, невозможно найти новые пути, выходящие из четвертой вершины с промежуточной вершиной 1. Строка 4 матрицы D1 переписывается из матрицы D0.

Осталось рассчитать элементы Построение деревьев кратчайших путей - student2.ru , Построение деревьев кратчайших путей - student2.ru , Построение деревьев кратчайших путей - student2.ru , Построение деревьев кратчайших путей - student2.ru , Построение деревьев кратчайших путей - student2.ru , Построение деревьев кратчайших путей - student2.ru .

Построение деревьев кратчайших путей - student2.ru ;

Построение деревьев кратчайших путей - student2.ru ;

Построение деревьев кратчайших путей - student2.ru ;

Построение деревьев кратчайших путей - student2.ru ; Построение деревьев кратчайших путей - student2.ru ;

Построение деревьев кратчайших путей - student2.ru .

Определим элементы матрицы D2. Вторую строку и второй столбец матрицы D2 переносим из матрицы D1.

       
 
Построение деревьев кратчайших путей - student2.ru
-3
-1
-1
   
Построение деревьев кратчайших путей - student2.ru
-3
-1
-1

Находим длины Построение деревьев кратчайших путей - student2.ru , Построение деревьев кратчайших путей - student2.ru , Построение деревьев кратчайших путей - student2.ru , Построение деревьев кратчайших путей - student2.ru , Построение деревьев кратчайших путей - student2.ru , Построение деревьев кратчайших путей - student2.ru , Построение деревьев кратчайших путей - student2.ru , Построение деревьев кратчайших путей - student2.ru , Построение деревьев кратчайших путей - student2.ru , Построение деревьев кратчайших путей - student2.ru , Построение деревьев кратчайших путей - student2.ru , Построение деревьев кратчайших путей - student2.ru .

Построение деревьев кратчайших путей - student2.ru ;

Построение деревьев кратчайших путей - student2.ru ;

Построение деревьев кратчайших путей - student2.ru ;

Построение деревьев кратчайших путей - student2.ru ; Построение деревьев кратчайших путей - student2.ru ;

Построение деревьев кратчайших путей - student2.ru ; Построение деревьев кратчайших путей - student2.ru ;

Построение деревьев кратчайших путей - student2.ru ; Построение деревьев кратчайших путей - student2.ru ;

Построение деревьев кратчайших путей - student2.ru ; Построение деревьев кратчайших путей - student2.ru ; Построение деревьев кратчайших путей - student2.ru .

Матрицы D3, D4, D5 строятся аналогично. Приведем их без дальнейших пояснений (стр. 274).

Построение деревьев кратчайших путей.

В общем случае строятся p деревьев кратчайших путей. Нам нужно построить 5 деревьев.

Построим эти деревья, зная длины кратчайших путей (они стоят в матрице D5) и ориентируясь по диаграмме на рис. 9.

Деревья показаны на рис. 10.

Построение деревьев кратчайших путей - student2.ru

Замечание. Если в графе отсутствуют контуры отрицательной длины, то в каждой строке и каждом столбце матрицы Dp по крайней мере одна длина сохраняется такой же, какой она была в матрице D0 (длина кратчайшего пути из одной дуги). В нашем случае имеем:

Построение деревьев кратчайших путей - student2.ru Построение деревьев кратчайших путей - student2.ru Построение деревьев кратчайших путей - student2.ru Построение деревьев кратчайших путей - student2.ru Построение деревьев кратчайших путей - student2.ru

Построение деревьев кратчайших путей - student2.ru Построение деревьев кратчайших путей - student2.ru Построение деревьев кратчайших путей - student2.ru Построение деревьев кратчайших путей - student2.ru

Эти числа показаны в матрице Построение деревьев кратчайших путей - student2.ru жирным шрифтом и подчеркнуты. Только из соответствующих дуг и могут состоять деревья кратчайших путей, каждый подпуть в которых, в частности, путь из одной дуги, - кратчайший.

Если указанное условие не выполняется, в графе имеются контуры отрицательной длины, и задача о кратчайшем пути не имеет решений.

Построение деревьев кратчайших путей - student2.ru

Наши рекомендации