管理运筹学——匈牙利法

  • 格式:doc
  • 大小:12.50 KB
  • 文档页数:1

下载文档原格式

  / 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一步:效率矩阵的初始变换----零元素的获得

(1)行变换:找出每行的最小元素,该行各元素减去这个最小元素。

(2)列变换:找出每列的最小元素,该列各元素减去这个最小元素。

经变换后的效率矩阵,其每行、每列至少有一个零元素。

第二步:最优性检验

检查能否找到m个位于不同行、不同列的零元素,即检查覆盖所有零元素的直线是否为m条

(1)逐行检查:从第一行开始,如果该行只有一个零元素,就在这个

零元素上打上括号,并划去打括号零元素同列的其他零元素。

如果该行没有零元素,或有两个或多个零元素(已划去的不记在

内),则转下行

(2)逐列检查:依照行检查的方法从第一列开始逐列检查。

最优性检验后可能可能出现的情况

①每行都有一个零元素标有括号,显然这些括号零在不同行

和不同列,因此得到最优解。

②每行、每列都有两个或更多的零,这是从剩有零元素最少的

行开始,比较这行各零元素所在列中零元素的个数,选择零

元素少的那列的这个零元素打括号,划掉同行同列的其他零

元素,然后重复以上步骤,直到所有零都做了标记。

③矩阵中所有零都做了标记,但标有()的零元素个数少于

m,此时就可以找出能覆盖矩阵中所有零元素的最少直线的

集合。

步骤如下:

步骤如下:

对无()的行打√

对打√行上所有零元素的列打√

在打√的列上有()的行打√

重复步骤,直到过程结束

对没有打√的行划横线,对所有打√的列划垂线,这时得

到覆盖矩阵中所有零的最少直线数

第三步:非最优阵的变换——零元素的移动

当表中的覆盖所有零的直线数小于m时,得到的不是最优解,因此需要对表中矩阵进一步进行变换,过程如下:

①在未被直线覆盖的所有元素中找出最小元素

②所有未被直线覆盖的元素都减去这个最小元素

③覆盖线十字交叉处的元素都加上这个最小元素

④只有一条直线覆盖的元素的值保持不变。

由此,得到新的效率矩阵,以此更易标出m个不同的行和列的零元素。

第四步:重新标号

抹掉原来的标号,回到最优性检验,并进行重新标号,直到得到最优解7 9 10 12

13 12 16 17

15 16 14 15

11 12 15 16