我正在使用Java和Cplex建立一个模型,在我的模型中我需要插入一个指标约束。模型中的节点是由一组N节点'N'中的i,j表示的。我的二进制决策变量是X[][],另一个连续变量是Q[]。我需要添加一个约束条件,这样:model.add( Q[ j ] >= Q[ i ] - d[ j ] if X[ i ] [ j ]==1)。这里d[ j ]是节点'j'的常数。我正在寻找一个使用Java API和Cplex来实现这个功能的例子。
你可以使用以下方法添加一个指标约束 ifThen. 例如(这行代码未经测试,但你应该明白了)。
cplex.add(cplex.ifThen(cplex.eq(X[i][j], 1.0), cplex.ge(Q[j], Q[i] - d[j])));
请看 FixNet.java
, FoodManufact.java
和 Diet.java
当你安装CPLEX时包含的例子,以了解更多。