第25讲 指派问题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
指派问题
• 本讲主要介绍指派问题(Assignment Proble模型处理某些实际问题 的例子。
引例:指派问题
• 问题:有4项工作A,B,C,D需要由甲,乙,丙,丁四 人完成,每人完成其中的一项工作。已知各人完成各项 工作的时间如下表所示。问应该如何给他们指派工作, 才能够使完成总时间最少?指派问题最优解
匈牙利法(第四步)
• 第四步:变换当前系数矩阵,增加独立0元素个数, 具体作法如下:
(1)在当前系数矩阵没有被直线覆盖部分找出最 小元素; (2)将所有未被直线覆盖的元素都分别减去这 个最小元素; (3)将覆盖直线十字交叉处的 元素加上这个 最小元素; (4)当前系数矩阵其余元素不变。
• 这样使得0元素发生移动得到新系数矩阵,返回第二步重新寻 找独立0元素并判断是否能够得到最优解。如此进行下去,直 到得到最优解为止。
• 第一步:简化系数矩阵,制造0元素; • 第二步:寻找n个独立0元素,判断是否得 到最优解; • 第三步:如果不存在n个独立0元素,则在 系数矩阵上面作出最少直线覆盖所有0元素; • 第四步:变换当前系数矩阵(不改变最优 解),增加独立0元素个数,返回第二步。 如此进行下去,直到得到最优解为止。
匈牙利法(第一步)
D 7 6 14 6 10
E 9 6 9 10 9
非标准的指派问题
• (1)最大化问题。
令 bij = M – Cij,将目标函数转化为求最小。 注:通常M 取为Cij中最大者。
• (2)某人不能够完成某项工作。
引入充分大正数 M,令 Cij = M 即可。
• (3)人员数大于工作数。
引入虚工作
• (4)人员数小于工作数。
• 以上为指派问题的一个可行解矩阵,即可行解: X12 =1, X23 =1, X31 =1, X44 =1,其余Xij =0 工作安排为甲完成B,乙完成C,丙完成A,丁完成D。 • 注意:非零元素1有4个,而且它们的相互位置是既不 同行也不同列。这样的位置我们称为是独立的。 • 可行解个数共有n!个。
匈牙利法的来历
• 匈牙利法是一个求解指派问题的简便易行的 方法。 • 库恩(W.W.Kuhn)于1955年提出指派问题的 解法,他引用了匈牙利数学家康尼格一个关 于矩阵中0元素的定理: 系数矩阵中独立0元素的最多个数等于能 够覆盖所有0元素的最少直线个数。 这种解法被称为匈牙利法。
匈牙利法的求解步骤
课堂练习:指派问题
• 问题:有5项工作A,B,C,D,E需要由甲,乙,丙, 丁,戊五人完成,每人完成其中的一项工作。已知各人 完成各项工作的时间如下表所示。问应该如何给他们指 派工作,才能够使完成总时间最少?
工作 人员 甲 乙 丙 丁 戊
A 12 8 7 15 4
B 7 9 17 14 10
C 9 6 12 6 7
匈牙利法(第三步)
• 第三步:如果不存在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)为系 数矩阵的指派问题的最优解,也是原问题的最优 解。
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
• 第一步:简化系数矩阵,目的在于使每行每列 都产生0元素,具体方法: (1)将系数矩阵的每行元素都分别减去该行 的 最小元素; (2)将系数矩阵的每列元素都分别减去该列 的最小元素;
• 注:如果某行(列)已有0元素,则不必再减。
匈牙利法(第二步)
• 第二步:寻找n个独立0元素,判断是否得到最优解: 如果已经找出n个独立0元素,令解矩阵(xij)中对 应的决策变量取值为1,其它决策变量取值为0,这样就 得到最优解; 如果不存在n个独立0元素,则转第三步。 • 寻找独立0元素的方法:检查当前系数矩阵(bij)的 每行每列,从0元素最少的行或列开始,给这个0元素 加圈,记作◎(若该行或列有多个0元素则任圈一个), 然后划去加圈0元素所在行或列的其他0元素,记作 , 重复进行直到所有0元素都被圈出或者被划去为止。
例:翻译选择
语种 人员 甲 乙 丙 丁 戊 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)若甲不懂德文,乙不懂日文,其他数字不变,应如何指派?
引入虚拟人员
练习:游泳组队
• 五名游泳运动员的四种泳姿的百米最好成绩如下表所 示,应该从中选择哪四个人组成一个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
工作 人员 甲 乙 丙 丁
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项工作需要的时间。
相关文档
最新文档