python-3.x pyomo列出可用的解算器

lhcgjxsq  于 2023-01-18  发布在  Python
关注(0)|答案(3)|浏览(282)

要在pyomo中示例化求解器,通常使用求解器工厂:

from pyomo.opt import SolverFactory
opt = SolverFactory('glpk')

有没有办法知道SolverFactory会接受哪些字符串?解决方案如下所示:

print(SolverFactory.list_detected_solvers())
cfh9epnr

cfh9epnr1#

Pyomo不与任何求解器一起发布,而是提供了各种各样的接口给需要调用的求解器。因此,没有求解器的主列表。
你可以用终端命令pyomo help -s得到一些近似于所需行为的东西。你也可以检查SolverFactory('glpk').available() == True的各种求解器。
AMPL和GAMS都在他们的网站上提供了求解器列表。由于Pyomo能够连接到任何一种问题格式,你也可以将其作为参考。请记住,相关的求解器仍然需要安装在你的系统上。

wyyhbhjk

wyyhbhjk2#

根据陈琪的回复,我想出了这个蛮办法:

import pyomo.environ as pyo
from itertools import compress

pyomo_solvers_list = pyo.SolverFactory.__dict__['_cls'].keys()
solvers_filter = []
for s in pyomo_solvers_list:
    try:
        solvers_filter.append(pyo.SolverFactory(s).available())
    except (ApplicationError, NameError, ImportError) as e:
        solvers_filter.append(False)
pyomo_solvers_list = list(compress(pyomo_solvers_list,solvers_filter))
cwxwcias

cwxwcias3#

已经解决了这里的创作者!https://or.stackexchange.com/questions/7145/how-to-install-ipopt-on-google-colab-for-pyomo

!pip install pyomo 
from pyomo.environ import *
import matplotlib.pyplot as plt
!wget -N -q "https://ampl.com/dl/open/ipopt/ipopt-linux64.zip"
!unzip -o -q ipopt-linux64

在建模代码中:

opt=SolverFactory('ipopt', executable='/content/ipopt')

相关问题