Алгоритм Эдмондса-Карпа
Версия от 01:09, 21 декабря 2010; Pavel Chuprikov (обсуждение | вклад) (Новая страница: «{{В разработке}} == Алгоритм == Для заданной транспортной сети <tex>G(V, E, c)</tex> алгоритм Эдмондса…»)
Эта статья находится в разработке!
Алгоритм
Для заданной транспортной сети
алгоритм Эдмондса-Карпа найходит поток максимальной величины из заданной вершины в заданную вершину .Псевдокод
Edmonds_Karp (G, s, t) for (для) каждого ребраdo while существует кратчайший путь из в в остаточной сети do for (для) каждого ребра do
Корректность алгоритма Эдмондса-Карпа
Алгоритм Эдмондса-Карпа является реализацией метода Форда-Фалкерсона. На каждой итерации цикла while поток в графе теореме Форда-Фалкерсона найденный поток максимальный. Оценка быстродействия будет проведена далее.
увеличивается вдоль одного из кратчайших путей в из истока в сток . Этот процесс повторяется до тех пор пока существует кратчайший путь в . Если в не существует кратчайшего пути из в , значит не существует никакого вообще никакого пути в следовательно поЛемма: |
Если в транспортной сети увеличение потока производиться вдоль кратчайших путей в . То для всех вершин длина кратчайшего пути в остаточной сети монотонно возрастает с каждым увеличением потока. |
Доказательство: |
Пусть | существует такое увеличение потока, котрое приводит к уменьшению длины кратчайшего пути.