相信我,做人力资源的都很讨厌计算题的,毕竟人力资源伙伴们大部分都是文科生,对计算天生苦手。然而,计算题在技能卷占得比分却不少啊,匈牙利法是很多小伙伴们没弄明白的一个难点,小编也是翻阅了无数资料,请教了很多高手,彻底弄明白以后,以最简单易懂的方法跟大家分享这个知识难点,答应我,看完这篇文章以后,不要再讨厌它好吗?
一、什么是匈牙利法?
是一种在多项式时间内求解任务分配问题的组合优化算法,通俗点讲,就是实现人员与工作任务配置合理化、科学化的典型方法(教材P115)
二、匈牙利法的应用
匈牙利法是一个很复杂的计算方法,运用到其他领域的算法非常复杂,但是用于人力资源领域你只需要了解如何解决公司工作任务合理分配的问题,比如公司有N个工作岗位空缺,每个岗位空缺需要有一定资格的人来填补。现在有M个人申请这N个工作。由于每个人工作能力不同,所以不同的人能胜任不同的工作。 现在己知每个人所能胜任的若干工作,求这M个人最多可以填补几个工作岗位。 每个人只能做一份工作,每个工作岗位也只需要一个人,怎样安排才能使效率最大化。
运用匈牙利法,解决员工任务合理指派问题时,应该具备两个约束条件:员工数目与任务数目相等;求解的是最小化问题,如工作时间最小化、费用最小化等。(教材P115)
三、匈牙利法的计算
应用例题:单位有甲、乙、丙、丁、戊五名员工,需要在一定的生产技术组织条件下,完成A、B、C、D、E五项任务,各员工完成每项工作所需要耗费的工作时间见下表,求解:员工与任务之间如何配置,才能保证完成工作任务的时间最短?
1、利用上表构造矩阵一,把数据提取出来。
2、对提取数据的矩阵一进行横向的行约减,每一行数据减去本行数据中的最小数,得出矩阵二。
3、检查矩阵二,如果矩阵二各行各列均有“0”,则跳过此步,否则进行纵向列约减,即每一列数据减去本列数据中的最小数,经变换得矩阵三。
4、画盖0线,画最少的线将矩阵三中的0全部覆盖住,得到矩阵四,技巧:从含0最多的行或列开始画盖0线。
5、数据转换,如果盖0线的数目等于矩阵的维数 (即为行数或列数)则直接跳到第七步,若盖0线的数目小于矩阵的维数则进行数据转换,本例属于后一种情况,应进行转换,操作步骤如下:
(1)找出未被盖0线覆盖的数中的最小值λ,例中的λ=1;
(2)将未被盖0线覆盖住的数减去λ;
(3)将盖0线交叉点的数加上λ。
6、重复第4步和第5步,直到盖0线的数目等于矩阵的维数,本例最终矩阵见矩阵六。
7、求最忧解。对N维矩阵找出不同行、不同列的N个0,每个0的位置代表一对配置关系,具体步骤:
(1)先找只含有一个0的行或列,将该行或列中的0打√;
(2)将带√的0所在列或行中的0打×;
(3)重复以上(1)和(2)至结束,如果所有行列均含有多个0,则从0数目最少的行或列中任选一个0打√。
结果如矩阵七所示,员工甲负责任务A,员工乙负责任务D,员工丙负责任务B,员工丁负责任务C,员工戊负责任务E,得出员工配置最终结果:
以上的讲述,是不是比教材上面通俗易懂多啦?关键算法部分,用红色标记好了,已经是用最简单的方式给大家分解出来了,跟着步骤一步一步来,完全没问题啦!今天的分享先到这里,以上是员工数量和任务相同时的案例,下期接着分享员工数量与任务数量不一致的匈牙利分配法,赶快收藏起来噢!
温馨提示:因考试政策、内容不断变化与调整,betway88必威官网网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!