第25讲 指派问题
第25讲 指派问题

• 本讲主要介绍指派问题(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!个。
指派问题

数学模型为:
max Z 85x11 92x12 73x13 90x14 95x21 87x22
78x23 95x24 82x31 83x32 79x33 90x34
86x41 90x42 80x43 88x44 甲
A
x11 x12 x13 x14 1
xx3211
6 4
9 8 0 0
4
0 6 3 6 5
经行运算即可得每行每列都有 0 元素的系数矩阵,
再按上述步骤运算,得到:
5 0 2 0 2
2 3 0 0
0
0 10 5 7 2
9 8 0 0
4
0 6 3 6 5
所画 0元素少于n,未得到最优解。
5 0 2 0 2 2 3 0 0 0 0 10 5 7 2 9 8 0 0 4 0 6 3 6 5
将前面的例题连续作进行下
任务 人
A
B
C
D
E
甲
12 7
9
7
9
乙
8
9
6
6
6
丙
7 17 12 14 9
丁
15 14 6
6 10
戊
4 10 7 10 9
12 7 9 7
8
9 66
9
6
7 6
5 0 2 0 2
2 3 0 0
指派问题——匈牙利法

定义变量:设指派问题变量为 xij, ,则共有n2 个变量,且变量取值为: xij=1或0
( xij =1 表示 Ai 做 Bj,否则取值为 0 )
由cij (0)组成的方阵 称为效率矩阵,模型为:
nn
Min z
cij xij
s.t .
i 1 j1 n
Cij= 2 7 6 3 -2 0 5 4 1 0 5 3 1
3 3 4 4 -3 0 0 1 1 0 0 1
4 6 6 3 -3 1 3 3 0 1 3 2
-1
第二步 圈0——寻找不同行不同列的0元素,
圈之。 所在行和列其它0元素划掉
第三步 打——无的行打,打行上0列打
数模: minZ=ΣΣcijxij Σxij=1 i=1,…,n Σxij=1 j=1,…,n Xij=0或1
任务 人 时间
甲 乙 丙 丁
ABC D 4 10 7 5 2763 3344 4663
指派问题解法—匈牙利法
解:类似运输问题的最小元素法
第一6 3 1 6 2 1
指派问题的求解方法 匈牙利法
• 指派问题的求解方法
指派问题及求解方法
1 、指派问题的提出
•有 n 项不同的任务,恰好分派给n 个人分别承担,
由于每人完成各项任务的效率情况不同。现假设必须
指派每个人去完成一项任务,需考虑怎样把 n 项任务 指派给 n 个人,使得完成 n 项任务的总的效率最高, 这就是指派问题。
6 9
15 14 6 6 10
4 10 7 10 9
• 分别减去各行最小数7、6、7、6、4
指派问题的匈牙利解法—例
指派 问题

指派问题(Assignment Problem )1. 标准指派问题的提法及模型指派问题的标准形式是:有n 个人和n 件事,已知第i 个人做第j 件事的费用为cij (i ,j=1,2,…,n ),要求确定人和事之间的一一对应的指派方案,使完成这n 件事的总费用最小。
设n2个0-1变量1,i j 0,i j ij x ⎧=⎨⎩若指派第个人做第件事若不指派第个人做第件事(i,j=1,2,…, n) 数学模型为:1111min 1.101,,1,2,,n nij iji j nij i n ij j ijZ c x x s t x x or i j n =====⎧=⎪⎪⎪=⎨⎪⎪==⎪⎩∑∑∑∑ 其中矩阵C 称为是效率矩阵或系数矩阵。
其解的形式可用0-1矩阵的形式来描述,即 (xij)n ⨯n 。
标准的指派问题是一类特殊的整数规划问题,又是特殊的0-1规划问题和特殊的运输问题。
1955年W. W. Kuhn 利用匈牙利数学家D. Konig 关于矩阵中独立零元素的定理, 提出了解指派问题的一种算法, 习惯上称之为匈牙利解法。
2. 匈牙利解法匈牙利解法的关键是指派问题最优解的以下性质:若从指派问题的系数矩阵C=(cij )的某行(或某列)各元素分别减去一个常数k ,得到一个新的矩阵C ’=(c ’ij),则以C 和C ’为系数矩阵的两个指派问题有相同的最优解。
(这种变化不影响约束方程组,而只是使目标函数值减少了常数k ,所以,最优解并不改变。
)对于指派问题,由于系数矩阵均非负,故若能在在系数矩阵中找到n 个位于不同行和不同列的零元素(独立的0元素),则对应的指派方案总费用为零,从而一定是最优的。
匈牙利法的步骤如下:步1:变换系数矩阵。
对系数矩阵中的每行元素分别减去该行的最小元素;再对系数矩阵中的每列元素分别减去该列中的最小元素。
若某行或某列已有0元素,就不必再减了(不能出现负元素)。
步2:在变换后的系数矩阵中确定独立0元素(试指派)。
指派问题

求解 保存方案
西南交通大学 交通运输与物流学院 张 杨
例:六项任务由四个工厂担任,每个工厂可担任一至两项 任务,并知各个工厂担任各项任务的费用如下,问应如何 分配任务,使总费用最少。
3 6 2 6
7 1 7 4
3 8 5 8
6 4 3 7
5 2 4 3
5 7 6 2
求解 保存方案
西南交通大学 交通运输与物流学院 张 杨
作业: 现在从 6 名游泳选手选出 4 人参加 4X100 米游泳接力 赛,已知这6名候选人的仰泳、蛙泳、蝶泳和自由泳的百米平 时成绩如下表,问应该如何决策,才能使团队的成绩最好?
36 35 33 34 35 31
32 31 29 30 32 35
指派问题建模及求解
• 某公司购买了三个不同类型的设备,车间里有5个位置 可安装,设备位置不同,处理原料的物流作业也不同, 其处理成本也不同,具体情况见下表。如何决策这三种 设备的安装位置?
设备 位置
1 2 3
1 13 15 4
2 16 7
3 12 13 10
4 14 20 6
5 15 16 7
西南交通大学 交通运输与物流学院 张 杨
x
ij
4 i 1
j 1
ij
2 , i
ij
= 1 , j 0 ,1
x
i 张 杨
求解 打开Excel表,填入每个工厂承担不同项目的相应成本矩 阵,如下表:
西南交通大学 交通运输与物流学院 张 杨
求解 单元格J12:J15分别==SUM(C12:H12):SUM =SUM(C15:H15) 单元格C16:H16分别=SUM (C12:C15):SUM (H12:H15): 单元格J16=SUMPRODUCT(C4:H7,C12:H15)
指派问题(含非标准指派问题)

第五章 整数规划§1 整数规划的数学模型及特点要求一部分或全部决策变量必须取整数值得规划问题称为整数规划。
其模型为:Max(或min)z=∑=nj j jx c1s.t ⎪⎪⎩⎪⎪⎨⎧=≥=≥=≤∑=nj nj i ij ij xx x nj x m i b x a ,,,2,10,2,1),(211若要求决策变量只能取值0或1的整数规划称为0-1型整数线性规划。
§5 指 派 问 题 一. 指派问题的标准形式及数学模型在现实生活中,有各种性质的指派问题。
例如,有若干项工作需要分配给若干人(或部门)来完成;有若干项合同需要选择若干个投标者来承包;有若干班级需要安排在各教室上课等等。
诸如此类的问题,它们的基本要求是在满足特定的指派要求条件下,使指派方案的总体效果最佳。
由于指派问题的多样性,有必要定义指派问题的标准形式。
指派问题的标准形式(以人和事为例)是:有n 个人和n 件事,已知第i 个人作第j 件事的费用为),2,1,(n j i c ij =,要求确定人和事之间的一一对应的指派方案,是完成这n 件事的总费用最少。
为了建立标准指派问题的数学模型,引入2n 个0-1变量:⎩⎨⎧=10ij x这样,问题的数学模型可写成 ∑∑===ni nj ij ijx cz 11min (5.1)s.t ⎪⎪⎪⎩⎪⎪⎪⎨⎧======∑∑==n j i x n i x n j x ij n j ij n i ij ,2,1,1,0,2,11,2,1111 (5.3)其中,(5.1)表示每件事必优且只有一个人去做,(5.2)表示每个人必做且只做一件事。
注:○1 指派问题是产量(i a )、销量(j b )相等,且i a =j b =1,i ,j=1,2,…n 的运输中部分或全部取整数 若指派第i 人作第j 件事若不指派第i 人作第j 事i ,j=1,2,…n(5.2) (5.4)问题。
○2 有时也称ijc 为第i 个人完成第j 件工作所需的资源数,称之为效率系数(或价值系数)。
指派问题求解步骤

指派问题求解步骤(匈牙利法)
极小化问题
1、变换系数矩阵
(1)从系数矩阵的各行元素中减去该行中的最小元素
(2)从系数矩阵的各列元素中减去该列中的最小元素
2、试找最优解
从0元素最少的行(或列)开始,圈出一个0元素,划去该0元素所在的行和列。
已经划去的0元素不能再划圈。
如此重复。
如果圈出了n个独立的0元素,则确定了最优解;否则,转入下一步。
3、寻找最少覆盖线
(1)没有划圈的行打√,
(2)在打√的行中,有0元素的列打√
(3)在打√的列中,有划圈的行打√
(4)重复(2)和(3)
(5)没有打√的行划横线,打√的列划竖线
4、调整0元素
(1)在没有被直线覆盖的元素中找出最小元素
(2)将没有被直线覆盖的元素减去该最小元素
(3)被一条直线覆盖的元素不变
(4)被二条直线覆盖的元素加上该最小元素
5、转入第二步
极大化问题
用系数矩阵中的最大元素减去各元素,化为极小化问题.。
指派问题优秀课件

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