线性规划——单纯形法
线性规划——单纯形法
- 线性规划(Linear Programming)
- 概念
- 标准形式
- 单纯形法(Simplex Method)
- 单纯形法的思路总结
- 整体过程
- 约化问题
- 最优解判定
- 迭代过程
- 其它情况
- 退化解
- 没有初始可行解的情况
- 修正单纯形法
- 单纯形法的计算复杂度
- 参考文献
线性规划(Linear Programming)
概念
目标函数是线性的,约束条件是线性等式或不等式,每个变量都取实数值.
标准形式
minimize cTxsubject to Ax=bx≥0\begin{array}{ll} \text { minimize } & c^{\mathrm{T}} x \\ \text { subject to } & A x=b \\ & x \geq 0 \end{array} minimize subject to cTxAx=bx≥0
其中b∈Rm,A∈Rm×n,c∈Rn,x∈Rnb \in \mathbb{R}^{m}, A \in \mathbb{R}^{m \times n}, c \in \mathbb{R}^{n}, x \in \mathbb{R}^{n}b∈Rm,A∈Rm×n,c∈Rn,x∈Rn.
- 线性标准型的一般形式化为标准型的方法:添加松弛变量;有自由变量的时候,使用消元或者变量替换的形式.
- 标准型是为了便于理论分析和算法设计,任何满足线性规划要求的均可转换成标准型,如极小化绝对值的和、极小化逐段线性凸函数等特殊线性形式.
单纯形法(Simplex Method)
高中数学教材已经介绍过简单线性规划的解法了:图解法。但是在变量大于二维时,图解法就很不直观。
单纯形法利用了线性规划的基本定理,即只要穷举多个基本可行解,就一定能找到最优解。它是一种搜索机制,即从一个初始可行解出发,不断迭代到相邻的可行解,同时让目标函数下降。
单纯形法的思路总结
整体过程
迭代求解,不断下降目标值。在几何上可以看成从一个顶点开始,沿着多面体的边行走到下一个使目标函数下降的另一个顶点。
约化问题
标准形式
minimize cTxsubject to Ax=bx≥0\begin{array}{ll} \text { minimize } & c^{\mathrm{T}} x \\ \text { subject to } & A x=b \\ & x \geq 0 \end{array} minimize subject to cTxAx=bx≥0
用非基变量代替基变量,可以将原始问题约化到
二者是等价问题,其中r被称作费用系数.
该等价问题被化为,以非基变量作为目标函数,约束为基变量的不等式组及非零约束。原来的Ax=bAx=bAx=b已经隐含到目标函数中了.
最优解判定
由约化问题可以看出,只要费用系数r均大于0,可以轻易看出最优解就是非基变量全取0的形式.
迭代过程
若费用系数r有小于0的,那说明对应的非基变量可以不断上升使目标函数下降。但是因为约束的存在,非基变量又不能无限地增加。所以我们可以贪婪地使x增加到约束的边界xq⩽min{yi0yiq:yiq>0,i=1,2,⋯,m}x_{q} \leqslant \min \left\{\frac{y_{i 0}}{y_{i q}}: y_{i q}>0, i=1,2, \cdots, m\right\}xq⩽min{yiqyi0:yiq>0,i=1,2,⋯,m},到达边界后,肯定会有非零的基变量会变成0(因为非基变量和基变量有个表达式关系),这时候就会发生进基和出基的操作,ypqy_{pq}ypq就是转轴元.
其它情况
退化解
如果采用最小费用系数进基的情况,可能会产生循环的情况,意味着迭代若干步后又回到了最初的解。这时解决方案可以有摄动法、Bland法则. 一般程序中会专门写对付循环机制的代码.
没有初始可行解的情况
对于Ax⩽b,x⩾0A x \leqslant b, x \geqslant 0Ax⩽b,x⩾0且其中b⩾0b \geqslant 0b⩾0的情况,可以直接构造可行解。但是一般情况,难以看出可行解,这时使用两阶段法.
先构造Ax=b,x⩾0A x=b, \quad x \geqslant 0Ax=b,x⩾0让b⩾0b \geqslant 0b⩾0,然后考虑辅助问题:
y是人工变量. x=0,y=bx=0, y=bx=0,y=b自动构成基本可行解。第一阶段同样使用单纯形法构造出基本可行解,转轴时不用考虑费用系数,且当基变量的系数均为0时可以去除冗余方程。
修正单纯形法
寻优过程中仅一小部分列发生转轴,没有显式用到的列很多,对这些列的计算有些浪费. 当m比n小得多时,修正单纯形法可以节省开销。
修正单纯形表如下:
执行以ypqy_{pq}ypq为主轴的转轴运算,即可得与新基对应的数据。
单纯形法的计算复杂度
由Klee-Minty定理,单纯形法的时间复杂度是指数级的.
参考文献
数学规划基础——刘红英
线性规划——单纯形法相关推荐
- 【运筹学】线性规划 单纯形法 案例二 ( 第一次迭代 | 矩阵变换 | 检验数计算 | 最优解判定 | 入基变量 | 出基变量 )
文章目录 一.第一次迭代 : 进行行变换 二.第一次迭代 : 计算检验数 三.第一次迭代 : 最优解判定 四.第一次迭代 : 入基变量 五.第一次迭代 : 出基变量 [运筹学]线性规划 单纯形法 ( ...
- 【运筹学】线性规划 单纯形法 阶段总结 ( 初始基可行解 | 判定最优解 | 迭代 | 得到最优解 | 全流程详细解析 ) ★
文章目录 一.线性规划示例 二.转化标准形式 三.查找初始基可行解 四.初始基可行解的最优解判定 五.第一次迭代 : 入基与出基变量选择 六.第一次迭代 : 方程组同解变换 七.第一次迭代 : 生成新 ...
- 线性规划单纯形法python实现与代码详细解读
线性规划单纯形法python实现与代码详细解读 1 单纯形法(Simplex method) 2 编程思路 3 python实现原理解读 4 python代码 5 后记 1 单纯形法(Simplex ...
- 三、线性规划 单纯形法
1.单纯形法粗略概述 单纯形法可以粗略地概括为"从一种解决方案到另一种解决方案,每次改进,直到达到最佳解决方案".单纯形算法是求解线性规划的经典方法. 今天,我们将讨论如何从一种解 ...
- 单纯形法解下列线性规划问题_用单纯形法求解下列线性规划问题 线性规划单纯形法教学策略探求...
摘 要:运筹学中的线性规划使用日广.文章从高职院校线性规划教材与教育现状动身,提出了改善线性规划单纯形法教育的新策略. 要害词:高职院校;线性规划;单纯形法 中图分类号:G642.0 ...
- 【运筹学】线性规划 单纯形法 案例二 ( 案例解析 | 标准形转化 | 查找初始基可行解 | 最优解判定 | 查找入基变量与出基变量 | 第一次迭代 )
文章目录 一.线性规划示例 二.转化成标准形式 三.初始基可行解 四.列出单纯形表 五.计算检验数 六.选择入基变量与出基变量 七.第一次迭代 : 列出单纯形表 一.线性规划示例 线性规划示例 : 使 ...
- 【运筹学】线性规划 单纯形法 ( 原理 | 约定符号 | 目标系数矩阵 C | 目标函数变量矩阵 X | 约束方程常数矩阵 b | 系数矩阵 A | 向量 | 向量符号 | 向量 Pj )
文章目录 I . 单纯形法 引入 II . 单纯形法 基本原理 III . 线性规划 标准形式 IV . 线性规划 标准形式 普通形式公式 V . 线性规划 标准形式 展开完整形式公式 VI . 线性 ...
- 单纯形法表格法例题详解_优化 |运筹学线性规划单纯形法之求解
文章申明 文章作者:臧永森 臧永森:清华大学工业工程系在读博士,研究方向:运筹优化算法的设计与应用.数据统计分析.大数据技术与应用,戚铭尧老师团队 责任编辑:阎泳楠 文章由『运筹OR帷幄』原创发布,如 ...
- 线性规划单纯形法的matlab程序,线性规划单纯形法的MATLAB实现_数学专业.doc
摘要:运筹学有着长远的发展历史,并且不断地发展变化出许多分支理论,线性规划是运筹学中专研较早,发展比较快速,对现实社会作用涵盖面广,理论系统趋于成熟的一个重要分支,虽然其只是运筹学的一小部分,但是作用 ...
- 线性规划单纯形法python实现
用python实现线性规划中的单纯形法 例题如下(已是标准形式): maxz=1500x1+1000x2max z=1500x_1+1000x_2maxz=1500x1+1000x2 {3x1+2 ...
最新文章
- Compute the Greatest Common Divisor of Two Integers using Sieve of Eratosthenes.
- Facebook开源最大规模并行语料,45亿语料,覆盖576种语言对
- Web APi之控制器选择Action方法过程(九)
- P4324 [JSOI2016]扭动的回文串
- CONVT_NO_NUMBER
- 手把手教你将H5游戏打包为手游
- P2469-[SDOI2010]星际竞速【费用流】
- 【C++深入探索】Copy-and-swap idiom详解和实现安全自我赋值
- 蓝桥杯单片机:13届省赛模拟
- html怎么绘制飞线,绘制飞线,echarts迁徙图原理
- 三问百度云,ABC如何帮它跑赢马拉松?
- h3c等价路由(rip)
- dsp java_GitHub - sintrb/JavaDsp: 数字信号处理(DSP)方面的Java封装,包含常用的一些处理方法,如滤波、信号变换等等。...
- 双系统下如何切换到ubantu界面及如何切换到windows界面
- bigemap 功能介绍
- 微星主板节能模式怎么关闭_技嘉小雕、微星迫击炮、华硕电竞特工三款主板对比...
- 推荐十五款APP原型设计工具
- 在家无聊就重装个系统吧 三分钟教你重装安装系统
- 面向Android的开发基于Tensorflow Lite框架深度学习的应用(一)
- 学计算机i5九代,九代i5和九代i7区别