番外篇: 从线性规划作业说起

《运筹学》系列文章:

  1. 初识运筹学
  2. 线性规划与单纯形法
  3. 番外篇: 从线性规划作业说起

实践是检验真理的唯一标准

植树实践

导言:国庆期间老师布置了十道线性规划的大题,题目要求是利用软件来求解这些问题。

不得不说老师的这种安排,非常的具有开拓性。一般而言,日后如果我们碰到线性规划的问题,肯定不会再拿一张纸然后手工计算半天,毕竟现在是在信息时代。况且我们已经读研究生了,我觉得也没有必要遵循守旧的照着课本来。之前用Octave写过的程序完全可以在此次实践中查漏补缺,使程序更加完善。注意本次实验是利用了改进单纯形法(即单纯型法的矩阵描述)

而确实实际的情况是通过这次作业,之前的代码更改了很多,程序变得更加稳健!

1. 题目:

《运筹学》课本:
p55 2.1 1-4 2.2 1 2.3 1-2 p56 2.6 1-2 p87 3.1 1-2 p88 3.3 1-2 p90 3.9 1-2 3.10 p113-114 4.3 4.4

2. 解题思路:

  1. 首先利用Octave(GLPK) 求解了线性规划的相关习题。
  2. 之后利用《运筹学》中单纯型法的矩阵描述(改进单纯型法),自编函数实现在单纯型法的的求解运算,同时还编写了化标准型,图解法等子程序。将该算法用解释型程序设计语言Octave 进行了具体的实现。
  3. 将自带函数运行结果,自编函数运行结果与手算结果进行比较。

程序主体见github网站

3.针对题目的总结

通过Octave开源软件便捷地计算了各个题目的解,同时自编函数实现了矩阵描述的单纯形法子程序及其它的一些配套子程序(关于程序的编写思路请看个人的一个博客http://www.jianshu.com/p/9965e111537e)。同时为了使本报告不至于太臃肿,现将大段的代码放于github。在求解题目的过程中我有如下的感受:

  1. 通过求解P56:2.6-(2)等有无穷多解的题目,我发现一般而言程序时无法告知你题目有无穷多解的。因为一般而言计算机求解多用不断迭代的算法,寻找到一个最优解后便会停止迭代。但是通过自编子程序,借助于《运筹学》课本上的判断条件,可以报告出有无穷多解的信息。
  2. 已有的线性规划求解软件一般比较成熟,会比自己编写的子程序稳健很多。自我编写的程序在出现“无界解”的情况时还会进入死循环;同时对于不易寻找初始解的标准型,还需要人工对增广矩阵进行初等行变换以符合求解条件。
  3. 开源软件或许有自己的不足之处。题目P55:2.3-(1)形式如同P55:2.3-(2)但是经过多次的尝试,发现软件一直说无最优解。但是运行自编程序却存在最优解。
  4. 对于p113-114 4.4这里的灵敏性分析问题,在技术上可以将要查看灵敏度变化的值作为自变量,将输出的解作为因变量。然后利用一个for循环,改变自变量的值之后查看因变量是否会变化。从而找到题目的解。当然也可以在理论上,借助于检验数计算。

4.针对实验内容的总结

使用软件的一个最主要的优点是:你可以完全不知道自己的原理,只要会使用就行。本实验主要的难点在于看懂课本上的单纯形法的矩阵描述,然后自编函数实现这个过程。因为数学其实是一门语言,尽管可以费时间看懂这整个过程,但是将整个矩阵表述编写为程序还是有些困难。但是经过不断地尝试还是可以写出一个稳健度不高的程序出来。
本次报告利用了开源版的Matlab替代软件Octave,因为Matlab需要购买版权才能使用。通过这次尝试,可以证明处理这些问题,开源软件完全可以胜任。
实践出真知:只有将自己写的程序真正做过题目你才知道自己的程序是不是够稳健!同时写过程序你才知道课本中很多话的真正含义,比如课本P45页无可行解的判定条件,我以为是x的最终的解不为0,原来是sigma不为零。

5.实验结果:

题目 Octave(glpk) 程序运行情况 Octave自己编程运行情况 手算
P55:2.1-(1) 有最优解(2 4)’ 有最优解(2 4)’ 同前
P55:2.1-(2) 有最优解(3/2 1/2)’ 有最优解(3/2 1/2)’ 同前
P55:2.1-(3) No dual feasible solution. 程序显示出“无界解” 无界解
P55:2.1-(4) No primal feasible solution. 无解 无解
P55:2.2-(1) 有最优解(0 8 0 -6)’ 在不引入人工变量M 的情况下,先将原等 式用化标准型子程序 化为标准型。再人工 对增广矩阵进行初等 行变换,使其符合函 数输入要求 。 新问题转化后计算得 无穷多解,将解人工转化后同前 -
P55:2.3-(1) 运行出错:No dual feasible solution. 很奇 怪,开源软件有其不 足之处。 经人工转换得初始 解,在带入自编函数。 求得最优解(6.8 0 0 1.4) -
P55:2.3-(1) 求得最优解(0.4 0 2.2 0)’ - -
P56:2.6-(1) 得最优解(6.43,0.57,0)’ 需要手工进行初始行 变换得最优解。 -
P56:2.6-(2) 得最优解 (0.8,1.8,0)’但 是不能得出无穷多解 程序结果不符合,不 能直接用单纯形法 存在无穷多解
p87:3.1-(1) 得最优解 (4 6 0)’ 得到最优解 -
p87:3.1-(1) 得最优解(0.6 1.2)’ 需要手工进行初始行 变换得最优解。 -
p88:3.3-(1) 得最优解(0 2/3 0)’ 程序结果不符合,不 能直接用单纯形法 -
p88:3.3-(2) No dual feasible solution 进入死循环 -
p90:3.9-(1) 得最优解(1.61538 0.76923)’ - -
p90:3.9-(2) 得最优解(3 0 0 0)’ 程序结果不符合,不 能直接用单纯形法 -

__ 题目:p113-114 4.4(1) __
计算最优解同上。对于第一小题c22的单位运价的范围,本文采用一个for循环,将每次 计算所得的值与原题的最优解比较。逐步变更范围,从而确定最终答案。 因为运价肯定大于0,所以先设定单位运价的范围为0~15,此时发现运价从10开始最优 解的发生变化,故确定范围为0<=c22<10,当c22等于10时,将新解与原解比较,发现 问题有多解,故确定范围为0<=c22<=10,经手工计算c22应大于等于3,但是当 0<=c22<=3时,用闭合回路进行调整时,发现闭合回路中含有0,故还是原来解最优。

__ 题目:p113-114 4.4(2) __
同样采用for循环,c24为非基变量,当c24下降当一定程度时必引起检验数小于零,使 解发生变化。当其不断上升时,检验数增大解不再发生变化,中间有一个点是两者的分 界线,故通过for循环来查找这个点。突变点在c24是17的位置。故当其为17使得到无 穷多最优方案。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,928评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,192评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,468评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,186评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,295评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,374评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,403评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,186评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,610评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,906评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,075评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,755评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,393评论 3 320
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,079评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,313评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,934评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,963评论 2 351

推荐阅读更多精彩内容