Поток минимальной стоимости. Предположим, что задана сеть с пропускными способностями дуг cij. Пусть также для каждой дуги (i; j) заданы число sij, интерпретируемое как затраты (например, затраты на перевозку единицы груза из вершины i в вершину j). Задача поиска потока минимальной стоимости заключается в нахождении для заданной величины (р суммарного потока ее распределения по дугам, минимизирующего сумму затрат.
Частным случаем задачи о потоке минимальной стоимости является транспортная задача, в которой имеется двудольный граф (двудольным называется граф, множество вершин которого может быть разбито на два непересекающихся подмножества, причем ребра (дуги) графа соединяют вершины только из разных подмножеств), представленный на рисунке 4: вершины сети разбиты на две группы - m поставщиков и n потребителей.
Известно, что граф является двудольным тогда и только тогда, когда он не содержит циклов нечетной длины, или когда в нем все простые циклы имеют четную длину {теорема Кенига).
|
|
Для поставщиков заданы имеющиеся у них количества единиц
товара (груза и т.д.) a i , для потребителей - требуемые им
количества единиц товара bi, . Также известны затраты sij перевозки единицы товара от i -го поставщика j -му потребителю.
Пусть задача является замкнутой, то есть - суммарное предложение равно суммарному спросу (вводя фиктивного поставщика или фиктивного потребителя любую незамкнутую задачу можно свести к замкнутой). Требуется определить потоки товаров от потребителей к поставщикам, минимизирующие суммарные затраты.
Поставщики Потребители
s11
. s1j. b1
..
ai sij bj
. sin.
am..
. smj.
bn
smn
рис.4 Транспортная задача
Формально транспортную задачу можно записать в виде:
Добавляя к двудольному графу вход «0» и выход «z» и соединяя вход и выход с остальными вершинами дугами с потоком
x0i=ai, ,xjz=bj, , получаем задачу о потоке минимальной стоимости.