Алгоритм Форда-Беллмана — различия между версиями
(Новая страница: «{{В разработке}} ==Алгоритм== Для заданного взвешенного графа <tex>G = (V, E)</tex> алгоритм находит к…») |
|||
Строка 17: | Строка 17: | ||
'''then''' '''return''' <tex> \mathit false</tex> | '''then''' '''return''' <tex> \mathit false</tex> | ||
'''return''' <tex> \mathit true </tex> | '''return''' <tex> \mathit true </tex> | ||
+ | |||
+ | ==Сложность== | ||
+ | Инициализация занимает <tex> \Theta (V) </tex> времени, каждый из <tex>|V| - 1</tex> проходов требует <tex> \Theta (E) </tex> времени, обход по всем ребрам для проверки наличия отрицательного цикла занимает <tex>O(E)</tex> времени. Итого алгоритм Беллмана-Форда работает за <tex>O(V E)</tex> времени. |
Версия 05:45, 1 декабря 2010
Эта статья находится в разработке!
Алгоритм
Для заданного взвешенного графа
алгоритм находит кратчайшие пути из заданной вершины до всех остальных вершин, в случае когда в графе содержатся отрицательные циклы достижимые из алгоритм сообщает, что кратчайших путей не существует.Псевдокод
Bellman_Ford(G, s) for для каждойdo for to do for для каждого ребра do if then for для каждого ребра do if then return return
Сложность
Инициализация занимает
времени, каждый из проходов требует времени, обход по всем ребрам для проверки наличия отрицательного цикла занимает времени. Итого алгоритм Беллмана-Форда работает за времени.