数模备赛(二):cvxpy凸优化库安装

03线性规划、整数规划与案例讲解视频上_哔哩哔哩_bilibili
强烈安利b站的司守奎老师讲的python数学建模,非常详细
但是在安装cvxpy库遇到了一点麻烦(有的教程用的是linprog这个库,但是要求最优化问题必须先改写成标准型,感觉还是有点麻烦,果断换了司老师讲的库)

一、问题及解决

用pip安装了相关的库,直接运行报错:

  1. 报错:ImportError: DLL load failed
  2. 报错:The solver GLPK_MI is not installed

用print(cvxpy.installed_solvers())查看已安装的东西,显示['ECOS', 'ECOS_BB', 'OSQP', 'SCIPY', 'SCS']
再次pip install cvxopt,显示已安装

虽然在pip list里面都看到了相关的库,但是用不了,于是开始怀疑版本问题,但是很多博主推荐的离线安装网址失效了

最后找到了python扩展库的相关网页cvxpy · PyPI


终于被我发现问题了,原来是我用的python版本太低了(3.8.19),不符合pip install cvxpy默认安装的要求(>=3.9)
重新用anaconda建了个python=3.9的虚拟环境后完美解决

二、安装cvxpy及依赖
先安装依赖项,一顿pip install就好

pip install numpy
pip install mkl
pip install cvxopt
pip install scs
pip install ecos
pip install osqp

最后安装cvxpy库,应该都是满足要求的

pip install cvxpy

三、验证
首先验证这些库安装上没有

import cvxpy as cp

print(cp.installed_solvers())

显示有cvxopt, GLPK_MI

再验证一下能不能正常求解
 

import numpy as np
import cvxpy as cp

# 1.决策变量
x = cp.Variable(3,pos=True)

# 2.目标函数
c = np.array([70,50,60])
obj = cp.Maximize(c@x)

# 3.约束矩阵
# 左
a = np.array([[2,4,3],[3,1,5],[7,3,5]])
# 右
b =np.array([150,160,200])
cons =[a@x<=b]

# 4.求解
prob = cp.Problem(obj,cons)
prob.solve(solver='GLPK_MI')

print("最优解为:", x.value)
print("最优值为:", prob.value)

高精度求解结果显示为:

哭鼠,没想到一个小小的问题困扰了我好久,以后把“版本对应”四个字刻烟吸肺。。。

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值