首页 文章

CPLEX删除约束

提问于
浏览
0

我正在调用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工作 .

谢谢

1 回答

  • 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
    

相关问题