CPLEX删除约束

时间:2018-07-13 03:18:43

标签: cplex

我正在调用cplex.addEq(1,x)(其中x是IloIntVar)向模型cplex添加1 == x。

我的简单问题是:如何在以后删除它?

我已经尝试过cplex.delete(x),cplex.remove(x),cplex.delete(e),cplex.remove(e),其中e = cplex.addEq(1,x)。它不起作用。

使用Java。

谢谢

1 个答案:

答案 0 :(得分:0)

我会使用删除。 让我举一个小例子:

IloCplex myCplex = new IloCplex();
IloNumVar x = myCplex.numVar(0.0, 10);
myCplex.addMinimize(x);
IloRange myConstraint = myCplex.addEq(x,1);
myCplex.add(myConstraint);
if (myCplex.solve()) 
{
  System.out.println("constraint x == 1 is active");
  System.out.println("x = " + myCplex.getValue(x));
}
myCplex.delete(myConstraint);
if (myCplex.solve()) 
{
  System.out.println("constraint x == 1 is deleted");
  System.out.println("x = " + myCplex.getValue(x));
}

给予

  constraint x == 1 is active
  x = 1.0

  constraint x == 1 is deleted
  x = 0.0