【问题标题】:How do I reduce the summation of a binary variable Integer Linear Programming如何减少二进制变量整数线性规划的总和
【发布时间】:2019-07-18 23:20:14
【问题描述】:
我正在处理一个优化问题,其中我有一个具有 3 个索引的变量
二进制变量:Viup
整数变量:Xi
我试图施加一个约束,以使执行任务的成本不应超过固定数量(此处为预算),即使该任务由多台机器执行,每个任务的成本也应仅计算一次多次。
我想对 Viup 中的值求和,这样对于 i 的每个值,总和不应超过 1 或可能为 0,这样我就可以形成一个类似的方程
Viup 之和 * Xi
请帮助学习制定 ILP 方程
【问题讨论】:
标签:
optimization
mathematical-optimization
linear-programming
【解决方案1】:
如果我理解正确,您需要知道在所有i 中固定u,p 中的任何一个Viup 是否为1。
如果您正在执行最小化,一种方法是引入二进制指标变量d_i 和新约束
sum_i(V_iup)-B*d_i<=0
其中B 是sum_i(V_iup) 的常数和上限。现在,如果d_i=1,则sum_i(V_iup)>=0,否则,如果d_i=0,则sum_i(V_iup)=0。
您现在可以将预算总和重写为:
d_i*X_i<=Budget