我尝试解决关于最大流问题的一个问题。我有一个源点和两个汇点。我需要在这个网络中找到最大的流量。这部分是通用的最大流问题。然而,在特殊版本的最大流问题中,这两个目标必须获得相同数量的流量。
有没有人能帮我应该怎么做呢?
我尝试解决关于最大流问题的一个问题。我有一个源点和两个汇点。我需要在这个网络中找到最大的流量。这部分是通用的最大流问题。然而,在特殊版本的最大流问题中,这两个目标必须获得相同数量的流量。
有没有人能帮我应该怎么做呢?
s
成为源点,t1
和t2
成为两个汇点。您可以使用以下算法:
t1
和t2
。现在你已经得到了具有最大excess(t1) + excess(t2)
的解,但它可能不平衡。excess(t1) == excess(t2)
,则完成。否则,不失一般性地假设excess(t1) > excess(t2)
t1
和汇点t2
运行另一轮最大流算法。限制从t1
出发的流量为c = floor((excess(t1) - excess(t2)) / 2)
,例如通过引入一个超级源点S
连接到带有给定容量c
的t1
。现在,excess(t2)
即为您可以发送到两个汇点的最大流。excess(t1) - excess(t2)
剩余单位的流返回到源点。O(log W * f)
,其中W
是解决方案值,f
是最大流复杂度。