Python求解线性规划,python混合整数线性规划
Cvxpy解决了我们解决的这样一个问题:
我们需要配置基本环境。首先,记得按顺序安装模块:
pip安装数量
pip安装mkl
pip安装cvxopt
pip安装scs
pip安装ecos
pip安装osqp
再次重申:
安装cv xpy的完整代码如下:
#编码=gbk
作者:川川
@ Time: 2022/1/30 0:35
群:428335755
将cvxpy作为cp导入
从numpy导入数组
C=array([40,90]) #定义目标向量
A=array([[9,7],[-7,-20]]) #定义约束矩阵
B=array([56,-70]) #定义约束的右向量
X=cp。Variable(2,integer=True) #定义两个整数决策变量。
Obj=cp。最小化(c * x) #构造目标函数
Cons=[a * x=b,x=0] #构造约束
Prob=cp。建立一个问题模型
Prob.solve (solve= glpk _ mi ,verbose=true) #解决问题
打印(最佳值为:,概率值)
Print(最佳解决方案是:\n ,x.value)运行如下:
由于笔记很详细,我没什么好说的。有不懂的可以在评论区留言或者加我联系方式问我。
Scipy解决方案模块安装:
安装scipy必须首先转换成标准公式:
求解标准代码如下:
从scipy导入优化
将numpy作为np导入
#求解函数
res=optimize.linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS)
#目标函数的最小值
打印(研究和娱乐)
#最佳解决方案
print(res.x)的标准格式是=,如果是=,符号-加在两边。
例如,如下所示:
解决方案代码是:
从scipy导入优化
将numpy作为np导入
#确定c、A、b、Aeq、beq
c=np.array([2,3,-5])
A=np.array([[-2,5,-1],[1,3,1]])
B=np.array([-10,12])
Aeq=np.array([[1,1,1]])
Beq=np.array([7])
#求解
res=optimize.linprog(-c,A,B,Aeq,Beq)
打印(res)运行如下:
解释一些结果:
Fun是目标函数的最小值,X是最优解,即上面x1,x2,x3的最优解。推荐一本好书的优点《机器学习线性代数基础:Python语言描述》:本书围绕机器学习涉及的线性代数核心知识,进行了新的尝试和突破:从坐标与变换、空间与映射、近似与拟合、相似与特征、降维与压缩五个维度,展开了线性代数与机器学习算法紧密结合的核心内容。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。