Проблема кровообращения
Задача циркуляции и ее варианты представляют собой обобщение задач сетевых потоков с добавленным ограничением нижней границы реберных потоков, а также с сохранением потока , требуемым для источника и стока (т. е. нет специальных узлов). В вариантах задачи через сеть проходит несколько товаров, и этот поток имеет определенную стоимость.
Определение
[ редактировать ]Данная сеть потоков с:
- , нижняя граница потока из узла узел ,
- , верхняя граница потока из узла узел ,
- , стоимость единицы потока на
и ограничения:
- ,
- (поток не может появляться или исчезать в узлах).
Нахождение назначения потока, удовлетворяющего ограничениям, дает решение данной задачи циркуляции.
В варианте задачи с минимальной стоимостью минимизируйте
Многотоварный оборот
[ редактировать ]В задаче многотоварного обращения вам также необходимо отслеживать поток отдельных товаров:
Товарный поток от к . Общий поток.
Существует также нижняя граница каждого товарного потока.
Ограничение сохранения должно соблюдаться индивидуально для товаров:
Решение
[ редактировать ]Для задачи циркуляции было разработано множество полиномиальных алгоритмов (например, алгоритм Эдмондса-Карпа , 1972; Тарьян, 1987-1988). Тардос нашел первый сильно полиномиальный алгоритм. [ 1 ]
В случае нескольких товаров проблема является NP-полной для целочисленных потоков. [ 2 ] Для дробных потоков она разрешима за полиномиальное время , так как можно сформулировать задачу в виде линейной программы .
Связанные проблемы
[ редактировать ]Ниже приведены некоторые проблемы и способы их решения с помощью общей установки циркуляции, приведенной выше.
- Задача об обращении нескольких товаров с минимальными затратами. Использование всех ограничений, приведенных выше.
- Задача обращения с минимальными издержками. Использование одного товара.
- Многотоварный оборот – решение без оптимизации затрат.
- Простое обращение. Просто используйте один товар без каких-либо затрат.
- Многотоварный поток - Если обозначает требование для товара от к , создать преимущество с для всех товаров . Позволять для всех остальных ребер.
- Задача о многотоварном потоке с минимальной стоимостью. То же, что описано выше, но с минимизацией затрат.
- Задача о потоке минимальных затрат . Как указано выше, с 1 товаром.
- Задача о максимальном потоке . Установите все затраты равными 0 и добавьте ребро из стока. к источнику с , ∞ и .
- Задача о минимальной стоимости и максимальном потоке . Сначала найдите максимальную величину потока. . Затем решите с помощью и .
- Кратчайший путь из одного источника - Let и для всех ребер графа и добавьте ребро с и .
- Кратчайший путь для всех пар . Пусть все мощности неограничены, и найдите поток, равный 1 для товары, по одному на каждую пару узлов.
Ссылки
[ редактировать ]- ^ Ева Тардос. «Сильно полиномиальный алгоритм циркуляции минимальной стоимости». Комбинаторика . 5 : 247–255. дои : 10.1007/BF02579369 .
- ^ С. Эвен, А. Итай и А. Шамир (1976). «О сложности задач расписания и многотоварных потоков» . SIAM Journal по вычислительной технике . 5 (4). СИАМ: 691–703. дои : 10.1137/0205048 . Архивировано из оригинала 12 января 2013 г.