在pyomo中分析解决方案(.sol)文件

时间:2018-09-05 11:17:45

标签: python optimization cplex pyomo

我说pyomo在1号机器中有一个模型,而CPLEX解算器在2号机器中。我将pyomo模型(ConcreteModel)转换为具有功能problem.lp的{​​{1}}文件在计算机1中。然后,我将此文件传输到计算机2中,并从CPLEX求解器中获取model.write("problem.lp")文件。但是解决方案文件中的变量名称与模型的变量名称不同。

这在解决方案的分析中引起了问题。

是否可以将解决方案文件中的变量名称转换或映射为模型名称?

谢谢。

编辑1:我认为归结为在编写模型时可以找到符号图。符号映射ID由solution.sol返回(请参见here)。现在的问题是我有符号映射ID。如何获取符号映射文件并将其用于解码model.write("problem.lp")文件中的变量?

1 个答案:

答案 0 :(得分:0)

如“编辑1”中给出的那样,在将模型写入problem.lp时返回符号映射。 如this code的行号27-29所示,可以获得模型中变量名称的元组及其参考变量。

然后,可以使用xml之类的包在python中解析CPLEX生成的XML文件(solution.sol)。现在我们有了地图以及值。我们只需要比较参考变量并将其值存储到变量中,变量的名称与模型中的名称相同。