【python】cvxpy.error.solvererror the solver glpk_mi is not installed
程序员文章站
2022-04-27 16:55:26
CVXPY是一种可以内置于Python中的模型编程语言,解决凸优化问题。本人使用conda包管理,按照官方指示按照安装:安装CVXPY后需要安装CVXOPT模块求解器,使用命令:pip install cvxopt显示安装成功。运行示例:import cvxpy as cpfrom numpy import arrayc=array([40,90]) #定义目标向量a=array([[9,7],[-7,-20]]) #定义约束矩阵b=array([56,-70]) #定义约束条...
CVXPY是一种可以内置于Python中的模型编程语言,解决凸优化问题。
本人使用conda包管理,按照官方指示按照安装:
安装CVXPY后需要安装CVXOPT模块求解器,使用命令:
pip install cvxopt
显示安装成功。
运行示例:
import cvxpy as cp
from numpy import array
c=array([40,90]) #定义目标向量
a=array([[9,7],[-7,-20]]) #定义约束矩阵
b=array([56,-70]) #定义约束条件的右边向量
x=cp.Variable(2,integer=True) #定义两个整数决策变量
obj=cp.Minimize(c*x) #构造目标函数
cons=[a*x<=b, x>=0] #构造约束条件
prob=cp.Problem(obj, cons) #构建问题模型
prob.solve(solver='GLPK_MI',verbose =True) #求解问题
print("最优值为:",prob.value)
print("最优解为:\n",x.value)
求解失败,报错:
cvxpy.error.solvererror the solver glpk_mi is not installed
查看已安装求解器:
print(cp.installed_solvers())
显示没有glpk,甚至cvxopt也没有。
我在这篇博客找到问题所在。
Python中支持Convex Optimization(凸规划)的模块为CVXOPT,其安装方式为:
- 卸载原Pyhon中的Numpy
- 安装CVXOPT的whl文件,链接为:https://www.lfd.uci.edu/~gohlke/pythonlibs/
- 安装Numpy+mkl的whl文件,链接为:https://www.lfd.uci.edu/~gohlke/pythonlibs/
之所以选择这种安装方式,是因为Python的whl和pip直接install的不兼容性。
安装后运行示例程序,求解成功。
本文地址:https://blog.csdn.net/weixin_45019478/article/details/107298298