网站大量收购独家精品文档,联系QQ:2885784924

4.5车辆调度中的匈牙利方法.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.5 车辆调度中的匈牙利方法 在物流活动中,经常会遇到这样的问题,有n项运输任务,恰好有n辆车可承担这些运输任务,由于车型、载重以及司机对道路熟悉程度等方面的不同,效率也不一样,于是产生了应指派哪辆车去完成哪项运输任务,使总效率最高(或总费用最小,或时间最短)的问题,这类问题称为指派问题。类似的问题有,n项配送任务,怎样指派到n个超市上分别完成的问题;n条航线,怎样指定n艘船去航行的问题等。 1、事件数与人数(车数)相等时 补充 0-1规划 系数(效率)矩阵 指派问题的最优解有这样性质,对任意一个求最小值的效率矩阵(cij) ,若从系数矩阵(cij)的一行(列)各元素中分别减去或加上同一个常数k,得到新的矩阵(bij),那么以(bij)为系数矩阵求得的最优解和用原系数矩阵求得的最优解相同。而他们的目标函数仅相差一个常数k. 利用这一性质,可使原系数矩阵变换为含有很多0元素的新系数矩阵,而最优解保持不变,在系数矩阵(bij)中,我们关心位于不同行不同列的0元素,以下简称独立0元素。若能在系数矩阵(bij)中找到n个独立的0元素,则令解矩阵(xij)中对应这个n个独立的0元素取值为1,其他元素取值为0。这就是以(bij)为系数矩阵的指派问题的最优解,也就得到了原问题的最优解。 4.3.1指派问题的解法———匈牙利解法 这种方法是匈牙利数学家考尼格(Konig)提出的,因此得名匈牙利解法。 匈牙利法是针对指派问题的标准型进行求解。 Step2 进行试指派,以寻求最优解 (1)从只有一个0元素的行(列)开始,给这个0元素加圈,记作◎,然后划去所在列(行)的其他0元素,记作φ; (2)给只有一个0元素的列(行)的0元素加圈,记作◎ ,然后划去所在行(列)的其他0元素,记作φ ; (3)反复进行(1)、(2)两步,直到所有的0元素都被圈出和划掉为止; (4)若仍没有画圈的0元素,且同行(列)的0元素至少有两个.则从剩下0元素最少的行(列)开始,比较这行各0元素所在列的0元素的数目,选择0元素少的那列(行)的这个0元素加圈,然后划掉同行同列的其他0元素;可反复进行,直到所有0元素都已圈出和划掉为止; (5)若元素◎的数目m等于矩阵的阶数n,那么这指派问题的最优解已得到;若m<n,则转入step3; step3 作最少的直线覆盖所有0元素,以确定该系数矩阵中能找到最多的独立0元素数; (1)对没有◎的行打√号; (2)对已打√号的行中,所有含φ元素的列打√号 (3)再对打有√号的列中含0元素的行打√号 (4)重复(2)、(3)直到得不出新的打√号的行、列为止; (5)对没有打√号的行画一横线,有√号的列画一纵线,这就得到覆盖所有0元素的最少直线数.令这直线数为m,若m<n,说明必须再变换当前的系数矩阵,才能找到n个独立的0元素,为此转step4; step4 在没有被直线覆盖的部分中找出最小元素,然后在打√号的行各元素中都减去这最小元素,而在打√号的列的各元素都加上这是小元素,以保证原来的0元素不变.这样得到新的系数矩阵,若得到n个独立的0元素,则已得到最优解,否则回到step3重复进行。 例5 某物流公司现有4项运输任务A、B、C、D,现有甲、乙、丙、丁4辆车,他们完成任务所需时间如表4-12所示。问应指派何人去完成何任务,使所需总时间最少? 实例(mn) 或者 想一想 1、怎样求解目标函数最大值的分配方案呢? 2、若人数大于事件数呢?反之呢? 实例1 例如:甲、乙、丙3人做四项工作,系数矩阵可调整为 人数小于事件数 实例2 例如:甲、乙、丙3人做四项工作,系数矩阵为 人数小于事件数 如:甲、乙、丙3人做四项工作,要求甲做两项,系数矩阵可调整为 若甲、乙、丙、都最多可作2项工作 系数矩阵可调整为 练一练 某物流公司安排甲、乙、丙、丁四个人去完成四项任务,每人完成各项任务的时间如表4-16所示。 请根据已知条件求解一个总花费时间最少的指派方案。 23 36 42 24 丁 40 28 27 34 丙 20 26 38 39 乙 42 31 29 25 甲 D C B A 指派问题的标准形式可以表述为:有 n 辆汽车和 n 人,已知第 i 个人做第 j 项任务的费用为 , , 如何确定任务和人的一一对应的指派方案,使得完成 n 件 事情的总费用最少? 注:如问题是求最大值的话,则需要将目标函数转换成求最小值,再用匈牙利方法求解。 匈牙利方法的基本原理: 匈牙利法的计算步骤如下: step1 按照一定的方法不断变化效率矩阵,设法在原有效率矩阵基础上经变换,使新矩阵的每行每列至少有一个零元素。 (1)行变换:找出每行最小元素,再从该行各元素中减去这个最小元素; (2)列变换:找出每列最小元素,再从该列各元素中减去这个最小的

文档评论(0)

ajgoaw + 关注
内容提供者

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

1亿VIP精品文档

相关文档