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

Материал из testwiki
Перейти к навигации Перейти к поиску

Шаблон:Проверить факты Алгоритм Данцига — алгоритм для нахождения кратчайших путей ко всем вершинам планарного направленного графа. Назван в честь американского математика Джорджа Данцига. Алгоритм близок к алгоритму Флойда, отличается от него только другим порядком исполнения одних и тех же операций.

Алгоритм

Шаг 1

Пронумеровать вершины исходного графа целыми числами от 1 до N. Сформировать матрицу D0 (размерностью N×N), каждый элемент i, j которой dij0 определяет длину кратчайшей дуги ведущей из вершины i в вершину j. В отсутствие такой дуги положить dij0=.

Шаг 2

Здесь через Dm обозначается матрица размерностью m×m с элементами dijm,m=1,2,...,N. Последовательно определить элементы матрицы Dm из элементов матрицы Dm1 для m принимающих значения 1,2,...N:

dmjm=mini=1,2,...m1(dmi0+dijm1)(j=1,2,...,m1)
dimm=minj=1,2,...m1(dijm1+djm0)(i=1,2,...,m1)
dijm=min(dimm+dmjm,dijm1)(i,j=1,2,...,m1)

Кроме того, для всех i и m положить diim=0.

См. также

Примечания

Шаблон:Примечания

Литература

Ссылки

Шаблон:Rq