在使用gdpopt pyomo时指定mip_solver对应的可执行文件



有人能帮我一下吗?在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求解器,但仍然没有运气

当前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调用,以分别包含glpkcbcexecutable=executable_path,如您所愿。

最新更新