运筹学笔记12 大M法
引入M,其中M是一个充分大的正数。由此,目标函数也改变为zM.
如此构造的线性规划问题我们记作LPM,称之为辅助线性规划问题,也即在原来的线性规划问题的基础上,改造了其等式约束条件,然后有对目标函数施加了惩罚项,Mx4,Mx5。
因为M是充分大的正数,所以即便x4,x5很小,只要x4,x5不等于0,这个惩罚项也也会很大的;一旦大M趋于正无穷,那么Mx4,Mx5一块就是正无穷了;而前面的各变量及其系数
的组合也是有限的量;根据一个有限的量加上一个无穷大量结果是无穷大量定理;那么目标函数就是趋于无穷大量,怎么还会取得最小值呢?∴大M叫做惩罚项是有道理的,而且
在理想的状态下,一旦x4,x5取值为零,那么目标函数中就再也没有惩罚项了,目标函数也就有zM还原为z了,同时约束条件x4,x5也就消失了,因为二者此时为零;
这样也就实现了有LPM向原线性规划问题的还原。所以大M法,首先引入大M惩罚项,对人为引入的人工变量施加惩罚,最佳的状态就是把引入的人工变量都惩罚为0,这样不仅等式约束条件没被破坏,目标函数也还原为原来的目标函数了。如果做不到这一步,就说明有些约束条件原来就不可能相等。
我们构造辅助线性规划问题后可看到已经有x4,x5系数组成的单位矩阵了,我们把它取作初始可行基。
进而可以写出典式的等价形式(把基变量和目标函数都用非基变量表示)如下:
进而做出单纯形表:
有了单纯形表,进一步讨论三种情形。
情形1:是否全部的检验数都<=0;很显然此题不是;1肯定是>0的,另外M是充分大的正数所以3M+3,3M+5也都是>=0的。
情形2:正的检验数上面没有正的,才是第二种情况;此题不符合;
显然是第三种情况了,选定枢轴列->元,然后转轴。
上图得到了辅助线性规划问题的最优解和最优值,但须注意,在辅助线性规划问题中,我们引入了两个人工变量的值,x4,x5,
也可发现在LPM的最优解中两个变量都已经为0了。也即是说,辅助线性规划的人工变量都已经被充分大的大M构造的惩罚项惩罚为0了,也就是说又还原为原来初始的线性规划问题了,所以据此我们就可以得到LP,即原来线性规划问题的最优解和最优值。。。
可看到上图中有一个检验数是正的,其所在列上面的值都是<=0,所以是第二种情形,所以LPM无下届。
而之前引入的人工变量x5对应的取值为1,并没有被惩罚为0;另一个非基变量x6作为非基变量已经被惩罚为0了;
也即,因x5=1,x6=0,故原线性规划问题不可行。
练习:
运筹学笔记12 大M法的更多相关文章
- SQL反模式学习笔记12 存储图片或其他多媒体大文件
目标:存储图片或其他多媒体大文件 反模式:图片存储在数据库外的文件系统中,数据库表中存储文件的对应的路径和名称. 缺点: 1.文件不支持Delete操作.使用SQL语句删除一条记录时,对应的文 ...
- 大M法(Big M Method)
前面一篇讲的单纯形方法的实现,但程序输入的必须是已经有初始基本可行解的单纯形表. 但实际问题中很少有现成的基本可行解,比如以下这个问题: min f(x) = –3x1 +x2 + x3 s.t. x ...
- 机器学习实战 - 读书笔记(12) - 使用FP-growth算法来高效发现频繁项集
前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第12章 - 使用FP-growth算法来高效发现频繁项集. 基本概念 FP-growt ...
- JAVA自学笔记12
JAVA自学笔记12 1.Scanner 1)JDK5后用于获取用户的键盘输入 2)构造方法:public Scanner(InputStream source) 3)System.in 标准的输入流 ...
- 大津法---OTSU算法
简介: 大津法(OTSU)是一种确定图像二值化分割阈值的算法,由日本学者大津于1979年提出.从大津法的原理上来讲,该方法又称作最大类间方差法,因为按照大津法求得的阈值进行图像二值化分割后,前景与背景 ...
- 自适应阈值分割—大津法(OTSU算法)C++实现
大津法是一种图像灰度自适应的阈值分割算法,是1979年由日本学者大津提出,并由他的名字命名的.大津法按照图像上灰度值的分布,将图像分成背景和前景两部分看待,前景就是我们要按照阈值分割出来的部分.背景和 ...
- matlab学习笔记12单元数组和元胞数组 cell,celldisp,iscell,isa,deal,cellfun,num2cell,size
一起来学matlab-matlab学习笔记12 12_1 单元数组和元胞数组 cell array --cell,celldisp,iscell,isa,deal,cellfun,num2cell,s ...
- Ext.Net学习笔记12:Ext.Net GridPanel Filter用法
Ext.Net学习笔记12:Ext.Net GridPanel Filter用法 Ext.Net GridPanel的用法在上一篇中已经介绍过,这篇笔记讲介绍Filter的用法. Filter是用来过 ...
- 自适应阈值二值化之最大类间方差法(大津法,OTSU)
最大类间方差法是由日本学者大津(Nobuyuki Otsu)于1979年提出的,是一种自适应的阈值确定的方法,又叫大津法,简称OTSU.它是按图像的灰度特性,将图像分成背景和目标2部分.背景和目标之间 ...
随机推荐
- 【c++】容器的基本操作
操作\容器 vector list string set stack queue map 插入 push_bcak().insert() push_back() .push_front().inser ...
- 技术管理进阶——什么Leader值得追随?
原创不易,求分享.求一键三连 Leader眼里的主动性 前几天孙狗下面小A身上发生了一件Case,让他感到很疑惑: 有一个跨部门较多的项目推进不力,于是善于交流的他被临时提拔成项目负责人,但马上令人 ...
- Jenkins+gitlab手动部署
环境: Jenkins:172.16.88.221 (安装Jenkins和git命令) gitlab:172.16.88.221 (安装gitlab) 远程部署机器:172.16.88.220 (安装 ...
- mosquitto使用与常用配置
为了方便演示,我这里就用windows环境下安装的mosquitto进行操作,操作方式和linux系统下是一样的. 一.windows安装mosquitto 下载mosquitto mosquitto ...
- 1.Markdown语法
Markdown学习 一.标题:(# +标题名字) 标题 三级标题 四级标题 二.字体 (空格内容前后的空格删掉) Hello,World! **粗体** Hello,World! *斜体* Hell ...
- 阶段性总结linux(1)
学习安装linux系统 [网络连接方式] 桥接 ,好比所有人都在25期教室,公用这个教室的局域网段 192.168.11.0~192.168.11.255 教室内有60个同学,插上了网线,所有人都是 ...
- K8S+Jenkins自动化构建微服务项目(后续)
因为之前写过基于K8S部署jenkins master/slave平台,在这个的基础上构建微服务到K8S集群中 Jenkins-slave构建微服务项目到K8S集群 1.微服务项目上传到git仓库 这 ...
- 【转】python代码优化常见技巧
https://blog.csdn.net/egefcxzo3ha1x4/article/details/97844631
- [洛谷] P2241 统计方形(数据加强版)
点击查看代码 #include<bits/stdc++.h> using namespace std; long long n, m, total, sum1, sum2; int mai ...
- STM8S103F3P6 开发环境笔记
STM8S103F3 产品手册 https://www.st.com/resource/en/datasheet/stm8s103f2.pdf 内核 16 MHz advanced STM8 core ...