Вариация алгоритмов Беллмана-Форда?

У нас есть Направленный граф с 100 вершинами. v1 -> v2 -> ... v100 и веса всех ребер равны 1. Мы хотим использовать Bellman-ford для нахождения всех кратчайших путей от v1 до других вершин. Этот алгоритм на каждом этапе проверяет все ребра в произвольном порядке. если на каждом шаге кратчайшее расстояние v1 до всех остальных вершин не изменяется, этот алгоритм останавливается. количество шагов связано с проверкой порядка ребер. какой минимум и максимум шагов в этой задаче?

Решение: 2 и 100.

Как это решение будет достигнуто?

1 ответ

Решение 2, если края похожи

v1->v2
v1->v3
...

В этом случае первая итерация найдет расстояние от источника до каждого ребра, а вторая итерация не изменит вес и, следовательно, алгоритм остановится.

Решение 100, если

v1->v2->v3->...->v100 

.ie все находятся на прямой линии, чем нам нужно 99 итераций, чтобы обновить расстояние до 100-й вершины, и последняя итерация не изменит расстояние.

Другие вопросы по тегам