我有一些使用旧系统完成的工作。如果我将它们更改为新系统,我将获得该工作的双重好处。一些工作对(i,j)具有依赖性。改变工作但不改变其依赖对的成本xij。作业1无法在新系统下运行。什么是理想的工作岗位改变到新系统(当然不包括工作1)以最大化利益。
这是用我自己的话来改写的算法问题。它应该被简化为某种形式的最大流量或循环。由于成本取决于其他工作被更改为新系统(我似乎无法将静态值与最大流程图设置相关联并且有一个可行的解决方案),因此我在提出方法方面遇到了极大的麻烦。我已经考虑了一段时间了,我仍然在努力找到一个体面的方法。任何关于如何考虑攻击这个问题的建议都将不胜感激!
答案 0 :(得分:1)
让我们分配 b 1 =-∞。
在简单缩减之后,您所描述的正是最大阻塞问题,例如在"The Pseudoflow Algorithm: A New Algorithm for the Maximum-Flow Problem", Hochbaum 2008中定义的:
给定有向图G =(V,A),所有i∈V的节点权重为正或负 w i ,非负弧度权重 c ij 所有(i,j)∈A。 [...] 找到节点S⊆V的子集 这样
是最大的。
他们继续在最大阻塞问题和最小切割问题之间建立联系。为此,定义 V'=V∪ { s,t }和A'=A∪{(s,i)| w i > 0 } ∪ {(j,t)| w j < 0 }。然后他们定义电弧容量 c si = w i 如果 w i > 0 和 c jt = -w j 如果 w j < 0 的。然后我们
对于S⊆V,{s}∪S是G st =(V',A')中最小切割的源集合,当且仅当(S,V \ S)是图G中的最大阻塞切割。
使用最大流算法,利用max-flow min-cut theorem可以轻松解决后一个问题。实际上,您可以使用作业1作为源,因为它可以保证成为源集的一部分(在旧计算机上运行的作业)。