【发布时间】:2019-02-10 12:33:22
【问题描述】:
我在机器 1 中有一个 pyomo 模型,在机器 2 中有 CPLEX 求解器。我在机器 1 中将 pyomo 模型 (ConcreteModel) 转换为具有函数 model.write("problem.lp") 的 problem.lp 文件。然后我将此文件传输到机器 2 并从 CPLEX 求解器获取 solution.sol 文件。但是解决方案文件中的变量名称与模型的变量名称不同。
这导致解决方案分析出现问题。
有没有办法将解决方案文件中的变量名称转换或映射到模型的名称?
谢谢。
编辑1:我认为归结为在编写模型时找到符号图。符号映射 ID 由 model.write("problem.lp") 返回(参见 here)。现在的问题是我有符号映射 ID。如何获取符号映射文件并使用它来解码solution.sol 文件中的变量?
【问题讨论】:
-
我怀疑
problem.lp文件中的名称已经与 pyomo 模型中的名称不同。那是对的吗?而且,我希望solution.sol文件中的名称与problem.lp文件中的名称相匹配。如果您查看 pyomo source code,有一个process_soln_file方法看起来就像您正在寻找的那样。我不是 pyomo 专家,我不知道您是否可以在常规求解之外以某种方式利用此功能。 -
@rkersh,是的,你是对的,
problem.lp文件中的名称与solution.sol文件中的名称相似,但与 pyomo 模型本身中的变量名称不同。我会看看你所指的功能。谢谢!
标签: python optimization cplex pyomo