python - 将 Pyomo 导出到 .mps 文件时保留变量名称

标签 python pyomo gurobi

所以,我目前正在使用一个 pyomo 模型,该模型具有多个并行求解的实例。问题是,解决它们需要 pyomo 相当长的时间(比如 2 到 3 秒,尽管 gurobi 的解决部分需要大约 0.08 秒)。我发现,通过将 pyomo 实例导出到 .mps 文件,然后将其提供给 gurobipy,我可以将整体速度提高 30%。
问题来了,当我想使用已解决模型的变量时,因为我注意到,当将原始实例从 pyomo 导出到 .mps 文件时,变量名会丢失;它们都被命名为“x”(因此,例如,model.Delta、model.Pg、model.Alpha 等会变成 x1、x2、...、x9999 而不是 Delta[0]、Delta[1]、 ...阿尔法[99,99])。
导出模型时有没有办法保留原始变量名称?

最佳答案

设法解决它!
对于任何可能觉得这很有用的人,我传递了一个带有“symbolic_solver_labels”的字典作为该方法的 io_options 参数,如下所示:

instance.write(filename = str(es_) + ".mps", io_options = {"symbolic_solver_labels":True})
现在我的变量在 .mps 文件中被正确标记了!

关于python - 将 Pyomo 导出到 .mps 文件时保留变量名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64342685/

相关文章:

python - Gurobi 前缀和优化

java - 使用 Java 的 Gurobi,没有目标函数

python-2.7 - 当模型给出不可行解时获取约束解

python - 如何使用 Gensim 加载 Word2vec 而不会出现 AttributeError?

python - sklearn.impute.IterativeImputer 的实现

python - bs4.FeatureNotFound : . .. lxml 与 MacOS 和 Conda/Python 3

python没有获取环境变量,但它是在mac os上设置的

python - 如何读取Python cplex api中的变量值?

python - 为连接集的最大数量创建 Pyomo 约束

python - 如何在 Pyomo 约束中建模逻辑或或量词