Алгоритм отмены
Версия от 22:20, 25 декабря 2016; 78.37.177.81 (обсуждение)
Алгоритм отмены цикла минимального среднего веса
Приведенный алгоритм принадлежит к классу сильно полиномиальных алгоритмов.
Определение: |
Сильно полиномиальными в контексте данной задачи называются алгоритмы, чья сложность полиномиально зависит от | — числа вершин и — числа ребер графа.
Описание алгоритма
Рассмотрим некоторый цикл
. Обозначим его стоимость за , а его длину (число ребер, входящих в цикл) за .
Определение: |
Средним весом цикла называется отношение его стоимости к его длине |
Сам алгоритм
Рассмотрим некоторый поток
. Находим цикл , обладающий наименьшим средним весом. Если , то — поток минимальной стоимости и алгоритм завершается. Иначе, отменим цикл : , где — остаточная пропускная способность цикла . Вернемся к началу алгоритма.Время работы алгоритма
, при этом времени тратится на поиск цикла минимального среднего веса.
Алгоритм поиска цикла минимального среднего веса
наивный способ
Устроим двоичный поиск. установим нижнюю и верхнюю границы
и , вычислим середину и отнимем величину от всех ребер. Если теперь в нашем графе есть отрицательный цикл, значит существует цикл с меньшим средним весом, чем . Тогда сдвигаем правую границу на , иначе — левую. Такой алгоритм будет работать за , где — точность выбора величины среднего веса цикла.