当前位置首页 > 百科> 正文

匈牙利法

2019-10-05 04:00:57 百科
匈牙利法

匈牙利法

匈牙利法是一件大的事物若除去一件小的事物,对这件事没有多大影响。1955年,库恩(W.W.Kuhn)利用匈牙利数学家康尼格(D.Konig)的关于矩阵中独立“0”元素的定理,提出了求解指派问题的一种方法,习惯上称之为匈牙利法。

基本介绍

  • 中文名:匈牙利法
  • 外文名:Hungarian method
  • 所属领域:运筹学
  • 提出时间:1955年
  • 提出人:库恩
  • 套用:求解指派问题

理论基础

(1)若从效率矩阵(cij)的行(或列)的各元素中分别减去该行(或列)的最小元素后得到一个新矩阵(bij),则以(bij)为效率矩阵的指派问题与原问题有相同的最优解。
经过上述变换后,(bij)中的每行和每列都至少含有一个0元素,称位于不同行不同列的0元素为独立的0元素。
(2)若(bij)有n个独立的0元素,由此可得一个解矩阵,方法为在X中令对应于(bij)的0元素位置的元素为1,其它位置的元素为0,则X为指派问题的最优解。
(3)矩阵中独立0元素的最多个数等于能覆盖所有0元素的最少直线数。

算法步骤

匈牙利法的算法步骤如下:
(1)对指派问题的係数矩阵进行变换,使每行每列至少有一个元素为“0”.
①让係数矩阵的每行元素去减去该行的最小元素;
②再让係数矩阵的每列元素减去该列的最小元素。
(2)从第一行开始,若该行只有一个零元素,就对这个零元素加括弧,对加括弧的零元素所在的列画一条线覆盖该列,若该行没有零元素或者有两个以上零元素(已划去的不算在内),则转下一行,依次进行到最后一行。
(3)从第一列开始,若该列只有一个零元素。就对这个零元素加括弧(同样不、考虑已划去的零元素)。再对加括弧的零元素所在行画一条直线覆盖该列。若该列没有零元素或有两个以上零元素,则转下一列,依次进行到最后一列为止。
(4)重複上述步骤(1)和(2)可能出现3种情况:
①效率矩阵每行都有加括弧的零元素,只要对应这些元素令
就找到了最优解。
②加括弧的零元素个数少于m,但未被划去的零元素之间存在闭迴路,这时顺着闭迴路的走向,对每个间隔的零元素加一个括弧,然后对所有加括弧的零元素所在行(或列)画一条直线,同样得到最优解。
③矩阵中所有零元素或被划去,或加上括弧.但加括弧的零元素少于m,这时转入(5).
(5)按定理进行如下变换:
①从矩阵未被直线覆盖的数字中找出一个最小的k;
②当矩阵中的第i行有直线覆盖时,令
;无直线覆盖时。令
③当矩阵中的第j列有直线覆盖时,令
;无直线覆盖时,令
④令原矩阵的每个元素
分别减去
(6)回到(2),反覆进行,直到矩阵的每一行都有一个加括弧的零元素为止。即找到最优分配方案。
在实际的任务分配中,还可能出现人员(或设备)数与任务数不相等的情况,而且要求每个人员只先完成一件任务(在人员数少于任务数时),或者有些人员可暂不安排任务(在人员数多余任务数时),可称这样的问题为不平衡的指派问题,此时,可通过虚拟人员或虚拟任务使之转化为一般(平衡)的指派问题,即在原矩阵中增加一些行或者列,使之成为方阵,在极小型问题中所增加的元素应充分的大,如为原矩阵中最大的元素的值,而在极大型问题中增加的元素应足够的小。如可取零值。

套用

在实际中经常会遇到这样的问题,某单位需要完成n项任务,恰好有n个人可以承担这些任务。由于每个人的专长不同。同一件工作由不同的人去完成,效率(例如所花的时间或费用)是不同的,于是就会出现应分配哪个人去完成哪项任务,使完成这几项任务的总效率最高(例如总时间最省、总费用最少等).这类问题称为分配问题,又称为指派问题。
匈牙利法是最优利用生产资源,计算、调整最优分配方案变数的经营分析方法。其目的和衡量标準是在对资源、材料分配中的已知数据作变换处理的基础上,提出所求取的目标对象(被测算的产品资源)的最优分配方案,它们的机会成本最小。即以未被採用的方案所造成的损失来衡量、评价被选择方案的假定成本为零值方式,论证分配方案的最最佳化程度。其特点是在求解最优分配方案时,要求满足约束条件前提下,产品加工的机会成本为零,由此使得总的加工成本为最低,并验证方案变数的最优解和调整的幅度、限度。
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net