CPLEX删除约束

CPLEX删除约束,cplex,Cplex,我调用cplex.addEq(1,x),其中x是一个IloIntVar,将1==x作为约束添加到我的模型cplex中 我的简单问题是:我如何在以后删除它 我已经试过cplex.delete(x),cplex.remove(x),cplex.delete(e),cplex.remove(e),其中e=cplex.addEq(1,x)。它不起作用了 在Java中工作 谢谢我会使用delete。 让我给你举个小例子: IloCplex myCplex = new IloCplex(); IloNumV

我调用cplex.addEq(1,x),其中x是一个IloIntVar,将1==x作为约束添加到我的模型cplex中

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

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

在Java中工作

谢谢

我会使用delete。 让我给你举个小例子:

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));
}
给予


非常感谢您的快速回复!但它仍然不起作用,也许问题出在其他方面。我得到以下警告:“警告:从2次MIP启动中找不到解决方案。”我尝试实现的是一个循环,该循环迭代模型的几个可能更改,计算每个更改的目标值增益,然后选择实际应用于模型的最佳更改。因此,在每次迭代中,我都要删除并添加表示更改的某些约束。由此产生的问题是,模型在第一次迭代中已经无法解决。上面提到的警告可能会给出原因的线索。您好,那么您应该打开一个包含更多信息的新线程。至少我回答了你关于删除约束的问题。
  constraint x == 1 is active
  x = 1.0

  constraint x == 1 is deleted
  x = 0.0