这里我制作IloCplex对象cplex的副本newplex,然后从cplex中删除变量x1。 cplex的目标值发生变化,newcplex的目标值不变。我得到以下输出:
0.5
0.5
0.5
0.0
0.5
但是由于某种原因,当我在代码末尾添加System.out.println(newcplex.getValue(x1))时,我得到了IloCplexUnknownObjectException。为什么呢?
IloCplex cplex=new IloCplex();
IloObjective kosten= cplex.addMinimize();
IloRange nb=cplex.addRange(0, 1);
IloColumn col= cplex.column(nb,1).and(cplex.column(kosten,1));
IloNumVar x1=cplex.numVar(col,0.5, 1);
IloCopyManager cm = new IloCopyManager(cplex);
IloCplex newcplex = new IloCplex();
newcplex.add((IloAddable) nb.makeCopy(cm));
newcplex.add((IloAddable) kosten.makeCopy(cm));
cplex.solve();
newcplex.solve();
System.out.println(cplex.getObjValue());
System.out.println(newcplex.getObjValue());
System.out.println(newcplex.getValue(x1));
cplex.delete(x1);
cplex.solve();
newcplex.solve();
System.out.println(cplex.getObjValue());
System.out.println(newcplex.getObjValue());