Поток минимальной стоимости

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая 109.120.46.146 (обсуждение) в 08:42, 12 ноября 2020 (→‎Ссылки). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску

Задача о потоке минимальной стоимости состоит в нахождении самого дешёвого способа передачи определённого количества потока через транспортную сеть.

Определения

Дана транспортная сеть с источником и стоком , где рёбра имеют пропускную способность , поток и цену . Цена пересылки потока . Необходимо переслать единиц потока.

Суть задачи — найти поток f(u, v), минимизирующий его общую стоимость:

Накладываются следующие условия:

Ограничение пропускной способности: . Поток не может превысить пропускную способность.
Антисимметричность: . Поток из в должен быть противоположным потоку из в .
Сохранение потока: .
Необходимый поток:

Отношение к другим задачам

Другой вариант этой задачи — найти максимальный поток имеющий минимальную цену среди максимальных.

Более общая проблема — циркуляция потока минимальной стоимости, которая может быть использована для решения данной задачи. Ставим нижнюю границу для всех рёбер равную нулю и проводим дополнительное ребро из стока в источник с пропускной способностью и нижней границей .

Решения

  • Задача о потоке минимальной стоимости может быть решена с помощью линейного программирования.
  • Найти любой поток данной величины, после чего избавиться от всех циклов отрицательной стоимости в остаточном графе. Чтобы избавиться от цикла, надо пустить по нему максимально возможный поток. Циклы ищутся алгоритмом Беллмана - Форда.
  • Использовать модификацию алгоритма Форда — Фалкерсона, в которой на каждом шаге выбирается увеличивающий путь минимальной цены. Для выбора пути можно воспользоваться алгоритмом Беллмана-Форда.
  • Улучшение предыдущего алгоритма: используя потенциалы, можно свести задачу к задаче без отрицательных рёбер, после чего вместо алгоритма Беллмана-Форда воспользоваться алгоритмом Дейкстры. Алгоритм Беллмана-Форда придётся применить лишь на самом первом шаге.

Ссылки

См. также

Литература

  • Кормен, Т., Лейзерсон, Ч., Ривест, Р., Штайн, К. Алгоритмы: построение и анализ = Introduction to Algorithms / Под ред. И. В. Красикова. — 2-е изд. — М.: Вильямс, 2005. — 1296 с. — ISBN 5-8459-0857-4.