(一)4.线性规划 之 单纯形法的原理 解题

单纯形法是很关键很重要的解题方法,每每考研都会考到,我们详细学习他的解题方法


1.无人工变量


步骤

1.将给定线性规划问题转化成标准式
2.依照标准型画出单纯形表(找出初始基和初始基变量)因为我们先看最基本的无人工变量的情况,所以
	很简单
3.按表格求出 sigama和 sita ,找到要换的变量,进行迭代
4.解的判别定理 

这一章想要真正学好,死记步骤是没有效果的,我们需要联系前一篇博客:单纯形法的原理来理解每一个步骤的原因,尤其是迭代过程。

我们先给出单纯形表的结构:
在这里插入图片描述
理解:
1.第一列到第三列,分别是可行基变量的系数,可行基变量以及 b (约束方程等号右边的数字)
2.第一行和第二行是所有的变量以及目标函数变量的系数
3.中间那一大块是系数矩阵
4.最后一行是sigama

1.拿到题目,如果是不需要人工变量的题目,就可以填写好表格了
	需要计算的数,每一列最下面的sigma =  ci - ∑cj×那一列的系数矩阵  
				  每一行最后面的 sita =每一行 b/ sigma最大的那一列的系数  sita = b/aij
2基变换:选取 sigma最大的那一列,计算出 sita后选取sita最小的那一行,看他在行首对应的可行
	基变量,例如为 xa,而sigam最大的那一列的列首 对应的变量,例如是xb,则基变换就是xa和xb
	互换
	细节:如果矩阵系数为0或负数,则sita不需要计算,一定不是这一行(前面说的,aij<=0时,恒成立)
		因为 aij <= x(0)/sita 
3.通过线性代数初等行变换,将要变换的x换成原来的x 的系数
	注意:b作为增广矩阵的一部分,也要参与行变换
		  换系数之后需要把第一列的系数也换成新变量的对应系数
4.根据判别定理,继续迭代或者得到答案,有正数就需要继续迭代
	注意:写答案需要按照 1 2 3 ...的顺序写,对于解出来的可行基可能不按顺序,要重新排列
		  写答案同时需要写出目标函数,计算 用∑第一列×第三列 对应的项

这么说大家应该都不懂,我也是根据题目总结的这些,所以上例题大家就能理解了

在这里插入图片描述

解的判别中,无界解和无穷多解需要牢记

1.所有非基变量(就是除去基变量的变量)< = 0,且有一个 非基变量的sigama = 0,则无穷多解
2.有一个非基变量的sigama > 0 ,对应的系数<= 0,则无界解

不需要人工变量的题还是很简单的,这是考试基本上不会考的送分题,我们肯定要会,不然后面的需要人工变量的题目是肯定不会做的


2.有人工变量

有人工变量的时候有两种办法:
1.大M法
2.两阶段法

我个人感觉这两个办法的基础其实还是在上面说的迭代法,不过是针对一般情况提出的解题办法罢了


1.大M法.

所谓的大M法,就是在问题给出的限制条件是 大于或者等于的时候,无法通过上述无人工变量法直接通过 加松弛变量 获得基变量,这里我们就需要添加人工变量了

(强调:M为任意大的正数)

这个时候我们的目标函数,就需要在式子最后 减去我们的 M×人工变量,这就意味着只要人工变量大于0,目标函数就不可能最优(因为目标函数的标准型是 max,减去大于0的数自然就不可能最大了)

这就意味着我们得到的单纯形法的解必须是满足,人工变量为0,否则就无可行解

下面看一个例题(单纯形表打出来很麻烦,手写了,凑合看吧)
在这里插入图片描述
2.两阶段法

从上面的大M法貌似可以求出所有此类线性规划问题的解了,那为什么我们还需要引入两阶段法呢?

问题就出在M上,因为M的定义是一个任意大的值,在我们计算机中只能给一个具体值,例如999999,而在我们的问题很庞大的时候,有可能某些变量的系数就会接近这个M的值,这样一来我们在比较 sigama 大小的时候计算机可能就会出错,从而引起巨大的误差,所以我们这里要引出 两阶段法

两阶段法
1.求解 min{人工变量之和},必须要等于0,表示有可行解
2.按照题目要求的目标函数 求出最优解

最小化的话,单纯形法中 检验数sigma 不再是取最大直到没有大于0的项,而是取最小,直到没有小于0的项。与max相反
在这里插入图片描述
这个图一般我们说的sigama是第一行的,第二行很少会用

下面看同一道例题用二阶段法求解

如果第一阶段无法得到min = 0,说明无可行解
在这里插入图片描述

下面说一下勃兰特规则:

1.检验数sigama相同,取下标小的迭代
2.最小比值sita 相同,取下标小的迭代(不是按从上往下顺序)

单纯形法解题到这里基本上全部覆盖

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值