典式

我们对于AAA先随便选择一个基,不妨假设AAA的前mmm列就是一个基(不是的话先对AAA换列即可,这不是重点,这里假设完全是为了证明简洁,实际操作的时候并不需要),则等式约束Ax=bAx=bAx=b变为:


同样,目标函数cTxc^TxcTx我们改写为:

从而,原来的线性规划变为:

我们之后,都将转为来求解这个线性规划,那么应该注意到,变量仍然是xxx,但是B,b,N,cBT,cNTB,b,N,c_B^T,c_N^TB,b,N,cBT​,cNT​都是常量了。
上述矩阵有点抽象,为了具体研究,我们把上面的常量进行展开。我们令

【复习一下】B−1b>=0B^{-1}b>=0B−1b>=0吗?
答案:不一定哦,不明白的自己恶补之前的单纯形法系列。

经过上述常量展开,线性规划最终成为了:

我们将上述线性规划称之为与原线性规划(LP)对应的典式(LP')
注意,除了xxx,其他的全是常量。我们要找一个xxx,使得这个目标函数值最小。

之后,我们均基于上述典式来讨论。
λi\lambda_iλi​在单纯形法中有一个专门的名字叫做检验数

定理

定理1: \quad如果上述用到的基B是一个可行基,而且所有检验数小于等于0,那么可行基对应的基可行解就是最优解。

证明:\quad由于基B是一个可行基,那么对应的基可行解就是(xB,xN)=(xB,0)=(B−1b,0)=(α1,⋯,αm,0,⋯,0)≥0(x_B,x_N)=(x_B,0)=(B^{-1}b,0)=(\alpha_1,\cdots,\alpha_m,0,\cdots,0)\ge 0(xB​,xN​)=(xB​,0)=(B−1b,0)=(α1​,⋯,αm​,0,⋯,0)≥0,我们把这个基可行解代入到目标函数中去,发现值为f0f_0f0​,那么有没有其他更小的值了呢?下面继续证明,所有检验数小于等于0时,没有了。
由于f0f_0f0​为常数,而且所有检验数小于等于0,所以如果xNx_NxN​中但凡有一个元素不为0,目标函数值都会变大(我们是最小化)。举个例子,如果λm+1=−1,xm+1=10,f0=2\lambda_{m+1}=-1,x_{m+1}=10,f_0=2λm+1​=−1,xm+1​=10,f0​=2,那么z=f0−(−1∗10+0)=12z=f_0-(-1*10+0)=12z=f0​−(−1∗10+0)=12,我们发现了什么?xNx_NxN​中不能有元素取非0,否则目标函数值都会变大。

而且细心的你会发现,姑且不论你xm+1=10x_{m+1}=10xm+1​=10会使目标函数变大不说,而且还可能破坏xB>=0x_B>=0xB​>=0,因为你应该注意到x1x_1x1​会与xm+1x_{m+1}xm+1​有关(下面的那mmm个等式条件)。

证毕。

我们对于这个典式一下子就求完了最优解,超快有没有,而且前面说了这个和原始线性规划是等价的,你可以从典式一步一步写回去,所以典式最优解就是原来线性规划的最优解。

但是,所有检验数都小于等于0,我们通常没有这么好的运气。只是说,我们选了一个可行基之后,改造为典式,发现其检验数全小于等于0,我们就下结论,可行基对应的基可行解就是最优解。

所以我们要面对一般性的情况,如果有检验树大于0怎么办?


引理2: \quad如果原线性规划存在最优解,而且上述用到的基B是一个可行基,而且存在一个检验数λm+k>0\lambda_{m+k}>0λm+k​>0,那么xm+kx_{m+k}xm+k​对应的对应的系数β1,m+k,⋯,βm,m+k\beta_{1,m+k},\cdots,\beta_{m,m+k}β1,m+k​,⋯,βm,m+k​至少有一个大于0。

证明:\quad我们采用反证法,假设xm+kx_{m+k}xm+k​对应的对应的系数β1,m+k,⋯,βm,m+k\beta_{1,m+k},\cdots,\beta_{m,m+k}β1,m+k​,⋯,βm,m+k​全部小于等于0。我们上面已经知道了,把基可行解代入的时候目标函数值是f0f_0f0​。我们将基可行解进行改造,让这个非基变量xm+kx_{m+k}xm+k​从0增大到+∞+\infty+∞,其他非基变量的值保持0不变,不过,其他的m个基变量也因为等式约束的问题,因xm+kx_{m+k}xm+k​增大而变了,我们发现其他的m个基变量只增不减,从而仍然大于等于0。为什么?为了给大家更好理解,我们假设k=1k=1k=1,即λm+1>0\lambda_{m+1}>0λm+1​>0,根据反证法假设β1,m+1,⋯,βm,m+1\beta_{1,m+1},\cdots,\beta_{m,m+1}β1,m+1​,⋯,βm,m+1​全小于等于0。又,我们只改造了xm+1x_{m+1}xm+1​这个非基变量,其他非基变量仍然为0,所以等式约束变成了下面这样。

我们增大xm+1x_{m+1}xm+1​,又前面的系数全小于等于0,那么基变量xix_ixi​当然只增不减了。

即,这个被改造的解(a1,⋯,am,+∞,0,⋯,0)(a_1,\cdots,a_m,+\infty,0,\cdots,0)(a1​,⋯,am​,+∞,0,⋯,0)仍然是可行解,我们代入到目标函数中,看看值是多少。由于λm+k>0\lambda_{m+k}>0λm+k​>0,xm+k−>+∞x_{m+k}\quad -> +\inftyxm+k​−>+∞所以λm+kxm+k−>+∞\lambda_{m+k}x_{m+k} \quad ->+\inftyλm+k​xm+k​−>+∞,那么代入目标函数值,此时为f0−+∞+0=−∞f_0-+\infty +0 =-\inftyf0​−+∞+0=−∞。发现这个线性规划没有最优解,可以为负无穷,与定理中的条件有最优解矛盾,从而反证法中的假设不成立,即:xm+kx_{m+k}xm+k​对应的对应的系数β1,m+k,⋯,βm,m+k\beta_{1,m+k},\cdots,\beta_{m,m+k}β1,m+k​,⋯,βm,m+k​至少有一个大于0。

证毕。

还是要说的是,上面这个引理并没有指明遇到这种情况的时候,怎么找最优解。所以给出定理3。


定理3: \quad如果上述用到的基B是一个非退化的可行基(即对应的基可行解是非退化的),而且存在一个检验数λm+k>0\lambda_{m+k}>0λm+k​>0,而且xm+kx_{m+k}xm+k​对应的对应的系数β1,m+k,⋯,βm,m+k\beta_{1,m+k},\cdots,\beta_{m,m+k}β1,m+k​,⋯,βm,m+k​至少有一个大于0。那么一定存在另外一个非退化的可行基,它对应的基可行解比当前的基可行解得到的目标函数值小,即更优。

证明:\quad有了引理2,这个较容易证明。根据定理中的条件,我们假设检验数λm+1>0,β1,m+1>0\lambda_{m+1}>0,\beta_{1,m+1}>0λm+1​>0,β1,m+1​>0,我们依然是采用上面构造一个新的可行解的思想。不过这次我们不敢让xm+1x_{m+1}xm+1​增大到无穷大了,因为:

如果增大到无穷大,又由于β1,m+1>0\beta_{1,m+1}>0β1,m+1​>0,那么x1x_1x1​必然无穷小。从而不满足可行解的要求。所以我们出于减小目标函数值得目的,我们当然会适当的增大xm+1=θ>0x_{m+1}=\theta>0xm+1​=θ>0,使得其刚好满足等式x1=0=α1−β1,m+1θx_1=0=\alpha_1-\beta_{1,m+1}\thetax1​=0=α1​−β1,m+1​θ,这个时候我们改造成了可行解为(0,a2,⋯,am,θ,0,⋯,0)(0,a_2,\cdots,a_m,\theta,0,\cdots,0)(0,a2​,⋯,am​,θ,0,⋯,0),代入目标函数值,发现其为f0−λm+1xm+1=f0−λm+1θ<f0f_0 -\lambda_{m+1} x_{m+1}=f_0-\lambda_{m+1}\theta<f_0f0​−λm+1​xm+1​=f0​−λm+1​θ<f0​,真的更优了!根据上一篇的补充,我们发现后面得到那个解是通过原来的基可行解相邻操作而来,从而后面那个解也是基可行解。相邻操作就是将x1=0x_1=0x1​=0变成了“出”基变量,变成了非基变量,xm+1x_{m+1}xm+1​变成了“入”基变量,成为了新的基变量,而且这个解也是非退化的基可行解!


细心的你会想,我上面假设只有一个检验数大于0,也只假设了检验数对应的这个非基变量对应的众多系数中的一个β\betaβ大于0,如果有多个怎么办?

  1. 我们先考虑有多个β>0\beta>0β>0,检验数仍然只有一个大于0的情况。我们还是采用之前的技巧,假设是前两个β>0\beta>0β>0,如下面的图,(其他的x3x_3x3​为什么不管?因为那一行的β<=0\beta<=0β<=0,那么无论xm+1x_{m+1}xm+1​怎么增大,x3x_3x3​都会满足x3>=0x_3>=0x3​>=0,满足解的可行性,这个前面引理2分析过了。)。那么我们发现xm+1x_{m+1}xm+1​仍然不能无限增大,否则x1,x2x_1,x_2x1​,x2​都有可能变得小于0,从而我们怎么办?当然是看x1,x2x_1,x_2x1​,x2​随着xm+1x_{m+1}xm+1​增大的过程谁先为0喽,一旦有一个为0,立马停止,记录这个时候的xm+1x_{m+1}xm+1​为其最终的值θ′\theta^{'}θ′,如果x1x_1x1​为0,那么新的基可行解就出来了(0,a2,⋯,am,θ′,0)(0,a_2,\cdots,a_m,\theta^{'},0)(0,a2​,⋯,am​,θ′,0),如果x2x_2x2​为0,新的基可行解就是(a1,0,⋯,am,θ′,0)(a_1,0,\cdots,a_m,\theta^{'},0)(a1​,0,⋯,am​,θ′,0)。
  2. 我们再考虑有多个检验数大于0,各自对应系数中有多个β>0\beta>0β>0的情况,这个时候就真的比较麻烦了。因为多个非基变量都想增大到无穷大,但是又因为他们对应的系数中有些β>0\beta>0β>0,所以有所顾忌。这个是很麻烦的一件事,因为好几个非基变量都想增加,所以你让他们几个各自增加多少呢?你根本不知道,谁增加多一些,谁增加少一些会让最终目标函数最优。所以我们采取的策略,仍然是前面的相邻原则,即一次只换出一个基变量,换入一个非基变量,而不是像现在这样,有大换血的可能,因为可能会有好几个基变量为0。至于到底换入哪一个非基变量,(假设前两个检验数大于0)就先看看换入xm+1x_{m+1}xm+1​,保持xm+2=0x_{m+2}=0xm+2​=0(变成了前面1中的情况,相当于只有一个检验数大于0),其对应的目标函数值是多少,然后看看换入xm+2x_{m+2}xm+2​,保持xm+1=0x_{m+1}=0xm+1​=0,查看其对应的目标函数值,比一下,如果1好,就换入xm+1x_{m+1}xm+1​,其他依次类推。总之,采取一次只换入一个的策略,不就和情况1一样了吗,最后再比一下,决定最终换入谁。那么就简单了。


情况1中的图

证毕。

即:我们可以将原线性规划的基更换为这个新的可行基,然后化成典式,回到定理1,查看检验数是不是全部小于等于0,如果是,那么这个新基对应的基可行解就是最优解,否则,根据定理3,继续出基变量,入新基变量,得到更优的基变量,即更优的基。

总结

从而得到单纯形法的基本原理,使用流程图表示如下:

单纯形法(四)理论部分(终结)相关推荐

  1. 科目一科目四理论考试助手藏文驾考藏语版

    藏文理论驾考宝典 科目一四驾驶证学车驾照考试题库软件APP 2020年藏文版驾驶考试模拟App(带语音), 主要服务于广大藏区的藏文驾驶理论考试学员. 本软件有注意事项.科目一理论练习.科目四理论练习 ...

  2. 【运筹学】单纯形法的理论推导和定理证明

    文章目录 1.前期理论推导,获得Fai 2.根据fai,证明三大定理(这些定理是单纯表法的理论依据) 定理1--最优解 定理2--当...LP问题无界 定理3--当...存在最优解 1.前期理论推导, ...

  3. 单纯形法Python实现

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一.单纯形法理论基础 二.Python代码实现 1.循环求解 2.最优性检验 3.结果输出 4.完整代码 前言 本文代码参 ...

  4. 系统化交易与量化交易理论与书籍

    股市交易必读书籍: [美]彼得·林奇(Peter Lynch) 约翰·罗瑟查尔德 <彼得·林奇的成功投资(典藏版)>,机械工业出版社,2018年05月 [美]史蒂夫·尼森(Steve Ni ...

  5. 计算机ms高级应用科目一 科目二考什么,驾考提前知 | 科目一、科目二、科目三、科目四都考什么?...

    原标题:驾考提前知 | 科目一.科目二.科目三.科目四都考什么? 科目一 考试内容:驾驶基本理论.道路安全法律法规.交通信号.通行规则等最基本的知识,再加地方性法规.除了记忆之外,灵活掌握规律也很重要 ...

  6. 手动挡科目三道路驾驶技能考试及理论考试要点

    路线 每个驾校的科目三路线可能都不一样,但是考点基本差不多.我当时选的驾校是北京公交驾校,路线图如下: 考试要点 在考试大厅等待叫号,一般大屏都会公布xxx学员找xx号车考试,这边白色车是手动挡,灰色 ...

  7. 计算机四新知识考试题库答案,科目四题库一共多少题

    科目四题库一共多少题 科目四,又称科目四理论考试.驾驶员理论考试,是机动车驾驶证考核的一部分.下面是小编为大家带来的.关于科目四题库一共多少题的知识,欢迎阅读. 科目四新增194道题,从900道题更新 ...

  8. 如何应用TRIZ理论解决问题呢?

    一.TRIZ解决发明技术问题的方法 如何应用TRIZ理论解决问题呢?首先,要对一个实际问题进行细致地分析和准确地定义:然后,依照TRIZ理论提供的方法,把需要解决的实际问题归纳为一个类似的TRIZ标准 ...

  9. 关于大数据,需要你读懂的10个小故事

    自2011年以来,大数据旋风以"迅雷不及掩耳之势"席卷中国.毋庸置疑,大数据已然成为继云计算.物联网之后新一轮的技术变革热潮,不仅是信息领域,经济.政治.社会等诸多领域都" ...

  10. 大数据陷阱:需要读懂的10个小故事

    自2011年以来,大数据旋风以"迅雷不及掩耳之势"席卷中国.毋庸置疑,大数据已然成为继云计算.物联网之后新一轮的技术变革热潮,不仅是信息领域,经济.政治.社会等诸多领域都" ...

最新文章

  1. java fx配置_JavaFX系列-配置开发环境
  2. 阿里云地图添加点线面
  3. 如何应付表数据过大的查询问题?(如何尽量避免大表关联)[转]
  4. php接口返回错误码,laravel 错误处理,接口错误返回json代码
  5. 差点就被联通客服给营销了...
  6. html根据菜单角色配置菜单代码,CSS设置列表样式和创建导航菜单实现代码
  7. iOS项目的命名规范
  8. 控制用户创建课程权限
  9. 分享Silverlight/WPF/Windows Phone一周学习导读(10月22日-10月29日)
  10. 手写vue日历控件过程
  11. java 坐标反算_Java实现坐标反算方位角
  12. 【EXLIBRIS】纸版书目整理 -- 增补至2008年春节【36 种】【36 册】
  13. 【已解决】Mac每次重启,谷歌Chrome都会丢失所有的扩展程序/extensions/插件
  14. PHP上传Excel文件
  15. iOS13.3如何越狱 checkra1n越狱工具0.9.7beta如何使用
  16. PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
  17. 手机上的浏览器有几种内核
  18. ThingsBoard IOT Gateway
  19. 用dos命令行执行java程序的方法
  20. 服务器esxi虚拟机升级,ESXi 服务器安装升级补丁

热门文章

  1. 图灵五周年生日聚会圆满成功,多家媒体对此进行报道
  2. warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;使用 /NODEFAULTLIB:library问题解决方法
  3. 独家 | 6种让Python程序变慢的坏习惯
  4. 用 AI 分析蒙娜丽莎的微笑,情绪分析认为她没那么高兴
  5. 终于有人把云计算、物联网和大数据讲明白了
  6. 老友记即将回归!用数据来重温经典剧情:老友记里到底说了多少次Oh my God?...
  7. 独家 | 教你用卷积神经网络对视觉神经元进行建模(附资源)
  8. 付睿:对新事物的追寻之旅 | 优秀毕业生专访
  9. 教你用R语言分析招聘数据,求职/转行不求人~(附代码、数据集)
  10. 超越EfficientNet!MutualNet:一种自适应相互学习网络宽度和分辨率的网络