学习数学建模的过程中,在线性规划以及非线性规划的章节中,经常会出现要使用cvxpy.solvers模块求解的模型程序,而python当中是没有自带cvxpy这个库的,这意味着我们需要自行安装库。
pip install numpy
pip install mkl
pip install cvxopt
pip install scs
pip install ecos
pip install osqp
error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools
上述安装完毕之后然后再:
pip install cvxpy
就完成cvxpy库的安装了!!!
你们以为这就结束了吗?这仅仅只是开始.............
当我运行一段线性规划的程序时,出现了“The solver GLPK_MI is not installed”的报错
毕竟最开始我是觉得,既然报错是说我缺少GLPK_MI这个求解器,那我只要不用这个求解器,换一个求解器不就行了
然而,当我按照博主的方法下载使用另一个求解器之后,原来的程序虽然可以运行了,但是不同求解器运行出来得到的结果却是不同的(此处问题我也不知道为什么,暂时也找不到解答)
如下:
#程序文件Pex6_3_1.py
import cvxpy as cp
import numpy as np
L=np.array([48.7,52.0,61.3,72.0,48.7,52.0,64.0])
w=np.array([2000,3000,1000,500,4000,2000,1000])
a=np.array([8,7,9,6,6,4,8])
x=cp.Variable((2,7), integer=True)
obj=cp.Maximize(cp.sum(x*L))
con=[cp.sum(x,axis=0,keepdims=True)<=a.reshape(1,7),
x*L<=1020, x*w<=40000, cp.sum(x[:,4:]*L[4:])<=302.7, x>=0]
prob = cp.Problem(obj, con)
prob.solve(solver='GLPK_MI',verbose=True)
print("最优值为:",prob.value)
print("最优解为:\n",x.value)
此代码摘自《Python数学实验与建模》第6章 整数规划与线性规划
此代码的运行结果是:
最优值为: 2039.4
最优解为:
[[4. 1. 5. 3. 3. 2. 0.]
[4. 6. 4. 3. 0. 1. 0.]]
得出的运行结果却与之前不同:
最优值为: 2009.3
最优解为:
[[8. 2. 0. 6. 0. 0. 1.]
[0. 5. 9. 0. 0. 4. 0.]]
所以,我舍弃了这个办法,采取了另一种解决方法:
用cmd命令行输入 pip 下载cvxopt
pip install cvxopt
这时候程序就能成功运行不报错了