PuLP支持多种优化器进行运算,查询优化器是否可用代码:
# coding=utf-8
from inspect import getmembers
import pulp
for m in getmembers(pulp.solvers):
try:
if isinstance(m[1], type):
print('--', m[1]().available(), m)
except Exception:
continue
-- False ('COIN', <class 'pulp.solvers.COIN_CMD'>)
-- False ('COINMP_DLL', <class 'pulp.solvers.COINMP_DLL'>)
-- False ('COIN_CMD', <class 'pulp.solvers.COIN_CMD'>)
-- False ('CPLEX', <class 'pulp.solvers.CPLEX_CMD'>)
-- False ('CPLEX_CMD', <class 'pulp.solvers.CPLEX_CMD'>)
-- False ('CPLEX_DLL', <class 'pulp.solvers.CPLEX_DLL'>)
-- False ('CPLEX_PY', <class 'pulp.solvers.CPLEX_PY'>)
-- False ('GLPK', <class 'pulp.solvers.GLPK_CMD'>)
-- False ('GLPK_CMD', <class 'pulp.solvers.GLPK_CMD'>)
-- True ('GUROBI', <class 'pulp.solvers.GUROBI'>)
-- C:\gurobi801\win64\bin\gurobi_cl.exe ('GUROBI_CMD', <class 'pulp.solvers.GUROBI_CMD'>)
-- C:\Python36\lib\site-packages\pulp\solverdir\cbc\win\64\cbc.exe ('PULP_CBC_CMD', <class 'pulp.solvers.PULP_CBC_CMD'>)
-- False ('PYGLPK', <class 'pulp.solvers.PYGLPK'>)
-- False ('SCIP', <class 'pulp.solvers.SCIP_CMD'>)
-- False ('SCIP_CMD', <class 'pulp.solvers.SCIP_CMD'>)
-- False ('XPRESS', <class 'pulp.solvers.XPRESS'>)
-- False ('YAPOSIB', <class 'pulp.solvers.YAPOSIB'>)
可见我的机器只有CBC和Gurobi可用,默认情况下PuLP与CBC一起安装。