如何使用网络流程来解决线性规划问题?

时间:2014-12-20 10:18:26

标签: algorithm linear-programming network-flow

假设我们给出了考试E = {E1,E2,...,Em}和一组I = {I1,I2,...,In}的工具,每个考试Ej需要一个Rj的子集每个考试都有Pj $利润,每个考试费用为Cj $。我们想选择一些检查来最大化(利润总和 - 成本之和)。

我认为我们可以使用LP,使得每次检查都有m变量Xi,Xi = 0或1,我们的目标函数是:对于所有i和j Xi(Pi) - (A)Cj,其中A是xor all习需要Ij

但我无法通过网络流量来解决这个问题。我的问题是如何表示这样一个事实:当我们选择考试并支付其工具时,我们可以将这些工具用于其他考试。

1 个答案:

答案 0 :(得分:3)

将问题建模为二分图:将检查作为顶点放在左侧,将仪器放在右侧。通过无限容量的边缘将检查连接到他们的仪器。现在介绍一个源S和一个接收器T.通过代表其利润的边缘将S连接到检查。通过表示成本的边缘将仪器连接到T.

最大利润是所有Pi-min cut的总和

为什么呢?考虑图中的切边以将T与S分开。对于每次检查,我们需要削减检查本身,“支付”我们错过的利润或其所有工具。

最佳检查集由残余流网络中可从S到达的检查顶点集表示。

相关问题