Описание процесса поиска кратчайших путей от одного узла до всех остальных.
1) Начиная поиск , приписываем каждому узлу длину дуги , т.е. временные метки узлов. Среди всех временных меток выбираем минимальную и превращаем ее в постоянную. Таким образом, становится помеченной постоянно (постоянная метка.
2) Чтобы найти , не нужно искать все пути из двух дуг, достаточно рассмотреть те из них, у которых первая дуга есть . В качестве временных меток приписываем узлам длины путей из одной дуги.
3) Далее сравниваем (длину одной дуги) с (длиной пути из двух дуг) и минимальное из этих двух значений приписать как временную метку вершине .
4) Минимум среди всех временных меток есть .
Постоянная метка указывает истинное кратчайшее расстояние от до . Временная метка узла указывает либо длину дуги , либо длину пути из в постоянный узел , дополненного дугой .
Как только узел получает постоянную метку , проверяем для каждого узла , соседнего с узлом и имеющего временную метку, верно ли, что меньше, чем текущая временная метка . Если верно, заменим эту временную метку значением . Если нет, оставим временную метку без изменения.
Чтобы найти , достаточно найти минимальную временную метку всех соседей узлов и превратить эту метку в постоянную.
Теперь можно формально описать алгоритм и применить его к численному примеру. Будем применять для обозначения временного кратчайшего расстояния и для обозначения истинного кратчайшего расстояния.