【问题标题】:Specify the mip_solver corresponding executable while using gdpopt pyomo使用 gdpopt pyomo 时指定 mip_solver 对应的可执行文件
【发布时间】:2021-02-15 17:37:47
【问题描述】:

有人可以帮我解决以下问题吗?在 pyomo 中使用 gdpopt 时,我需要指定可执行求解器的路径

对于 glpk 求解器,通常可以在 SolverFactory 中指定此路径为:

executable_path = '/home/user/lib/glpsol'

opt = SolverFactory('glpk',executable=executable_path)

但如果我想使用 gdpopt 并以与以下示例相同的方式指定 glpk 的可执行文件,这将不起作用:

opt = SolverFactory('gdpopt',executable=executable_path)

我已经尝试使用mip_solver_args 参数如下,但我没有运气。

opt = SolverFactory('gdpopt')

results = opt.solve(model, mip_solver='glpk', mip_solver_args={'executable':executable_path})

最后,我用 cbc 求解器尝试了同样的方法,但仍然没有运气

【问题讨论】:

    标签: python mathematical-optimization solver pyomo glpk


    【解决方案1】:

    GDPopt 的当前求解器参数不允许在 SolverFactory 调用中指定可执行参数。我现在没有足够的带宽来完成 PR 过程以获得新的求解器选项,但开源的好处是您可以修改 Pyomo 的安装以包含所需的 executable= 参数。

    您需要在mip_solve.py 文件中搜索SolverFactory 调用:https://github.com/Pyomo/pyomo/blob/main/pyomo/contrib/gdpopt/mip_solve.py。该文件应负责 GDPopt 进行的任何 MIP 子求解器调用。从那里,您可以根据需要更改文件中的 SolverFactory 调用,以分别包含 executable=executable_pathglpkcbc

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-05
      • 2015-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-08
      • 2020-08-27
      相关资源
      最近更新 更多