python求解整数线性规划
cvxpy求解
比如我们求解这样的一个问题:
我们需要配置基本的环境,首先记得按顺序安装模块:
pip install numpypip install mklpip install cvxoptpip install scspip install ecospip install osqp
再:
pip install cvxpy
完整代码如下:
# coding=gbk
"""
作者:川川
@时间 : 2022/1/30 0:35
群:428335755
"""import cvxpy as cp
from numpy import arrayc = 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)
运行结果如下:
由于注释很详细,我就没啥好说的了,如果你有不懂,可以评论区留言,或者加我联系方式问我。
scipy求解
模块安装:
pip install scipy
首先要转化为标准的式:
求解标准式代码如下:
from scipy import optimize
import numpy as np# 求解函数
res = optimize.linprog(c, A, b, Aeq, beq, LB, UB, X0, OPTIONS)
# 目标函数最小值
print(res.fun)
# 最优解
print(res.x)
标准形式是<=,如果是>=,则在两边加上符号-。
举个例子如下:
求解代码为:
from scipy import optimize
import numpy as 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)
print(res)
运行如下:
解释一些结果:
- fun是目标函数最小值
- x是最优解,即上面的x1,x2,x3的最优解
推荐一本好书
《机器学习线性代数基础:Python语言描述》的优势:本书以机器学习涉及的线性代数核心知识为重点,进行新的尝试和突破:从坐标与变换、空间与映射、近似与拟合、相似与特征、降维与压缩这5个维度,环环相扣地展开线性代数与机器学习算法紧密结合的核心内容。
感兴趣可以自行购买:
京东自营购买链接:
https://item.jd.com/12566109.html当当自营购买链接:
http://product.dangdang.com/27921482.html
python求解整数线性规划相关推荐
- 运筹学matlab实验报告,运筹学上机实验报告 利用Matlab求解整数线性规划
四川师范大学数学与软件科学学院运筹学上机实验报告. 学期:__2011_至__2012__ 第___一__ 学期 2011年11月9日 课程名称:__ 运 筹 学 ________ 专业:_信息与计算 ...
- Python 实现整数线性规划:分枝定界法(Branch and Bound)
今天做作业,要实现整数线性规划的分枝定界法算法.找了一些网上的博客,发现都很屎,感觉自己写的这个比较清楚.规范,所以在此记录.如有错误,请指正. from scipy.optimize import ...
- python混合整数线性规划_Python 实现整数线性规划:分枝定界法(Branch and Bound)...
今天做作业,要实现整数线性规划的分枝定界法算法.找了一些网上的博客,发现都很屎,感觉自己写的这个比较清楚.规范,所以在此记录.如有错误,请指正. from scipy.optimize import ...
- python混合整数线性规划_【Python代码】混合整数规划MIP/线性规划LP+python(ortool库)实现...
相关知识点 LP线性规划问题 Linear Problem [百度百科]:研究线性约束条件下线性目标函数的极值问题的数学理论和方法. 学过运筹学的小伙伴,可以看这个LP问题的标准型来回顾一下: 不太熟 ...
- 用Python求解线性规划问题
线性规划简介及数学模型表示线性规划简介一个典型的线性规划问题线性规划模型的三要素线性规划模型的数学表示图解法和单纯形法图解法单纯形法使用python求解简单线性规划模型编程思路求解案例例1:使用sci ...
- 整数线性规划实现(lingo,python分枝界定法)
本文章为上篇建模学习打卡第二天的续 文章目录 一.本次问题 二.本题理解 三.问题求解 1.lingo实现 (1)先抛除整数约束条件对问题求解 (2)加入整数约束条件求解 2.python实现求解 ( ...
- 使用COPT求解混合整数线性规划
一.使用Copt求解模型步骤 1.模型的引入 使用 from copt import * 引入模型 import coptpy as cp 2.创建求解环境 env = Envr() 创建优化模型,返 ...
- MindOpt对于混合整数线性规划问题如何建模优化(python语言)
简介 MindOpt是一款高效的优化算法软件包,求解算法实现了线性规划(LP).混合整数线性规划(MILP).二次规划(QP),可以支持命令行.c.c++.java和python调用.接下来我们将发布 ...
- 数学建模:线性规划及 Python 求解
目录 线性规划模型形式 线性规划问题的Python求解 1. scipy.optimize.linprog 2. cvxopt.solvers 3. cvxpy 线性规划模型形式 线性规划模型的一般形 ...
最新文章
- Linux环境下USB的原理、驱动和配置
- 解决Matlab Help文档需要登录才能查看的问题
- [Luogu 3258] JLOI2014 松鼠的新家
- 动态规划—最小路径和
- jquery 赋值时不触发change事件解决
- java正则表达式提取字符串中的数字
- BigDecimal的异常记录:java.lang.ArithmeticException: Rounding necessary
- R7-9 模拟EXCEL排序 (25 分)
- 10月15日发布!谷歌Pixel 4系列或将全系支持5G
- 低代码和零代码火了,十大利器推荐!
- mfc之CPtrArray数组
- lightning接口_苹果、安卓充电接口有望统一,欧盟重压下,苹果将不得不妥协
- 转载:常用 Git 命令清单 by 阮一峰
- WINDOWS10 win+L 锁屏快捷键失效
- 各种芯片复位电路分析
- steam饥荒存档备份_如何查找和备份您的Steam屏幕截图
- 增广拉格朗日乘子法、ADMM
- 新冠病毒阴谋论报告:有观点甚至认为是盖茨基金会制造的
- 完全开源!快速上手 AI 理论及应用实战来了
- 团体程序设计天梯赛——L1-054 福到了