gpt4 book ai didi

c++ - 我正在寻找一种在从模型中删除并重新添加修改后的对象后操作 iloextractable 对象的方法

转载 作者:行者123 更新时间:2023-11-30 05:34:43 24 4
gpt4 key购买 nike

我有这样的儿子:

IloExtractable extractable(env);
...
extractable = model.add( x + y <= 4);
...
model.remove(extractable);
IloExpr soft_expr(extractable.asConstraint());
IloNumVar v = IloNumVar(env, 0.0, +IloInfinity,ILOFLOAT);
soft_expr += v;
model.add(soft_expr);

我想从模型中移除可提取物修改这个并再次添加到模型修改后的模型。此代码不起作用...最后一条指令引发异常。我能做什么?谢谢。

最佳答案

为此目的最好使用 IloExpIloConstraint,另外不要忘记在更改后提取新模型。例如,

  IloExpr con = x[0] + x[1];
IloConstraint cons = con == 3 ;
model.add( cons );

cplex.solve();

IloNumArray vals(env);
cplex.getValues(vals, x);
cplex.exportModel("./model1.lp"); // to check out
cplex.out() << "Solution status " << cplex.getStatus() << endl;
cplex.out() << "Objective value " << cplex.getObjValue() << endl;
cplex.out() << "Solution is: " << vals << endl;

//--------------------------//

model.remove( cons );
IloNumVar v = IloNumVar(env, 0.0, +IloInfinity,ILOFLOAT);

cons = con + v == 3; // your new constraint
model.add( cons );

cplex.extract(model);
cplex.solve();

cplex.getValues(vals, x);
cplex.exportModel("./model2.lp");
cplex.out() << "Solution status " << cplex.getStatus() << endl;
cplex.out() << "Objective value " << cplex.getObjValue() << endl;
cplex.out() << "Solution is: " << vals << endl;

关于c++ - 我正在寻找一种在从模型中删除并重新添加修改后的对象后操作 iloextractable 对象的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34120203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com