2

我必须使用 CPLEX Java API 解决以下问题:

我需要编写一个条件,该条件将返回至少一组整数变量(比如说 x[i],i=1,2,...,n),但只考虑正数。

换句话说:

最小{x[i] | x[i]>0}

我知道 CPLEX 具有最小功能,但问题是如何通过上述条件。

4

2 回答 2

2

创建单个连续变量。添加此新变量必须 <= 所有整数变量的约束。然后最大化连续变量。

于 2013-06-18T10:44:55.227 回答
1

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

一种(昂贵的)方法是引入额外的二进制变量,每个整数变量一个,并编写大 M 约束:

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

SUM(i,z[i]) = 1
于 2014-07-13T17:03:58.600 回答