我在机器 1 中有一个 pyomo 模型,在机器 2 中有 CPLEX 求解器。我转换 pyomo 模型(ConcreteModel
) 变成problem.lp
带有函数的文件model.write("problem.lp")
在机器 1 中。然后我将此文件传输到机器 2 并得到solution.sol
来自 CPLEX 求解器的文件。但是解决方案文件中的变量名称与模型的变量名称不同。
这导致解决方案的分析出现问题。
有什么方法可以将解决方案文件中的变量名称转换或映射到模型的名称吗?
Thanks.
编辑1:我认为归结为在编写模型时查找符号映射。符号地图 id 由以下命令返回model.write("problem.lp")
(see here https://github.com/Pyomo/PyomoGallery/blob/master/asl_io/write.py)。现在的问题是我有符号地图 id。如何获取符号映射文件并使用它来解码中的变量solution.sol
file?
正如编辑 1 中给出的,在将模型写入时返回符号映射problem.lp
。
如第 27-29 行所示这段代码 https://github.com/Pyomo/PyomoGallery/blob/master/asl_io/write.py,可以获得模型中的变量名及其参考变量的元组。
然后,CPLEX 生成的 XML 文件 (solution.sol
) 可以使用像 xml 这样的包在 python 中进行解析。现在我们有了地图和值。我们只需比较参考变量并将其值存储到模型中名称相同的变量中即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)