【发布时间】:2019-07-15 02:50:30
【问题描述】:
考虑经典的网络流问题,其中约束是一个顶点的流出量等于流入它的流入量的总和。考虑有一个更具体的约束,可以在边缘之间拆分流。
我有两个问题:
如何使用决策变量来识别节点 j 正在从多条边接收项目?
如何创建另一个方程来确定在汇节点中连接来自不同边缘的 x 个项目的成本(每个项目 2 个单位时间)?
【问题讨论】:
标签: linear-programming mixed-integer-programming
考虑经典的网络流问题,其中约束是一个顶点的流出量等于流入它的流入量的总和。考虑有一个更具体的约束,可以在边缘之间拆分流。
我有两个问题:
如何使用决策变量来识别节点 j 正在从多条边接收项目?
如何创建另一个方程来确定在汇节点中连接来自不同边缘的 x 个项目的成本(每个项目 2 个单位时间)?
【问题讨论】:
标签: linear-programming mixed-integer-programming
这是一个棘手的建模问题。让我们分部分来。
考虑有一个更具体的约束,可以在边缘之间分割流
我在这里假设你有一个经典的流约束建模为一个实变量集y_ij。因此,可以在两个或多个弧之间拆分流。
如何使用决策变量来识别节点 j 正在从多个边接收项目?
您需要创建一个额外的二进制变量 z_ij 来表示您的流程。您还必须创建以下约束:
接下来,您将需要另一个额外的整数变量集,比如说 p_i 和一个额外的约束
然后,p_i 将在节点j 中存储用于发送流的进入弧的数量。由于您将尝试最小化加入弧的成本(我认为),因此您需要使用 。
如何创建另一个方程来确定在汇节点中连接来自不同边缘的 x 个项目的成本(每个项目 2 单位时间)?
为此,您可以使用 p_i 的值并乘以加入流的预定义成本。
【讨论】: