引入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法的更多相关文章

  1. SQL反模式学习笔记12 存储图片或其他多媒体大文件

    目标:存储图片或其他多媒体大文件 反模式:图片存储在数据库外的文件系统中,数据库表中存储文件的对应的路径和名称. 缺点:     1.文件不支持Delete操作.使用SQL语句删除一条记录时,对应的文 ...

  2. 大M法(Big M Method)

    前面一篇讲的单纯形方法的实现,但程序输入的必须是已经有初始基本可行解的单纯形表. 但实际问题中很少有现成的基本可行解,比如以下这个问题: min f(x) = –3x1 +x2 + x3 s.t. x ...

  3. 机器学习实战 - 读书笔记(12) - 使用FP-growth算法来高效发现频繁项集

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第12章 - 使用FP-growth算法来高效发现频繁项集. 基本概念 FP-growt ...

  4. JAVA自学笔记12

    JAVA自学笔记12 1.Scanner 1)JDK5后用于获取用户的键盘输入 2)构造方法:public Scanner(InputStream source) 3)System.in 标准的输入流 ...

  5. 大津法---OTSU算法

    简介: 大津法(OTSU)是一种确定图像二值化分割阈值的算法,由日本学者大津于1979年提出.从大津法的原理上来讲,该方法又称作最大类间方差法,因为按照大津法求得的阈值进行图像二值化分割后,前景与背景 ...

  6. 自适应阈值分割—大津法(OTSU算法)C++实现

    大津法是一种图像灰度自适应的阈值分割算法,是1979年由日本学者大津提出,并由他的名字命名的.大津法按照图像上灰度值的分布,将图像分成背景和前景两部分看待,前景就是我们要按照阈值分割出来的部分.背景和 ...

  7. 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 ...

  8. Ext.Net学习笔记12:Ext.Net GridPanel Filter用法

    Ext.Net学习笔记12:Ext.Net GridPanel Filter用法 Ext.Net GridPanel的用法在上一篇中已经介绍过,这篇笔记讲介绍Filter的用法. Filter是用来过 ...

  9. 自适应阈值二值化之最大类间方差法(大津法,OTSU)

    最大类间方差法是由日本学者大津(Nobuyuki Otsu)于1979年提出的,是一种自适应的阈值确定的方法,又叫大津法,简称OTSU.它是按图像的灰度特性,将图像分成背景和目标2部分.背景和目标之间 ...

随机推荐

  1. Jackson 和 fastJSON 导包异常

    内容 一.异常信息 HTTP Status 400 - type Status report message org.springframework.http.converter.HttpMessag ...

  2. Django实现统一包装接口返回值数据格式

    前言 最近实在太忙了,开始了一个新的项目,为了快速形成产品,我选择了Django来实现后端,然后又拿起了之前我封装了项目脚手架「DjangoStarter」. 由于前段时间我写了不少.NetCore的 ...

  3. JAVASE While 计算累加实例

    package com.huang.boke.flowPath;public class While { public static void main(String[] args) { int i= ...

  4. JAVASE If 单选择、双选择及镶嵌笔记

    //单选package com.huang.boke.flowPath;import java.util.Scanner;public class test02 { public static voi ...

  5. Blazor 国际化多语言界面 (I18nText )

    在实际使用中,我们经常会遇到需要把程序界面多种语言切换,适应不同地区使用者的需求,本文介绍一个我初学Blazor接触到的库,边撸边讲解. 包名: Toolbelt.Blazor.I18nText ht ...

  6. OllyDbg---call和ret指令

    call和ret call指令 cal指令是转移到指定的子程序处,后面紧跟的操作数就是给定的地址. 例如,call 401362表示转移到地址401362处,调用401362处的子程序,当子程序调用完 ...

  7. JavaSSM-总结

    Spring框架技术 SSM(Spring+SpringMVC+Mybatis)阶段的学习,也算是成功出了Java新手村. 前面我们已经学习过Mybatis了. 从这里开始,很多的概念理解起来就稍微有 ...

  8. 检查oracle是否是rac

    采样rac集群 [root@shfpdb02 disks]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.4 ( ...

  9. 数据库基础知识详解三:MVCC、范式以及表连接方式

    写在文章前:本系列文章用于博主自己归纳复习一些基础知识,同时也分享给可能需要的人,因为水平有限,肯定存在诸多不足以及技术性错误,请大佬们及时指正. 8.MVCC 多版本并发控制(Multi-Versi ...

  10. C#+Access 员工信息管理--简单的增删改查操作和.ini配置文件的读写操作。

    1.本程序的使用的语言是C#,数据库是Access2003.主要是对员工信息进行简单的增删改查操作和对.ini配置文件的读写操作. 2.代码运行效果如下: 功能比较简单.其中在得到查询结果后,在查询结 ...