匈牙利算法在企业员工指派问题的应用(最终版)(共27页).doc
《匈牙利算法在企业员工指派问题的应用(最终版)(共27页).doc》由会员分享,可在线阅读,更多相关《匈牙利算法在企业员工指派问题的应用(最终版)(共27页).doc(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上闽江学院本科毕业论文题 目 匈牙利算法在企业员工指派问题的应用 学生姓名 张雯 学 号 9 系 别 数学系 年 级 2008级 专 业 数学与应用数学 指导教师 林耿 职 称 讲师 完成日期 2012年4月10日 闽江学院毕业论文诚信声明书本人郑重声明:兹提交的毕业论文(设计) 匈牙利算法在企业员工指派问题的应用,是本人在指导老师 林耿 的指导下独立研究、撰写的成果;论文(设计)未剽窃、抄袭他人的学术观点、思想和成果,未篡改研究数据,论文(设计)中所引用的文字、研究成果均已在论文(设计)中以明确的方式标明;在毕业论文(设计)工作过程中,本人恪守学术规范,遵守学校有关规
2、定,依法享有和承担由此论文(设计)产生的权利和责任.声明人(签名):2012年4月10日摘要在当今社会,竞争无处不在,企业的竞争也是如此.而员工指派问题又是企业不得不面对的问题.因此,企业员工指派问题就显得非常重要了,谁能够在这方面做的好,谁就能在竞争中多一分胜算.企业员工指派问题是指企业安排若干人员去完成若干项任务(任务和人数不一定相等),并且要求完成的效率最高.对于这一问题,匈牙利算法就是一个很好的解法.本文首先给出企业员工指派问题的数学模型,它分为两大类,一类是标准指派问题(即企业指派员工数与任务数相等),另一类是非标准指派问题(即企业指派员工数与任务数不相等),其次,在对匈牙利算法及其
3、原理深入理解的基础上,利用匈牙利算法对企业员工指派问题的数学模型进行求解.其中,用标准的匈牙利算法求解标准的指派问题,对于非标准的指派问题,先把它进行适当的变换,然后用标准的匈牙利算法求解.再次,讲述了匈牙利算法的一些缺点及其改进,把匈牙利算法用C语言表示出来,并把它运用到实际的企业员工指派问题当中.最后,讲述了匈牙利算法的应用推广.关键词:匈牙利算法;员工指派问题;运筹学;效益矩阵Abstract In modern society, competition exists everywhere, so does the competition among enterprises. Staff
4、 assignment is of great importance to enterprises. Those who do well in it will get more chances to win in the competition. Enterprise staff assignment is that enterprises assign a number of employees to accomplish some tasks in high efficiency ( The number of tasks is not necessarily equivalent to
5、that of assigned staff ).To solve this problem, the hungary algorithm is the best choice. In this thesis, the author firstly illustrates the enterprise staff assignment, which includes normal assignment problem and abnormal assignment problem. Secondly, the author solves the enterprise staff assignm
6、ent with the hungary algorithm in two ways: one is normal hungary algorithm used to solve the normal assignment problem, the other is abnormal hungary algorithm used to solve the abnormal assignment problem. Thirdly, the author points out some defects and offers some improvements of the hungary algo
7、rithm, and write it in C language. At last, the author gives some examples of the application of the hungary algorithm.Key words:hungary algorithm ;staff assignment problem; Operations Research; profit matrix目 录专心-专注-专业匈牙利算法在企业员工指派问题的应用张雯(闽江学院 数学系;福建 福州 )1. 引言当今社会,人力资源规划在企业人力资源管理活动中具有重要的地位和作用.人力资源规划
8、是指为实施企业的发展战略,完成企业的生产经营目标,根据企业内外环境和条件的变化,运用科学的方法,使企业的人力资源和需求达到平衡,实现人力资源的合理配置,有效激励员工的过程.而企业员工指派问题在人力资源规划中又是必不可少的,为了使人力资源管理的“大才大用,小才小用,人尽其才,岗得其人,能位匹配”的基本原则得以实现.因此,企业员工指派问题就显得很重要了,而匈牙利算法就是求解人员与工作任务配置合理化、科学化的一个好方法.“匈牙利算法”最早是由匈牙利数学家考尼格(D.Koning)用来求矩阵中0元素的个数的一种方法,由此他证明了“矩阵中独立0元素的最多个数等于能覆盖所有0元素的最少直线数”.1955年
9、由库恩(W.W.Kuhn)在求解著名的指派问题时引用了这一结论,并对具体算法做了改进,仍然称为“匈牙利算法”.解指派问题的匈牙利算法是从这样一个明显的事实出发的:如果效率矩阵的所有元素,而其中存在一组位于不同行不同列的零元素,则只要令对应于这些零元素位置的,其余的,则就是问题的最优解.2.指派问题的数学模型2.1 指派问题从运筹学中,我们知道工作中常遇到这样的问题:有项任务需要个人来承担,每个人都能完成其中的每项任务,只是由于每个人的特点与专长不同,每个人完成各项任务所需的时间、费用或所产生的效益各不相同,又因为任务性质的要求和管理上的需要等原因,每项任务只能由一个人来完成,每个人也只能承担其
10、中的一项任务.问应指派哪个人去完成哪项任务才能使完成各项任务花费的总时间最短或总费用最少,或所产生的总效益最佳.我们把这类最优匹配问题称为指派问题.2.2指派问题的数学模型 设用表示指派第人去完成第项任务时所用的时间,定义决策变量,则指派问题可转化为0-1线性规划问题: 3.匈牙利算法的基本原理及解题步骤3.1 匈牙利算法的基本原理简要地讲,求指派问题的最优解就是要在阶系数方阵中找到个这样的元素:它们分布在方阵的不同行、不同列上,并且这些元素之和为最小.而要使这些元素之和为最小,就要使其中的每一个元素尽可能的小最好这些元素都是其所在行和列上的最小元素.而指派问题的最优解又有这样的性质(定理1)
11、:如果从分配问题效率矩阵的一行(列)各元素中分别减去该行(列)的最小元素,得到新的矩阵为效率矩阵求得的最优解和用原效率矩阵求得的最优解相同.由于新矩阵中每行、每列的最小元素均为“0”,因此,求原指派问题的最优解就转化为在新矩阵中找出n个分布在不同行、不同列上的“0”元素(简称为独立0元素),这些独立0元素就是新矩阵的最优解,找到新矩阵的最优解也就找到原矩阵的最优解了.要在矩阵中找到几个分布在不同行、不同列上的“0”元素,前提首先是在矩阵中确定存在几个这样的“0”元素.那么,如何判断在矩阵中是否存在n个这样的独立0元素呢?考尼格(Koning)证明了这样一个定理(定理2):“覆盖所有0元素的最少
12、直线数等于矩阵中独立0元素的最多个数.”利用这一定理,就可以通过寻找“能覆盖所有0元素的最少直线”来确定矩阵中独立0元素的具体数量。倘若矩阵中独立0元素的数量小于矩阵的阶数n,就得继续对矩阵进行化简,直到有了n个独立的0元素为止,找到这n个独立0元素也就找到了原指派问题的最优解.这就是匈牙利算法的基本思路.3.2匈牙利算法的解题步骤第一步,对耗费矩阵C进行行(或列)约减,即每一行(或列)数据减去本行(或列)数据中的最小数,得矩阵;第二步,检查矩阵,若矩阵各行各列均有“0”,则跳过此步,否则进行列(或行)约减,即每一列(或行)数据减去本列(或行)数据中的最小数,得矩阵;第三步,画盖“0”线.即画
13、最少的线将矩阵中的0全部覆盖住,得矩阵;第四步,数据转换.若“盖0”线的数目等于矩阵的维数则直接跳到第六步,若“盖0”线的数目小于矩阵的维数则进行数据转换,进行数据转换的操作步骤如下:(1)找出未被“盖0”线覆盖的数中的最小值 (2)将未被“盖0”线覆盖住得数减去 (3)将“盖0”线交叉的数加上第五步,重复第三步和第四步,直到“盖0”线的数目等于矩阵的维数.第六步,求最优解.对n维矩阵,找出不同行,不同列的n个“0”,每个“0”的位置代表一对配置关系,具体步骤如下:(1)先找只含有一个“0”的行(或列),将该行(或列)中的“0”打“”(2)将带“”的“0”所在列(或行)中的“0”打“”(3)重
14、复(1)步和(2)步至结束.若所有行列均含有多个“0”,则从“0”(4)的数目最少得行或列中任选一个“0”打“”第七步,打“”即为员工所对应的指派任务.4.匈牙利算法求解员工指派问题的模型假设与符号说明4.1 匈牙利算法解员工指派问题的模型假设(1)员工数目与任务数目相等(2)求解的是最小化问题,如工作时间最小化、费用最小化等.4.2 符号说明 表格4-2 字母符号说明符号符号说明表示企业指派的员工数表示需要完成的任务数表示指派第i人去完成第j项任务是所用的时间表示决策变量5.企业员工指派问题的模型建立与求解5.1标准指派问题(当m=n时,即为每个人都被指派一项任务)问题的提出假定某企业有甲、
15、乙、丙、丁、戊五个员工,需要在一定的生产技术组织条件下,完成A、B、C、D、E五项任务,每个员工完成每项工作所需要耗费的工作时间,如5-1所示. 表5-1 某企业员工完成任务时间汇总表 单位:(小时)员工任务甲乙丙丁戊A10591811B131961214C32445D189121715E116141910请求出:员工与任务之间应当如何进行配置,才能保证完成工作任务的时间最短?最短时间为多少?模型的建立设用表示指派第人去完成第项任务时所用的时间,定义决策变量,则指派问题的数学模型为: 模型的求解由题意及匈牙利算法得效益矩阵由此可知当员工甲负责任务A,员工乙负责任务D,员工丙负责任务B,员工丁负
16、责任务C,员工戊负责任务E时,才能保证完成工作任务的时间最短,且最短的时间t=10+9+6+4+10=39小时.5.2非标准指派问题(1)当时,即企业指派的员工数小于要求完成的任务数问题的提出某企业安排2个员工,完成3项任务,每个员工完成每项工作的时间如表5-2所示.表5-2 某企业员工完成任务时间汇总表一 单位:(小时)任务员工甲乙A105B1319C32求:应如何分配任务才能保证工作时间最短?模型的建立模型1 根据题意设用表示指派第人去完成第项任务时所用的时间,定义决策变量,则指派问题的数学模型为: 因为该模型不能直接运用匈牙利算法求解,故我们进行如下分析:两员工负责三项任务,则必有一个员
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 匈牙利 算法 企业 员工 指派 问题 应用 最终版 27
限制150内