Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ODM шпора.docx
Скачиваний:
6
Добавлен:
16.04.2019
Размер:
479.02 Кб
Скачать

Алгоритм Флойда

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

Если в указанном графе вершины не соединены дугами, то полагается , а все

диагональные элементы равны 0.

  1. Для целого m, последовательно принимающего значения 1, 2, ..., n, определить по величинам элементов матрицы величины элементов матрицы , исследуя соотношения (2).

При увеличении каждого элемента матрицы фиксировать соответствующий путь.

Замечание:

Поскольку , то нет необходимости в вычислении диагональных элементов матриц

Кроме того, для всех i = 1, 2, ..., n имеет место соотношения и . Следовательно, при определении матрицы нет необходимости в пересчёте элементов m- ой строки и 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)

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