CPLEX - 让一组变量的最小值在条件(CPLEX - getting minimum of a

2019-10-18 06:57发布

我已经解决使用CPLEX的Java API以下问题:

我需要编写将返回最小的一组整型变量的条件(假设X [i],i = 1,2,...,N),但只考虑正面的。

换一种说法:

X [I]> 0}

我知道CPLEX具有最小功能,但问题是如何通过它提到的条件。

Answer 1:

建立一个单一的连续变量。 添加约束,这一新的变量必须是<=所有的整数变量。 然后,只需最大限度的连续变量。



Answer 2:

TimChippingtonDerrick的答案缺少连续变量的非负性约束。 此外,该方法并不适应OP的原始目标函数。

这样做的一个(昂贵的)方式是引入附加的二进制变量,一个用于每个整数变量和写入大M约束:

x[i] >= y >= x[i] - M(1-z[i])

SUM(i,z[i]) = 1


文章来源: CPLEX - getting minimum of a set of variables over a condition
标签: cplex