Как устроена Дейкстра
Она берёт вершину с наименьшим рекордом и объявляет его окончательным: короче до неё уже не будет. Потом раздаёт улучшения соседям и переходит к следующей ближайшей.
Рассуждение держится на том, что все веса положительные — любой обходной путь только прибавляет к сумме.
Где она ломается
Появилось хоть одно отрицательное ребро — и в закрытую вершину можно вернуться дешевле. Но она закрыта, и Дейкстра туда не вернётся.
Дейкстра закрывает вершину навсегда — в этом её слабое место.
Форд–Беллман не закрывает ничего. Улучшение может прийти хоть на сотом проходе, и он его примет. Флойд тоже спокойно переживает отрицательные веса.
Что при этом не меняется
Программа из третьей тетради остаётся ровно той же, ни одной новой строки. Отрицательные веса Форду–Беллману просто не мешают.
Кратчайшего пути не существует лишь в одном случае: если по кругу можно пройти и стать дешевле. Но круг — это цикл, а в нашем графе циклов нет по условию, так что проверять нечего.