gpt4 book ai didi

c++ - 如何使用 IloCplex::readSolution() 并在查询 cplex 类实例后获取 var。值(value)观和其他值(value)观?

转载 作者:行者123 更新时间:2023-11-28 05:51:48 25 4
gpt4 key购买 nike

我需要读取之前存储在 .sol 文件中的现有解决方案,然后在调用“解决”之后使用 IloCplex 的实例。我需要写这样的东西:

iloNumVar var(0.0,1.0,ILOBOOL,"var_name");
...
cplex.readSolution("incumbent.sol");
cplex.getObjValue();
cplex.getValue(var);

作为 cplex.get* 的任何调用都会抛出异常。我可以做些什么来实现我的目标?

提前致谢。

最佳答案

“CPLEX 读取 SOL 文件作为高级开始。SOL 文件包含基础状态(如果可用)和解值。基础状态可用于使用单纯形优化器的高级开始;解值可用于交叉“从障碍解决方案或作为 MIP 从混合整数解决方案开始。混合整数解决方案可能来自传统的 MIP 优化或来自解决方案池的成员。”从技术上讲,您需要在调用 cplex.get* 方法之前使用 cplex.solve() 求解 LP。否则,如果读取解决方案并调用 cplex.get* 方法而不调用 cplex.solve(),Cplex 将抛出 CPLEX 错误 1217:不存在解决方案。

所以 IloCplex::readSolutionIloCplex::writeSolution 方法的最佳用途是解决模型,编写解决方案,然后根据需要修改模型,读取解决方案,然后调用 cplex.solve() 然后调用 cplex.get*

此外,我建议阅读最佳值如下:

IloNumVarArray vars(env); // plus your bounds and  type
...
IloNumArray vals(env);
cplex.getValues(vals, vars);

关于c++ - 如何使用 IloCplex::readSolution() 并在查询 cplex 类实例后获取 var。值(value)观和其他值(value)观?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35091923/

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