关于#cvxpy库#的问题,如何解决?


# 程序文件ex4_2.py
import cvxpy as cp
from numpy import array

c = array([70, 50, 60])  # 定义目标向量
a = array([[2, 4, 3], [3, 1, 5], [7, 3, 5]])  # 定义约束矩阵
b = array([150, 160, 200])  # 定义约束条件的右边向量
x = cp.Variable(3, pos=True)  # 定义3个决策变量
obj = cp.Maximize(c @ x)  # 构造目标函数
cons = [a @ x <= b]  # 构造约束条件
prob = cp.Problem(obj, cons)
prob.solve(solver='GLPK_MI')  # 求解问题
print('最优解为:', x.value)
print('最优值为:', prob.value)

错误是:

(CVXPY) May 15 04:59:57 PM: Encountered unexpected exception importing solver CVXOPT:
ImportError('DLL load failed while importing base: 找不到指定的模块。')
(CVXPY) May 15 04:59:57 PM: Encountered unexpected exception importing solver GLPK:
ImportError('DLL load failed while importing base: 找不到指定的模块。')
(CVXPY) May 15 04:59:57 PM: Encountered unexpected exception importing solver GLPK_MI:
ImportError('DLL load failed while importing base: 找不到指定的模块。')
Traceback (most recent call last):
File "D:\PycharmProjects\pythonProject\数学建模\《Python数学建模算法与应用》程序和数据\04第4章 线性规划和整数规划模型\ex4_2.py", line 12, in
prob.solve(solver='GLPK_MI') # 求解问题
File "C:\Users\光辉岁月 旭\AppData\Roaming\Python\Python39\site-packages\cvxpy\problems\problem.py", line 493, in solve
return solve_func(self, *args, **kwargs)
File "C:\Users\光辉岁月 旭\AppData\Roaming\Python\Python39\site-packages\cvxpy\problems\problem.py", line 1054, in _solve
data, solving_chain, inverse_data = self.get_problem_data(
File "C:\Users\光辉岁月 旭\AppData\Roaming\Python\Python39\site-packages\cvxpy\problems\problem.py", line 631, in get_problem_data
solving_chain = self._construct_chain(
File "C:\Users\光辉岁月 旭\AppData\Roaming\Python\Python39\site-packages\cvxpy\problems\problem.py", line 881, in _construct_chain
candidate_solvers = self._find_candidate_solvers(solver=solver, gp=gp)
File "C:\Users\光辉岁月 旭\AppData\Roaming\Python\Python39\site-packages\cvxpy\problems\problem.py", line 744, in _find_candidate_solvers
raise error.SolverError("The solver %s is not installed." % solver)
cvxpy.error.SolverError: The solver GLPK_MI is not installed.

进程已结束,退出代码1

参考GPT和自己的思路:根据错误信息看,这个问题的错误出在 GLPK_MI 求解器没有被安装。你需要先安装这个求解器才能使用它求解你的模型。安装 GLPK_MI 求解器的方法可以参照 cvxpy 官方文档中的说明或者查看 GLPK 官方网站上的说明。安装好之后就可以使用 GLPK_MI 求解器解决你的问题了。