匈牙利算法的描述

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

(一)、修正矩阵,使每行每列中都有零元素:

1.如果最终目标是求最大效能,那么改变所有元素的符号;

2.每行各元素都减去该行的最小元素;

3.每列各元素都减去该列的最小元素;

(二)、对矩阵进行试分配,对其中的零元素作标记:

4.对所有行和列作无标记处理;

5.从首行开始逐行处理,若该行只有一个0元素没有标记,就对该0元素标记△,并对该0同一列的0元素标记×;重复上述过程直到不能再进行标记为止;

6.从首列开始逐列处理,若该列只有一个0元素没有标记,就对该0元素标记△,并对该0同一行的其它0元素标记×;重复上述过程直到不能再进行标记为止;

7.三种情况的判断:

(1)每行都有一个△,其对应的元素就是最优解,输出△对应的元素,退出;

(2)不是每行都有△,但所有0都已标记,转8;

(3)如有多于2行或2列至少有2个没有标记的0,就对其中任一个0标△,并对同行同列的其他0标记×,转5;

(三)、作覆盖所有零元素的最少直线:

8.对无△的行作标记对号;

9.对标记对号行上的所有有0的列标记对号,无论该0标记什么;

10.对标记对号列上的所有有△的行标记对号;

11.重复9和10直到标记结束;

12.对无标记对号的行划横线,对有标记对号的行划竖线;

(四)、产生新的效能矩阵,使零元素移动:

13.在无直线覆盖的元素中找最小值d;

14.未画横线的行的所有元素减d;

15.已划竖线的列的所有元素加d;

16.转4。

相关文档
最新文档