线性规划问题——scipy.optimize.linprog
文章目录
- 一.例题
- 二.线性规划问题
- 三.linprog
- 1.导入模板
- 2.参数解释
- 3.例
一.例题
以《数学建模算法与应用》中的题为例:
二.线性规划问题
数学建模旨在将复杂问题抽象为更加本质的模型
线性规划问题的标准形式:
min cTxc^TxcTx
s.t.{
Aubx<=bubA_{ub}x<=b_{ub}Aubx<=bub
Aeqx=beqA_{eq}x=b_{eq}Aeqx=beq
lb<=x<=rblb<=x<=rblb<=x<=rb
}
min:标准形式中求的是最小值,如果想求最大值只要将系数矩阵取负数,再将得到的最小值取负数即得
cTc^TcT是系数,是一个值不变的向量(一维矩阵),T表示转置,系数向量转置后变为行向量
x在这里表示决策变量,也是一个向量,形如:[x1,x2,x3……][x_1,x_2,x_3……][x1,x2,x3……]
cTxc^TxcTx就是目标函数
s.t.是subject to的缩写,后面的式子是约束条件,有三种类型的约束条件(ub表示upper bound,eq表示equal)
线性规划问题,就是在约束条件的限制下求目标函数最大值/最小值的问题
三.linprog
1.导入模板
import numpy as np
from scipy.optimize import linprog
2.参数解释
解决线性规划问题使用的函数是linprog(linear programming):
scipy.optimize.linprog(c, A_ub=None, b_ub=None, A_eq=None, b_eq=None, bounds=None, method=‘interior-point’, callback=None, options=None, x0=None)
①参数c:表示目标函数中的系数,一个一维的数组
②参数A_ub:该参数为可选参数,若线性规划问题中的约束条件含有不等式则使用该参数,A_ub是一个二维的矩阵(数组),它的每一行都代表一个不等式的系数
以例题的约束条件中的三个不等式为例:
2x1+x2<=102x_1+x_2<=102x1+x2<=10
x1+x2<=8x_1+x_2<=8x1+x2<=8
x2<=7x_2<=7x2<=7
则系数矩阵应该表示为:
2 1
1 1
0 1
③参数b_ub:该参数为可选参数,对应上面的系数矩阵,是一个一维的列向量
④参数A_eq和b_eq大同小异,分别为等式约束条件中的系数矩阵和约束向量
⑤参数bound:是一个由元组(min,max)组成的序列,限定决策变量的取值范围,用None表示无限制
3.例
例题的代码:
import numpy as np
from scipy.optimize import linprogc=np.array([4,3])
A=np.array([[2,1],[1,1],[0,1]])
b=np.array([10,8,7])ret=linprog(-c,A_ub=A,b_ub=b,bounds=((0,None),(0,None)))print(ret)
print(ret.x) #表示最优解
print(ret.fun) #表示最值
线性规划问题——scipy.optimize.linprog相关推荐
- 使用python scipy.optimize linprog和lingo线性规划求解最大值,最小值(运筹学学习笔记)
1. 线性模型 2. 使用python scipy.optimize linprog求解模型最优解: 在这里我们用到scipy中的linprog进行求解,linprog的用法见https://docs ...
- python模块:Scipy.optimize.linprog线性规划求解
目录 一.模块介绍 二.模块源分析与参数解释 三.实例求解 四.参考 一.模块介绍 1.1模块功能 Scipy.optimize是Scipy中一个用于解决数学模型中优化类模型的子包,该子包中又包含了多 ...
- scipy.optimize.linprog()函数--求解线性规划问题
这里写目录标题 关于方程组的标准形式 参数 c A_ub b_ub A_eq b_eq bounds method callback options maxiter disp presolve 返回值 ...
- python数学建模之用scipy.optimize.linprog实现线性规划
在做数学建模时,我们经常会遇到在约束条件下求解目标的最优解的情况,如:在如下约束条件下求解-x0+4x1的最小值. 在求解这个问题的过程中,我们可以使用不同的工具去解决,如MATLAB.Java等语言 ...
- scipy.optimize.linprog函数参数最全详解
scipy.optimize.linprog函数 1.线性规划概念 2.输入格式 3.参数设置: 4.输出格式: 5.例子 6.若有更多Python的问题,请挪步"佐佑思维"公众号 ...
- python网页优化公司_使用python优化scipy.optimize.minimize公司
我将逐行检查您的代码,并强调一些问题:from scipy.optimize import minimize import numpy as np prices=np.array([[1.5,50,3 ...
- 线性规划求解的python函数 : optimize.linprog
""" 需要特别注意,原来方式是求最小值,因此在A 和Alist中 所有小于等于方程式的各个因变量值不变,而当方程式为大于等于方程式,那么所有因变量和对应值均需要反转乘以 ...
- python数学建模之用scipy.optimize.minimize解决高次非线性规划问题
在实际的数学建模应用中,我们会遇到很多约束条件是二次的,三次的或者是高次函数的情况,这样用 optimize.linprog()来解决就显得不适用了,因此我们使用scipy.optimize下得min ...
- scipy.optimize.fsolve:用Python求解方程的解
例1: 求解方程组的一个解: x0*cos(x1) = 4, x1*x0 - x1 = 5. 需要注意两点: 1.定义方程组,方程组要写出f(x)=0的形式(=0不需要写出来),所以原方程右边4和5都 ...
最新文章
- 迈克尔 · 乔丹:我讨厌将机器学习称为AI
- UC伯克利新机器人成果:灵活自由地使用工具
- struts2框架之国际化(参考第二天学习笔记)
- 人工智能是如何应用于智能交通领域
- 《漫画线性代数》读书笔记 用矩阵解方程组
- linux同步IO: sync、fsync与fdatasync
- getParameter和getAttribute的区别
- lambda 流 peek java_JDK8 流与λ表达式
- JavaScript禁用页面刷新
- linux数据库监听配了两个,Oracle数据库和监听随LINUX系统启动
- Python实现十大经典排序算法
- 卷积神经网络_mnist
- java 两个list相等_java 怎么比较两个list是否相同
- linux resin mysql_【转】Linux下Resin+JSP+MySQL的安装和配置
- 文字排版中的字号尺寸对照表(清晰、准确(含两个版本对比)、可复制)
- 《线粒体疾病的遗传》学习笔记
- AndroidStudio 自带avd模拟器WiFi网络受限无法连接
- 爬取今日头条街拍美图
- CentOS7上安装Snipe-IT4.6.3详细过程及注意事项
- 高等数学与matlab要用电脑吗,知到高等数学与MATLAB启蒙答案全套
热门文章
- 专车,你动了谁的奶酪?
- Q-Net---基于查询的少镜头医学图像分割
- 0816-欧拉回路(外带模板题一个+sao操作)
- 自监督论文阅读笔记SELF-SUPERVISED SPECTRAL MATCHING NETWORK FOR HYPERSPECTRAL TARGET DETECTION
- My Eclipse
- 华为交换机命令 端口速率_华为交换机端口限速配置 | 铭泰网络
- 十分流行自举法(Bootstrapping )为什么有效
- ASP.NET之“Jbh.Common.DbHelperSQL”不实现接口成员“System.IDisposable.Dispose()”
- 二阶龙格库塔公式推导_数值常微分方程-欧拉法与龙格-库塔法
- 2021年质量员-市政方向-岗位技能(质量员)考试内容及质量员-市政方向-岗位技能(质量员)考试资料