Какой алгоритм мне следует использовать, чтобы найти минимальный поток на орграфе, где есть нижние границы, но не верхние границы потока? Например, этот простой пример:
В литературе это проблема с минимальными затратами. Однако в моем случае стоимость такая же, как и ненулевая нижняя граница потока, требуемого на каждом ребре, поэтому я сформулировал вопрос, как указано выше. В литературе возникает вопрос: каков наилучший алгоритм для поиска потока с минимальной стоимостью для ориентированного ациклического графа с одним источником / одним стоком, в котором каждое ребро имеет бесконечную пропускную способность, ненулевую нижнюю границу потока и стоимость равна нижней границе расхода.
Из моего исследования кажется, что основной способ, которым люди справляются с любой минимальной стоимостью любого типа сети, - это формулировать проблему как проблема типа LP и решите ее. Однако моя интуиция подсказывает, что не имея верхней границы потока, т. Е. наличие ребер с бесконечными емкостями упрощает задачу, поэтому мне было интересно, есть ли алгоритм, специально нацеленный на этот случай, использующий больше "графических" техник, чем симплексный метод и т. д. al.
Я имею в виду, что если все затраты и нижние границы равны 1, как указано выше ... тогда мы ищем поток, который покрывает все края, подчиняется правилам потока и не проталкивает слишком много потока через любой путь от s до t . Мне просто кажется, что мне не нужен решатель LP, и действительно, в статье в Википедии о потоках минимальной стоимости говорится, что «если ограничение емкости удаляется, проблема сводится к проблеме кратчайшего пути», но я думаю, что они говорят о случай, когда все нижние границы равны нулю.
Также есть ли где-либо код C / C ++ с открытым исходным кодом для минимальных затрат? Погуглив, что доступно, я обнаружил, что могу либо установить проблему как проблему LP и решить ее с помощью решателя LP с открытым исходным кодом, либо я могу использовать LEMON, который предоставляет несколько алгоритмов для потока минимальной стоимости. Насколько я могу судить, библиотека графов ускорений не включает реализации.
Есть ли еще что-нибудь?