让s是你的源点,并t1和t2两个水槽.
您可以使用以下算法:
使用带有两个水槽的常规最大流量,例如通过无限容量的边缘连接t1和t2超级水槽.您现在拥有最大的解决方案excess(t1) + excess(t2),但它可能是不平衡的.
如果excess(t1) == excess(t2),你完成了.否则,wlog让excess(t1) > excess(t2)
运行另一轮最大流与源t1和宿t2步骤1的残余网络中限制流量从传出t1到c = floor((excess(t1) - excess(t2)) / 2)通过引入超源,例如S连接到t1经由与所述给定容量的边缘c.现在,excess(t2)是您可以发送到两个接收器的最大流量.
如果您需要重建每条边的流量值,请执行另一轮max-flow将excess(t1) - excess(t2)剩余的流量单位传输回源.
复杂性是max-flow算法的复杂性.
如果你已经知道如何解决最大流与下限的容量,也可以二进制搜索解决方案,从而在复杂O(log W * f)哪里W是解决方案的价值和f是最大流动的复杂性.