匈牙利法解决人数及任务数不等的指派问题1.docxVIP

匈牙利法解决人数及任务数不等的指派问题1.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
匈牙利法解决人数与任务数不等的指派问题于凯重庆科技学院经济管理学院物流专业重庆沙坪坝区摘要:本文将讨论运筹学中的指派问题,而且属于非标准指派问题,即人数与任务数不相等的指派问题,应当视为一个多目标决策问题,首先要求指派给个人任务数目两两之间相差不能超过1,其次要求所需总时间最少,并且给出了该类问题的求解方法。关键词:运筹学指派问题匈牙利算法系数矩阵解矩阵引言:在日常的生产生活中常遇到这样的问题:有n项任务,有n个人员可以去承担这n项任务,但由于每位人员的特点与专长不同,各对象完成各项任务所用的时间费用或效益不同;有因任务性质要求和管理上需要等原因,每项任务只能由一个人员承担来完成,这就涉及到应该指派哪个人员去完成哪项任务,才能使完成n项任务花费总时间最短,总费用最少,产生的总效益最佳。我们把这类最优匹配问题称为指派问题或分配问题。指派问题的解法——匈牙利法早在1955年库恩(w.w.ku.hn)就提出了指派问题的解法,该方法是以匈牙利数学家康尼格(koning)提出的一个关于矩阵中0元素的定理为基础,因此得名匈牙利法(The Hungonrian Method of Assignment)匈牙利解法的基本原理和解题思路直观的讲,求指派问题的最优方案就是要在n阶系数矩阵中找出n个分布于不用行不同列的元素使得他们的和最小。而指派问题的最优解又有这样的性质:若从系数矩阵C(ij)的一行(列)各元素都减去该行(列)的最小元素,得到新矩阵CB(ij),那么以CB(ij)为系数矩阵求得的最优解和原系数矩阵C(ij)求得的最优解相同。由于经过初等变换得到的新矩阵CB(ij)中每行(列)的最小元素均为“○”,因此求原指派问题C(ij)的最优方案就等于在新矩阵CB(ij)中找出n个分布于不同行不同列的“○”元素(简称为“独立○元素”),这些独立○元素就是CB(ij)的最优解,同时与其对应的原系数矩阵的最优解。匈牙利法的具体步骤第一步:使指派问题的系数矩阵经过变换在各行各列中都出现○元素。先将系数矩阵的每行中的每个元素减去本行中的最小元素。再从系数矩阵的每列中的每个元素减去本列的最小元素。第二步:进行试指派,以寻求最优解。从含有○元素个数最少的行(列)开始,给某个○元素加圈,记作◎,然后划去与◎所在同行(列)杂其他○元素,记作。(注:从含元素少的开始标记◎的原则)重复进行(1)的操作,直到所有○元素都记作◎或,称作“礼让原则”。按以上方法操作后,若◎元素数目m’等于矩阵阶数n,那么指派问题最优解已得到。若m﹤n,则转入下一步。第三步:做最少的直线覆盖所有的○元素,以确定该系数矩阵中能找到最多的独立○元素。对没有◎的行打√号;对已打√号的行中含有元素所在的列打√号;对已打√号的列中含有◎元素所在的行打√号;重复(2)、(3)直到得不到新√号的行和列为止;对没有√号的行画一横线,有√号的列画一竖线。如此便可以覆盖所有的○元素(注:这里的○元素是指◎或)第四步:以上画线的目的是为了选取新的最小元素,以便增加○元素,最后达到◎元素个数m=n。为此在没有被直线覆盖的所有元素中找出最小元素,然后将没有被直线覆盖的每个元素都减去该最小元素,同时把打“√”的列中的每个元素加上该最小元素,以保证原○元素不变。再按照第二步原则进行选取独立○元素。若得到n个◎元素,则已是该矩阵的最优解(同时也是原矩阵的最优解);否则,回到第三步重复进行。第五步:在第四步得到的最优解情况下的系数矩阵变换为解矩阵。将系数矩阵中的所有◎都变成元素1,而其他元素均变成0元素,得到的新矩阵便为原指派问题的解矩阵,根据解矩阵中1元素所在的行、列数,去确定派哪个人员去做哪项任务。(注:在解矩阵()中,Xij=0元素表示不派第i个人去完成第j项任务,Xij=1表示指派第i个人去完成第j项任务)需要对匈牙利法的第二步画行的说明:当指派问题的系数矩阵经过变换得到了同行和同列中都有两个或两个以上○元素时,这时可以任选一行(列)中某个○元素,再划去同行(列)其他○元素。这时会出现多重优化解,对应着多种最优的指派方案。如果出现此种情况,各位读者不必疑惑。极大化指派问题以上讨论的均限于极小化的指派问题,对于极大化的问题,即求(例如:如何安排n个工程队去完成n个项目才能使总收益最大)以下是解决该问题的原理部分: 可令 (其中M是原系数矩阵()中最大的元素)则原系数矩阵变换成新矩阵(),这时0,符合匈牙利法的条件,而且等式恒成立,所以,当新的系数矩阵取到极小化指派问题的解矩阵时,就对应着原问题的最大化指派方案的最优指派方案。人员数不等于任务数的指派问题:以上我们讨论的问题均是标准型指派问题,但在实际生活中可能出现人手不够或者任务较少人员较多的情况,该类问题当然也可以利用匈牙利法求解。 从以上讨论了匈牙利法的原

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档