使用*整数线性规划中的最小值/最大值*(Using min/max *within* an Inte

2019-06-24 21:27发布

我试图建立一个线性规划,其目标函数添加额外的重量到max出决策变量乘以各自的系数。

考虑到这一点,有没有使用方式minmax线性规划的目标函数中的运营商?

例:

Minimize
    (c1 * x1) + (c2 * x2) + (c3 * x3) + (c4 * max(c1*x1, c2*x2, c3*x3)) 
subject to
    #some arbitrary integer constraints:
    x1 >= ...
    x1 + 2*x2 <= ... 
    x3 >= ...
    x1 + x3 == ...

需要注意的是(c4 * max(c1*x1, c2*x2, c3*x3))是“额外的重量”一词,我很担心。 我们让c4表示“额外的重量”系数。 另外请注意, x1x2x3是在这个特殊的例子整数 。

我觉得上面的可能是什么线性规划的优惠范围之外。 不过,也许有办法破解/重新格式化为一个有效的线性规划呢?

如果这个问题完全是出于线性规划的范围,也许有人可以推荐的优化模式更适合于这种类型的问题? (凡是允许我以避免手动列举和检查所有可能的解决方案将是有益的。)

Answer 1:

添加在一个辅助变量,比如X4,有约束:

x4 >= c1*x1
x4 >= c2*x2
x4 >= c3*x3  
Objective += c4*x4


文章来源: Using min/max *within* an Integer Linear Program