我说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")
文件中的变量?
答案 0 :(得分:0)
如“编辑1”中给出的那样,在将模型写入problem.lp
时返回符号映射。
如this code的行号27-29所示,可以获得模型中变量名称的元组及其参考变量。
然后,可以使用xml之类的包在python中解析CPLEX生成的XML文件(solution.sol
)。现在我们有了地图以及值。我们只需要比较参考变量并将其值存储到变量中,变量的名称与模型中的名称相同。