![8cecb4d31b3c4f40ae5e0117060b02b4.png](https://img-blog.csdnimg.cn/img_convert/8cecb4d31b3c4f40ae5e0117060b02b4.png)
前言
运筹学中的各种算法,用Lingo或Matlab很容易就能算出结果。但从运筹学教学来说,必须得对各种重要算法理解其原理,按标准算法步骤进行笔算推演,想要的是过程。网上也有很多按算法步骤的编程实现,但基本都有两个缺点:
(1)不能提取算法步骤的中间结果;
(2)代码非向量化,非常的啰嗦。
我这学期正在教运筹学课,顺便把自己写的部分代码分享出来,时间有限,代码相当于是初版,后续有待进一步完善,也希望大家提出改进意见。
————————————————————
本篇先从最基础最重要的单纯形法求解线性规划问题(LP)开始。当然,LP的求解只关心结果的话,用Lingo或Matlab非常简单就能实现,可参看
张敬信:【优化算法】01. 线性规划zhuanlan.zhihu.com![5d84ecc3798c14b7e54432158459e64d.png](https://img-blog.csdnimg.cn/img_convert/5d84ecc3798c14b7e54432158459e64d.png)
一、线性规划问题标准形式
![aea60360483af925049e08138da8c59d.png](https://img-blog.csdnimg.cn/img_convert/aea60360483af925049e08138da8c59d.png)
二、单纯形法求解标准形式线性规划问题的算法步骤
![929d098eaede924b6c29b5632408047a.png](https://img-blog.csdnimg.cn/img_convert/929d098eaede924b6c29b5632408047a.png)
三、单纯形法求解线性规划问题的Matlab实现
优点:
- 代码采用向量化Matlab语言实现,非常简洁;
- 可以把整个单纯形表直接保存下来,再输出到Excel非常方便。
缺点(欢迎指正):
- LP各种特殊解的情况,暂时没有讨论全面;
2. 按照“勃兰特”规则,当出现两个相同的最小
function
测试:
A
运行结果:
![2f020a32252b52e3890abf38227662ad.png](https://img-blog.csdnimg.cn/img_convert/2f020a32252b52e3890abf38227662ad.png)
可以进一步写入Excel:
%% 写入Excel
出来就是完美的结果——单纯形表:
![c5840bf08ab5ea513762b9c51ed36680.png](https://img-blog.csdnimg.cn/img_convert/c5840bf08ab5ea513762b9c51ed36680.png)
主要参考文献:
胡运权,运筹学原理及应用(第六版),及其课件
————————————————————————————————
原创作品,转载请注明,版权所有,禁止盗用。