第8讲 指派问题.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8讲 指派问题

指派问题 主要介绍指派问题(Assignment Problem)的求解方法—匈牙利法,要求同学掌握。 介绍利用指派模型处理某些实际问题的例子。 引例:指派问题 问题:有4项工作A,B,C,D需要由甲,乙,丙,丁四人完成,每人完成其中的一项工作。已知各人完成各项工作的时间如下表所示。问应该如何给他们指派工作,才能够使完成总时间最少?指派问题最优解 指派问题的LP模型 Xij:决策变量(0-1变量),表示是否指派第i个人去完成第j项工作: 若Xij =1,则指派;若Xij =0,则不指派。 Cij: 表示指派第i个人去完成第j项工作需要的时间。 引例的可行解矩阵 以上为指派问题的一个可行解矩阵,即可行解: X12 =1, X23 =1, X31 =1, X44 =1,其余Xij =0 工作安排为甲完成B,乙完成C,丙完成A,丁完成D。 注意:非零元素1有4个,而且它们的相互位置是既不同行也不同列。这样的位置我们称为是独立的。 可行解个数共有n!个。 指派问题最优解 指派问题最优解的性质: 从系数矩阵(Cij)的每一行(或每一列)元素中分别减去该行(或列)的最小元素,得到新矩阵(bij),以(bij)为系数矩阵求得的指派问题最优解和原系数矩阵的最优解相同。引例:指派问题 求解思路:如果能够在(bij)中找出n个既不同行也不同列的独立0元素,就可以令解矩阵(xij)中对应于这n个独立0元素的决策变量取值为1,其它决策变量取值为0,这样就得到以(bij)为系数矩阵的指派问题的最优解,也是原问题的最优解。 匈牙利法的来历 匈牙利法是一个求解指派问题的简便易行的方法。 库恩(W.W.Kuhn)于1955年提出指派问题的解法,他引用了匈牙利数学家康尼格一个关于矩阵中0元素的定理: 系数矩阵中独立0元素的最多个数等于能够覆盖所有0元素的最少直线个数。 这种解法被称为匈牙利法。 匈牙利法的求解步骤 第一步:简化系数矩阵,制造0元素; 第二步:寻找n个独立0元素,判断是否得 到最优解; 第三步:如果不存在n个独立0元素,则在 系数矩阵上面作出最少直线覆盖所有0元素; 第四步:变换当前系数矩阵(不改变最优解),增加独立0元素个数,返回第二步。如此进行下去,直到得到最优解为止。 匈牙利法(第一步) 第一步:简化系数矩阵,目的在于使每行每列都产生0元素,具体方法: (1)将系数矩阵的每行元素都分别减去该行的 最小元素; (2)将系数矩阵的每列元素都分别减去该列的最小元素; 注:如果某行(列)已有0元素,则不必再减。 匈牙利法(第二步) 第二步:寻找n个独立0元素,判断是否得到最优解: 如果已经找出n个独立0元素,令解矩阵(xij)中对应的决策变量取值为1,其它决策变量取值为0,这样就得到最优解; 如果不存在n个独立0元素,则转第三步。 寻找独立0元素的方法:检查当前系数矩阵(bij)的 每行每列,从0元素最少的行或列开始,给这个0元素 加圈,记作◎(若该行或列有多个0元素则任圈一个), 然后划去加圈0元素所在行或列的其他0元素,记作? , 重复进行直到所有0元素都被圈出或者被划去为止。 匈牙利法(第三步) 第三步:如果不存在n个独立0元素,在当前 系数矩阵上面作出最少直线覆盖所有0元素,具体方法如下: (1)对无划圈0元素的行打√号; (2)对打√号的行上所有含0元素的列打√号; (3)再对已经打√号的列中含有划圈0元素所 在的行打√号; (4)重复(2),(3)直到不再出现新的 打√号的行、列为止。 (5) 对没有打√号的行 和 已经打√号的列画一条直线,就得到覆盖所有0元素的最少直线,这些直线数目小于n。 匈牙利法(第四步) 第四步:变换当前系数矩阵,增加独立0元素个数,具体作法如下: (1)在当前系数矩阵没有被直线覆盖部分找出最 小元素; (2)将所有未被直线覆盖的元素都分别减去这 个最小元素; (3)将覆盖直线十字交叉处的 元素加上这个 最小元素; (4)当前系数矩阵其余元素不变。 这样使得0元素发生移动得到新系数矩阵,返回

文档评论(0)

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

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

1亿VIP精品文档

相关文档