【python】cvxpy.error.solvererror the solver glpk_mi is not installed

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,其安装方式为:

  1. 卸载原Pyhon中的Numpy
  2. 安装CVXOPT的whl文件,链接为:https://www.lfd.uci.edu/~gohlke/pythonlibs/
  3. 安装Numpy+mkl的whl文件,链接为:https://www.lfd.uci.edu/~gohlke/pythonlibs/

之所以选择这种安装方式,是因为Python的whl和pip直接install的不兼容性。

安装后运行示例程序,求解成功。

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值