Задача минимальной стоимости потока - Minimum-cost flow problem

В проблема минимальных затрат (MCFP) является оптимизация и проблема решения найти самый дешевый способ отправки определенного количества потока через проточная сеть. Типичное применение этой проблемы включает поиск наилучшего маршрута доставки от завода до склада, где дорожная сеть связана с определенной пропускной способностью и стоимостью. Проблема потока с минимальными затратами является одной из самых фундаментальных среди всех проблем потока и циркуляции, потому что большинство других таких проблем можно представить как проблему потока с минимальными затратами, а также то, что ее можно эффективно решить с помощью сетевой симплексный алгоритм.

Определение

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

Определение проблемы - минимизировать Общая стоимость потока по всем краям:

с ограничениями

Ограничения мощности:
Косая симметрия:
Сохранение потока:
Требуемый расход:

Отношение к другим проблемам

Вариант этой проблемы - найти максимальный поток, но с наименьшими затратами среди решений с максимальным потоком. Это можно было бы назвать проблемой минимальной стоимости и максимального потока, и она полезна для поиска максимума минимальной стоимости. совпадения.

В некоторых решениях найти максимальный поток с минимальной стоимостью очень просто. Если нет, можно найти максимальный поток, выполнив бинарный поиск на .

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

Следующие задачи являются частными случаями задачи о потоках с минимальными затратами (мы, в свою очередь, даем краткие наброски каждого применимого сокращения):[1]

  • Задача кратчайшего пути (единственный источник). Требовать, чтобы возможное решение проблемы потока с минимальной стоимостью отправляло одну единицу потока из указанного источника. в назначенную раковину . Дайте всем ребрам бесконечную емкость.
  • Задача максимального расхода. Пусть все узлы имеют нулевую потребность, и пусть стоимость, связанная с прохождением любого ребра, равна нулю. Теперь представьте новое преимущество из текущей раковины к текущему источнику . Предположите, что удельная стоимость отправки потока через границу равно , и разрешить бесконечная емкость. (Это сокращение также упоминается в Проблема циркуляции ).
  • Проблема с присвоением. Предположим, что каждое дробное множество в двудольном имеет вершин, а двудольность обозначим . Дайте каждому поставлять и дать каждому требовать . Каждое ребро должно иметь единицу мощности.

Решения

Проблема минимальной стоимости потока может быть решена с помощью линейное программирование, поскольку мы оптимизируем линейную функцию, и все ограничения линейны.

Кроме того, существует множество комбинаторных алгоритмов, подробный обзор см. [1]. Некоторые из них являются обобщениями алгоритмы максимального потока, другие используют совершенно другие подходы.

Хорошо известные фундаментальные алгоритмы (у них много вариаций):

Заявление

Двудольное соответствие минимального веса

Сведение минимального веса к задаче максимального потока минимальной стоимости

Учитывая двудольный граф грамм = (АB, E) цель состоит в том, чтобы найти максимальное соответствие мощности в грамм это имеет минимальную стоимость. Позволять ш: Eр - весовая функция на краях E. Задача двудольного сопоставления с минимальным весом или задача о назначении - найти идеальное сопоставление ME чей общий вес сведен к минимуму. Идея состоит в том, чтобы свести эту проблему к проблеме сетевого потока.

Позволять ГРАММ' = (V ′ = АB, E ′ = E). Назначьте емкость всех ребер в E ′ в 1. Добавить исходную вершину s и соедините его со всеми вершинами в A ′ и добавляем вершину стока т и соединим все вершины внутри группы B ′ в эту вершину. Вместимость всех новых ребер равна 1, а их стоимость равна 0. Доказано, что существует совершенное двудольное паросочетание минимального веса в грамм тогда и только тогда, когда в ГРАММ'. [7][мертвая ссылка ]

Смотрите также

Рекомендации

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

внешняя ссылка