Алгоритм Флойда-Варшалла делает следующее:
Он просматривает каждый узел (k
), а затем просматривает каждую k
-терацию для каждого i, j
, если он может иметь более короткий путь, сначала перейдя от i
до k
, а затем из k
до j
.
Так это выглядит:
"Мой на данный момент самый короткий путь от i
до j
имеет длину L0
, мой на данный момент самый короткий путь от i
до k
имеет длину L1
, мой на данный момент самый короткий путь от k
до j
длины L2
.
Что если я объединю кратчайшие на данный момент пути i to k
и k to j
с новым путем? Этот новый путь i to k to j
короче, чем мой самый короткий в настоящее время путь i to j
? Если это так, он накапливает длины L1
и L2
для вычисления длины нового кратчайшего пути. "
Это означает, что k
является потенциальной точкой остановки на пути от i
до j
.