Задача минимальной стоимости потока - Minimum-cost flow problem
В проблема минимальных затрат (MCFP) является оптимизация и проблема решения найти самый дешевый способ отправки определенного количества потока через проточная сеть. Типичное применение этой проблемы включает поиск наилучшего маршрута доставки от завода до склада, где дорожная сеть связана с определенной пропускной способностью и стоимостью. Проблема потока с минимальными затратами является одной из самых фундаментальных среди всех проблем потока и циркуляции, потому что большинство других таких проблем можно представить как проблему потока с минимальными затратами, а также то, что ее можно эффективно решить с помощью сетевой симплексный алгоритм.
Определение
Поточная сеть - это ориентированный граф с исходной вершиной и вершина стока , где каждое ребро имеет емкость , поток и стоимость , с большинством алгоритмов потока с минимальной стоимостью, поддерживающими ребра с отрицательной стоимостью. Стоимость отправки этого потока по ребру является . Проблема требует количества потока быть отправленным из источника тонуть .
Определение проблемы - минимизировать Общая стоимость потока по всем краям:
с ограничениями
Ограничения мощности: Косая симметрия: Сохранение потока: Требуемый расход:
Отношение к другим проблемам
Вариант этой проблемы - найти максимальный поток, но с наименьшими затратами среди решений с максимальным потоком. Это можно было бы назвать проблемой минимальной стоимости и максимального потока, и она полезна для поиска максимума минимальной стоимости. совпадения.
В некоторых решениях найти максимальный поток с минимальной стоимостью очень просто. Если нет, можно найти максимальный поток, выполнив бинарный поиск на .
Связанная проблема - это проблема минимальной стоимости обращения, который можно использовать для решения потока с минимальными затратами. Это достигается установкой нижней границы на всех краях на ноль, а затем созданием дополнительного края у раковины. к источнику , с емкостью и нижняя граница , заставляя полный поток от к также быть .
Следующие задачи являются частными случаями задачи о потоках с минимальными затратами (мы, в свою очередь, даем краткие наброски каждого применимого сокращения):[1]
- Задача кратчайшего пути (единственный источник). Требовать, чтобы возможное решение проблемы потока с минимальной стоимостью отправляло одну единицу потока из указанного источника. в назначенную раковину . Дайте всем ребрам бесконечную емкость.
- Задача максимального расхода. Пусть все узлы имеют нулевую потребность, и пусть стоимость, связанная с прохождением любого ребра, равна нулю. Теперь представьте новое преимущество из текущей раковины к текущему источнику . Предположите, что удельная стоимость отправки потока через границу равно , и разрешить бесконечная емкость. (Это сокращение также упоминается в Проблема циркуляции ).
- Проблема с присвоением. Предположим, что каждое дробное множество в двудольном имеет вершин, а двудольность обозначим . Дайте каждому поставлять и дать каждому требовать . Каждое ребро должно иметь единицу мощности.
Решения
Проблема минимальной стоимости потока может быть решена с помощью линейное программирование, поскольку мы оптимизируем линейную функцию, и все ограничения линейны.
Кроме того, существует множество комбинаторных алгоритмов, подробный обзор см. [1]. Некоторые из них являются обобщениями алгоритмы максимального потока, другие используют совершенно другие подходы.
Хорошо известные фундаментальные алгоритмы (у них много вариаций):
- Отмена цикла: общий первичный метод.[2]
- Отмена минимального среднего цикла: простой сильно полиномиальный алгоритм.[3]
- Последовательный кратчайший путь и масштабирование емкости: двойные методы, которые можно рассматривать как обобщение Алгоритм Форда – Фулкерсона.[4]
- Масштабирование затрат: первично-дуальный подход, который можно рассматривать как обобщение алгоритм push-relabel.[5]
- Сетевой симплексный алгоритм: специализированная версия линейное программирование симплексный метод.[6]
- Нестандартный алгоритм к Д. Р. Фулкерсон
Заявление
Двудольное соответствие минимального веса
Учитывая двудольный граф грамм = (А ∪ B, E) цель состоит в том, чтобы найти максимальное соответствие мощности в грамм это имеет минимальную стоимость. Позволять ш: E → р - весовая функция на краях E. Задача двудольного сопоставления с минимальным весом или задача о назначении - найти идеальное сопоставление M ⊆ E чей общий вес сведен к минимуму. Идея состоит в том, чтобы свести эту проблему к проблеме сетевого потока.
Позволять ГРАММ' = (V ′ = А ∪ B, E ′ = E). Назначьте емкость всех ребер в E ′ в 1. Добавить исходную вершину s и соедините его со всеми вершинами в A ′ и добавляем вершину стока т и соединим все вершины внутри группы B ′ в эту вершину. Вместимость всех новых ребер равна 1, а их стоимость равна 0. Доказано, что существует совершенное двудольное паросочетание минимального веса в грамм тогда и только тогда, когда в ГРАММ'. [7][мертвая ссылка ]
Смотрите также
Рекомендации
- ^ Ахуджа, Равиндра К .; Magnanti, Thomas L .; Орлин, Джеймс Б. (1993). Сетевые потоки. Теория, алгоритмы и приложения. Прентис Холл.
- ^ Равиндра К. Ахуджа; Томас Л. Маньянти & Джеймс Б. Орлин (1993). Сетевые потоки: теория, алгоритмы и приложения. Prentice-Hall, Inc. ISBN 978-0-13-617549-0.
- ^ Мортон Кляйн (1967). «Первичный метод потоков минимальных затрат с приложениями к задачам назначения и транспортировки». Наука управления. 14 (3): 205–220. CiteSeerX 10.1.1.228.7696. Дои:10.1287 / mnsc.14.3.205.
- ^ Эндрю В. Гольдберг & Роберт Э. Тарджан (1989). «Нахождение минимальных тиражей путем отмены отрицательных циклов». Журнал ACM. 36 (4): 873–886. Дои:10.1145/76359.76368.
- ^ Джек Эдмондс & Ричард М. Карп (1972). «Теоретические улучшения алгоритмической эффективности для задач сетевого потока». Журнал ACM. 19 (2): 248–264. Дои:10.1145/321694.321699.
- ^ Эндрю В. Гольдберг & Роберт Э. Тарджан (1990). «Нахождение минимальных тиражей методом последовательного приближения». Математика. Опер. Res. 15 (3): 430–466. Дои:10.1287 / moor.15.3.430.
- ^ Джеймс Б. Орлин (1997). «Полиномиальный простой сетевой симплекс-алгоритм для потоков с минимальной стоимостью». Математическое программирование. 78 (2): 109–129. Дои:10.1007 / bf02614365. HDL:1721.1/2584.