第五章(肖健华)概述.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 整数规划 一种想当然的想法:四舍五入或凑整 问题: 不能保证是可行解 虽然是可行解,但不一定是最优解 例:求下述整数规划问题的最优解 §5.1 指派问题 指派问题也称为分派问题(assignment problem) 指派问题是一种特殊的整数规划问题:假设有m项任务分配给m个人去完成,并指定每人完成其中的一项,每项只交给其中的一个人去完成,又已知每人完成各项任务的效率不一样,现在应如何分配使总的效率最高。 5.1.1 指派问题的数学模型 例1:有一份说明书,要分别译成英、日、德、俄四种文字,交甲、乙、丙、丁四个人去完成。因各人专长不同,他们完成翻译不同文字所需的时间如下表。应如何分配,使这四个人分别完成这四项任务总的时间为最小。 数学模型 效率矩阵: 在分配问题中,利用不同资源完成不同计划活动的效率通常用表格形式表示,表格中的数字组成效率矩阵。 比较:运输问题的数学模型 5.1.2 指派问题的求解方法:匈牙利法 如效率矩阵: 匈牙利法要解决的两个问题: 如何产生位于不同行和不同列的零元素; 如何寻找位于不同行和不同列的零元素。 匈牙利数学家克里格(Konig)教授证明了下面两个基本定理,为解决上述问题奠定了基础。由此,基于这两个定理建立起来的分配问题的计算方法,被称为匈牙利法。 Konig定理1 Konig定理2 若矩阵A的元素可分成“0”元素和非“0”两部分,则覆盖“0”元素的最少直线数等于位于不同行不同列的“0”元素的个数。 匈牙利法的步骤 第一步:找出效率矩阵每行的最小元素,并分别从每行中减去; 第二步:再从每列中找出最小元素,并分别从每列中减去; 第三步:确定覆盖全部“0”元素所需的直线数 ① 从第一行开始,若该行只有1个零元素,就对这个零元素打上()号,对打()号的零元素所在列画一条直线。若该行没有零元素,或有两个以上零元素(已划去的不计在内),则转下一行,依次进行到最后一行; ② 从第一列开始,若该列只有1个零元素,就对这个零元素打上()号,对打()号的零元素所在行画一条直线。若该列没有零元素,或有两个以上零元素(已划去的不计在内),则转下一列,依次进行到最后一列; ③ 重复①、②两个步骤,可能出现三种情况: ⒈ 效率矩阵中每行都有一个打()的零元素,很显然,按上述步骤得到的打()号的零元素位于不同行不同列,只要令对应打()号的零元素的xij=1就找到了问题的最优解。 ⒉ 打()号的零元素个数小于m,但未被划去的零元素之间存在闭回路,这时可顺着闭回路的走向,对每个间隔的零元素打一()号,然后对所有打()号的零元素,或所在行,或所在列画一条直线。 ⒊ 矩阵中的所有元素或被划去,或被打上()号,但打()号的零元素个数小于m,一旦出现这种情况转第四步。 第四步:为设法使每一行都有一个打()号的零元素,需要连续对矩阵进行变换: ① 从未被直线覆盖的元素中找出最小元素k; ② 对既未划去行也没划去列的元素减去k; ③ 对既划去行也划去列的元素加上k; ④ 只划去行或只划去列的元素不变。 第四步的目的是: ① 将剩余的元素的最小值变为0; ② 保证以前为(0)的元素依然为0; ③ 所有元素≥0; ④ 不改变最优解的结构。 第五步:回到第三步,反复进行,一直到矩阵的每一行都有一个打()号的零元素为止,即找到了最优分配方案。 例1: 四人承担四项任务,各人完成各项任务所需的时间如表所示,试确定最优的分配方案,以使四人完成四项任务的总时间最少。 例2: 求解如表所示的指派问题 5.1.3 指派问题的拓展 1. 人数多于任务数 2. 任务数多于人数 1. 人数多于任务数 处理方法: 增添假想的工作任务 假想任务对应的完成时间都为0 例题 现有六个人欲完成四项工作,效率见表,问如何安排,使总效率最高。 2. 任务数多于人数 存在两种具体的处理情形 只选择与人员数量相等的任务来完成,其它任务留下不管; 可以引入假想的人使人数与任务数相等,由于假想完成的是剩余任务,所以对应的效率矩阵元素为0。 允许一个人同时完成多项任务(兼职),所有的任务必须完成。 同样引入假想的人来完成任务,但这时任务是要实实在在完成的,所以效率矩阵元素不再为0,而是完成该任务所需的最短时间。即:被兼做的任务一定是由完成该项任务时间最短的人来完成。 例1 四个人面临五项工作,现要在五项工作中选择四项进行分配,每个人完成各项工作所需时间如表所示,问应如何分配才能使总效率最高? 例2 四个人面临五项工作,其中一个人兼任一项工作,其他三个人各完成一项工作,若他们完成各项工作所需的时间如表所示,问应如何分配才能使总效率最高? 例3 从甲、乙、

文档评论(0)

花仙子 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档