- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
整数规划2-指派问题
指派问题(assignment problem) 1、指派问题的标准形式及其数学模型: 指派问题的标准形式(以人和事为例)是: 有 n 个人和 n 件事,已知第 i 人做第 j 事的费用为 Cij(i,j = 1,2,…,n),要求确定人和事之间的一一对应的指派方案,使完成这件事的总费用最少。如: 指派问题的标准形式,令: 匈牙利解法: 标准的指派问题是一类特殊的 0-1 整数规划问题,可以用多种相应的解法来求解,如整数规划、0-1规划或运输问题的解法。但是,这些方法都没有充分利用指派问题的特殊性质来有效减少计算量。1955年,库恩(W.W.Kuhn)利用匈牙利数学家康尼格(D.K?nig)的关于矩阵中独立零元素的定理,提出了指派问题的一种解法,由此,习惯上称之为匈牙利解法。 匈牙利解法: 匈牙利解法的关键是利用了指派问题最优解的如下性质: 若从指派问题的系数矩阵 C = ( cij )n×n 的某行(或某列)各元素分别减去一个常数 k ,得到一个新的系数矩阵C’ = ( c’ij ),则以 C 和 C’ 为系数矩阵的两个指派问题有相同的最优解。 匈牙利解法的一般步骤: 步骤一: 变换系数矩阵。使其每行及每列至少有一个零元素,同 时不出现负元素。 步骤二: 进行试指派,即确定独立零元素。 步骤三: 继续变换系数矩阵,然后返回步骤二。 匈牙利解法的一般步骤: 以上例说明步骤 匈牙利解法的一般步骤: 以上例说明步骤 匈牙利解法的一般步骤: 以上例说明步骤 匈牙利解法的一般步骤: 以上例说明步骤 匈牙利解法的一般步骤: 例2: 匈牙利解法的一般步骤: 匈牙利解法的一般步骤: 匈牙利解法的一般步骤: 匈牙利解法的一般步骤: 匈牙利解法的一般步骤: 继续变换系数矩阵。其方法是在未被直线覆盖的元素中找出一个最小元素。然后在打√号行各元素都减去这一最小元素,而在打√号列的各元素都加上这一最小元素,以保证原来的 0 元素不变。这样得到新系数矩阵(其最优解和原问题相同)。若得到 n 个独立的 0 元素,则已得最优解,否则重复该步骤继续变换系数矩阵。 匈牙利解法的一般步骤: 匈牙利解法的一般步骤: 匈牙利解法的一般步骤: 在实际应用中,常会遇到各种非标准形式的指派问题。一般的处理方法是先将其转化为标准形式,然后再用匈牙利法求解。 非标准1:最大化指派问题——设最大化指派问题系数矩阵 C = ( cij ) ,其中最大元素为 m 。令矩阵 B = ( bij )= ( m - cij ),则以 B 为系数矩阵的最小化指派问题和以 C 为系数矩阵的最大化指派问题有相同最优解。 非标准2:人数和事数不等的指派问题——若人少事多,则添加一些虚拟的“人”,其费用系数取 0 ,若人多事少,则添加一些虚拟的“事”,其费用系数取 0 。 非标准3:一个人可做几件事的指派问题——若某个人可以做几件事,则将该人化作几个“人”来接受指派。这几个“人”做同一件事的费用系数当然都一样。 非标准4:某事一定不能由某人做的指派问题——若某事一定不能由某人做,则可将相应的费用系数取为足够大的数 M 。 * * 4 15 13 9 13 14 16 11 15 4 14 8 2 10 9 7 甲 乙 丙 丁 D C B A 任务 人员 1 当指派第 i 人完成第 j 项任务 0 当不指派第 i 人完成第 j 项任务 xij = min z = ∑∑cijxij ∑xij = 1, j = 1,2,…,n ∑xij = 1, i = 1,2,…,n xij = 1 或 0 2、标准形式指派问题的求解 2 15 13 4 10 4 14 15 9 14 16 13 7 8 11 9 0 13 11 2 6 0 10 11 0 5 7 4 0 1 4 2 2 4 9 7 min ( cij )= 0 13 11 2 6 0 10 11 0
文档评论(0)