第25讲 指派问题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例:翻译选择
语种 人员 甲 乙 丙 丁 戊 900 800 900 400 1000 400 500 700 800 500 600 900 300 600 300 800 1000 500 900 600 500 600 800 500 800 英 俄 日


• 以上为五人翻译五种外文的速度(印刷符号 / 小时),若规定 每人专门负责一个语种的翻译工作,那么,试回答下列问: (1)应如何指派,使总的翻译效率最高? (2)若甲不懂德文,乙不懂日文,其他数字不变,应如何指派?
课堂练习:指派问题
• 问题:有5项工作A,B,C,D,E需要由甲,乙,丙, 丁,戊五人完成,每人完成其中的一项工作。已知各人 完成各项工作的时间如下表所示。问应该如何给他们指 派工作,才能够使完成总时间最少?
工作 人员 甲 乙 丙 丁 戊
A 12 8 7 15 4
B 7 9 17 14 10
C 9 6 12 6 7
匈牙利法(第四步)
• 第四步:变换当前系数矩阵,增加独立0元素个数, 具体作法如下:
(1)在当前系数矩阵没有被直线覆盖部分找出最 小元素; (2)将所有未被直线覆盖的元素都分别减去这 个最小元素; (3)将覆盖直线十字交叉处的 元素加上这个 最小元素; (4)当前系数矩阵其余元素不变。
• 这样使得0元素发生移动得到新系数矩阵,返回第二步重新寻 找独立0元素并判断是否能够得到最优解。如此进行下去,直 到得到最优解为止。
• 第一步:简化系数矩阵,制造0元素; • 第二步:寻找n个独立0元素,判断是否得 到最优解; • 第三步:如果不存在n个独立0元素,则在 系数矩阵上面作出最少直线覆盖所有0元素; • 第四步:变换当前系数矩阵(不改变最优 解),增加独立0元素个数,返回第二步。 如此进行下去,直到得到最优解为止。
匈牙利法(第一步)
LP :
s.t.
m in Z cijxij i j xij 1 (i 1,2,...,n) j xij 1 ( j 1,2,...,n) i xij 0,1 (i, j 1,2,...,n)
引例的可行解矩阵
0 0 ( xij)n n 1 0 1 0 0 0 0 1 0 0 0 0 0 1
D 7 6 14 6 10
E 9 6 9 10 9
非标准的指派问题
• (1)最大化问题。
令 bij = M – Cij,将目标函数转化为求最小。 注:通常M 取为Cij中最大者。
• (2)某人不能够完成某项工作。
引入充分大正数 M,令 Cij = M 即可。
• (3)人员数大于工作数。
引入虚工作
• (4)人员数小于工作数。
匈牙利法(第三步)
• 第三步:如果不存在n个独立0元素,在当前 系数矩 阵上面作出最少直线覆盖所有0元素,具体方法如下: (1)对无划圈0元素的行打√号; (2)对打√号的行上所有含0元素的列打√号; (3)再对已经打√号的列中含有划圈0元素所 在的行打√号; (4)重复(2),(3)直到不再出现新的 打√号的行、列为止。 (5) 对没有打√号的行 和 已经打√号的列画一条直 线,就得到覆盖所有0元素的最少直线,这些直线数 目小于n。
指派问题最优解
• 指派问题最优解的性质: 从系数矩阵(Cij)的每一行(或每一列)元 素中分别减去该行(或列)的最小元素,得到新 矩阵(bij),以(bij)为系数矩阵求得的指派问 题最优解和原系数矩阵的最优解相同。引例:指 派问题 • 求解思路:如果能够在(bij)中找出n个既不同 行也不同列的独立0元素,就可以令解矩阵(xij) 中对应于这n个独立0元素的决策变量取值为1,其 它决策变量取值为0,这样就得到以(bij)为系 数矩阵的指派问题的最优解,也是原问题的最优 解。
引入虚拟人员
练习:游泳组队
• 五名游泳运动员的四种泳姿的百米最好成绩如下表所 示,应该从中选择哪四个人组成一个4100米混合泳接 力队伍?

泳姿 蝶泳 仰泳 蛙泳 自由泳





1’06’’8 57’’2 1’18 ’’ 1’10’ 1’07’’4 1’15’’8 1’06’’ 1’07’’8 1’14’’2 1’11’’ 1’27’’ 1’06’’4 1’24’’6 1’09’’6 1’23’’8 58’’6 53’’ 59’’4 57’’2 1’02’’4
谢 谢! 再 见!

• 个 • 个
匈牙利法的来历
• 匈牙利法是一个求解指派问题的简便易行的 方法。 • 库恩(W.W.Kuhn)于1955年提出指派问题的 解法,他引用了匈牙利数学家康尼格一个关 于矩阵中0元素的定理: 系数矩阵中独立0元素的最多个数等于能 够覆盖所有0元素的最少直线个数。 这种解法被称为匈牙利法。
匈牙利法的求解步骤
• 以上为指派问题的一个可行解矩阵,即可行解: X12 =1, X23 =1, X31 =1, X44 =1,其余Xij =0 工作安排为甲完成B,乙完成C,丙完成A,丁完成D。 • 注意:非零元素1有4个,而且它们的相互位置是既不 同行也不同列。这样的位置我们称为是独立的。 • 可行解个数共有n!个。
• 第一步:简化系数矩阵,目的在于使每行每列 都产生0元素,具体方法: (1)将系数矩阵的每行元素都分别减去该行 的 最小元素; (2)将系数矩阵的每列元素都分别减去该列 的最小元素;
• 注:如果某行(列)已有0元素,则不必再减。
Байду номын сангаас
匈牙利法(第二步)
• 第二步:寻找n个独立0元素,判断是否得到最优解: 如果已经找出n个独立0元素,令解矩阵(xij)中对 应的决策变量取值为1,其它决策变量取值为0,这样就 得到最优解; 如果不存在n个独立0元素,则转第三步。 • 寻找独立0元素的方法:检查当前系数矩阵(bij)的 每行每列,从0元素最少的行或列开始,给这个0元素 加圈,记作◎(若该行或列有多个0元素则任圈一个), 然后划去加圈0元素所在行或列的其他0元素,记作 , 重复进行直到所有0元素都被圈出或者被划去为止。
工作 人员 甲 乙 丙 丁
A 14 11 13 17
B 9 7 2 9
C 4 9 10 15
D 15 10 5 3
指派问题的LP模型

Xij:决策变量(0-1变量),表示是否指派第i个人 去完成第j项工作: 若Xij =1,则指派;若Xij =0,则不指派。 • Cij: 表示指派第i个人去完成第j项工作需要的时间。
指派问题
• 本讲主要介绍指派问题(Assignment Problem)的求解方法—匈牙利法, 要求同学掌握。 • 介绍利用指派模型处理某些实际问题 的例子。
引例:指派问题
• 问题:有4项工作A,B,C,D需要由甲,乙,丙,丁四 人完成,每人完成其中的一项工作。已知各人完成各项 工作的时间如下表所示。问应该如何给他们指派工作, 才能够使完成总时间最少?指派问题最优解
相关文档
最新文档