《运筹学》胡运权清华版-5-05指派问题

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

7 0 9 2 C=0 8 7 0
8 7 1 0 4 0 0 2
1
最优解:
X=1
1
1
即甲安排做第二项工作、乙做第一项、丙做第四项、丁做第三项。 总分为:Z=92+95+90+80=357
四、非标准形式的指派问题
不平衡的指派问题
当人数m大于工作数n时,加上m-n项工作,例如
5 9 10
11 6
3
8 14 17
6
4
5
3 2 1
5 9 10 0 0
11 6 3 0 0
8 14 17 0 0
6
4
5 0 0
3 2 1 0 0
当人数m小于工作数n时,加上n-m个人,例如
分,则覆盖0元素的最少直线数等于位于不同行 不同列的0元素的最多个数。
只需在矩阵A中寻找覆盖0元素的最少直线数。
匈牙利法求解指派问题举例1: 例:求解指派问题,效率矩阵
9 17 16 7
cij
12 8
7 17
14 14
16 17
7
9
11
9
解:
1 变换系数矩阵,使其每行每列都出现0元素。首先每 行减去该行最小数,再每列减去该列最小数。
0 3 0 11 8 0 1 7 7 3 0 2 3 2 1 0 0 5 0 4 0 2 3 4 0
2 寻找独立0元素
若看作第三列 上的惟一0元素
用一直线覆 盖所在行
0 3 0 11 8 0 1 7 7 3 0 2 3 2 1 0 0 5 0 4 0 2 3 4 0
只圈出4个0, 即:只有4个独 立的0元素,少 于系数矩阵的 阶数5。
i1
xij 0,1
i 1,2, ,4 j 1,2, ,4
目标:min (总时间)
总时间
任务 人员
甲 乙 丙 丁
A
B
C
D
9 x11
12x21 8 x31
17x12 7 x22 17x32
16x13 14x23 14x33
7 x41 9 x42 11x43
7 x14 16x24 17x34 9 x44
x33
x34

x41
x42
x43
x44
一人做一项工作


A
B
C
D




工 作
甲 ∑ x11
x12
x13
x14=1
由 乙 ∑ x21
x22
x23
x24=1
一 人
丙 ∑ x31
x32
x33
x34=1
做 丁 ∑ x41
x42
x43
x44=1
=1
=1
=1
=1
约束条件:
4
xij 1
j1
4
xij 1
例 1 9 14 16 -1
C 26 8 2 14 -2 18 3 17 13 -3
18 13 16
4
-4
0 8 13 15
C ' 24 6 0 12 15 0 14 10
14 9 12
0
问:如何寻找位于不同行不同列的0元素?
又称独立0元素
定理2—— 若矩阵A中的元素可分为“0”和“非0”两部
问:定理1有什么用处?
一个特例—— 设某个指派问题的效率矩阵
0 8 13 15
C 24 6 0 12 15 0 14 10
14
9 12
0
1 0 0 0
xij
0 0
0 1
1 0
0 0
0 0 0 1
特点:0元素位于 不同行不同列
目标值z=0。因cij≥0, 它必为最优解
定理1的用处——
尽管一般的效率矩阵中不会有这样的位于不同 行不同列的0元素,而定理1则给出了可以将一般的 效率矩阵转化成这样矩阵的理论依据。
②从第一列开始,若该列只有一个0元素,则给这个 0元素加O;同时作一直线覆盖该行元素。若该列无0元 素或者有两个及以上0元素(已被覆盖的不计在内), 则转下列,直到最后一列为止;
③反复进行①、 ②两步,直到所有0元素都被圈出 或划掉为止。
若出现圈出的0元素个数<矩阵的阶数n,转步骤3。
3 对矩阵变换,使矩阵出现新的0元素。 ① 在未被直线覆盖的元素中,找最小元素k ② 无直线覆盖的行 -k 有直线覆盖的列 +k
cij
C (M cij )

min w
cij xij
ij

max z
cij xij 的最优解相同。
ij
【例】某人事部门拟招聘4人任职4项工作,对他们综合考评的 得分如下表(满分100分),如何安排工作使总分最多。
甲 85 92 73 90
C=乙丙
95 82
87 83
78 79
95 90
c11 k
C'
c21
cn1
c12 k c22 ... cn2
... c1n k
...
c2n
...
...
cnn
效率矩阵C’
指派问题模型2:
nn
min z
cij xij
i1 j1
c11 k
C'
c21
cn1
c12 k c22 ... cn2
... c1n k
...
任务 E
J
G
R
F


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
解为:
0 1 0 0 0
0
0
1
0
0
0 0 0 0 1
0
0
0
1
0
1 0 0 0 0
或:
0 1 0 0 0
0
0
0
1
0
0 0 0 0 1
0
01
0
0
1 0 0 0 0
总时间为:Z=7+6+9+6+4=32
转步骤2。
注:若遇到在所有的行和列中,0元素都不止一个 时,可任选其中一个0元素加O;然后作一直线覆盖该 列元素(或该行元素)。
练习 有一份中文说明书,需译成英、日、德、俄
法五种文字。分别记作E、J、G、R、F。现有甲、乙
、丙、丁、戊五人,他们将中文说明书翻译成不同语 种的说明书所需时间如下表。问应指派何人去完成何 工作,使所需总时间最少?
定理1—— 若从指派问题的系数矩阵C=(cij)n×n的某行
(或某列)各元素分别加上或减去一个常数k,得 到一个新矩阵C’=(c’ij) n×n ,则以C’和C为系数 矩阵的两个指派问题有相同的最优解 。
证明分析:
效率矩阵C
c11 c12 ... c1n
C c21
c22
...
c2
n
... ...
min z=7+9+6+6+6=34
匈牙利法求解指派问题步骤总结
1. 变换系数矩阵,使其每行每列都出现0元素。首先 每行减去该行最小数,再每列减去该列最小数。
2. 寻找独立0元素
①从第一行开始,若该行只有一个0元素,则给这个 0元素加O;同时作一直线覆盖该列元素。若该行无0元 素或者有两个及以上0元素(已被覆盖的不计在内), 则转下行,直到最后一行为止;
15 20 10 9
6
5
4
7
10 13 16 17
15 20 10 9
6
5
4
7
10 13 16 17
0
0
0
0
求最大值的指派问题 匈牙利法的条件是:模型求最小值、效率cij≥0
设C=(cij)m×m 对应的模型是求最大值 max z
cij xij
ij
将其变换为求最小值

M
max i, j
i 1
第i人做一项工

n
xij 1
j 1
( i 1, ,n )
xij 0或1 (i 1, ,n; j 1, ,n)
二、指派问题的解的特点
可行解:
每行有且仅有一个1;
每列有且仅有一个1;
其余均为0。

0 1 0 0
xij
0 1
0 0
1 0
0 0
0 0 0 1
三、指派问题的求解方法——匈牙利法 源于Konig 的两个定理
解:
1 变换系数矩阵,使其每行每列都出现0元素。首先每
行减去该行最小数,再每列减去该列最小数。
-1 -3
(cij’)
4 8 7 15 12 -4 7 9 17 14 10 -7
6 9 12 8 7 -6 6 7 14 6 10 -6 6 9 12 10 6 -6
0 4 3 11 8 0 2 10 7 3 0 3 6 2 1 0 1 8 0 4 0 3 6 4 0
+1
1 3 0 11 8 0 0 6 6 2 0 1 2 1 0 1 0 5 0 4 1 2 3 4 0
最优解
0 0 1 0 0
0 1 0 0 0
xij
1 0
0 0
0 0
0 1
0 0
0 0 0 0 1
cij
4 8 7 15 12 7 9 17 14 10 6 9 12 8 7 6 7 14 6 10 6 9 12 10 6
第五节 指派问题
assignment problem
• 指派问题的数学模型 • 指派问题解的特点 • 指派问题的求解方法——匈牙利法 • 非标准形式的指派问题
一、指派问题的数学模型
例、有四项任务需分派给甲、乙、丙、丁四个人去
做,这四个人都能承担上述四项任务,但完成各项任 务所需时间如下表所示。问应如何分派任务可使完成 任务的总工时最少?
cn1
cn2
...
cnn
指派问题模型1:
nn
min z
cij xij
i1 j 1
x11 x12 ... x1n 1
...
xn1 xn2 ... xnn 1
x11
x21
...
xn1
1
...
x1n x2n ... xnn 1
若C=(cij)n×n的第一行各元素分别加上一个常数k, 得到一个新矩阵C’=(c’ij) n×n
对于本例
用一直线覆 盖所在列
第一行只有 一个0元素
2 10 5 0
c'ij
5 0
0 9
3 9 2 9
0 2 0 2
已出现4个独 立0元素
最优解
0 0 0 1
xij
0 1
1 0
0 0
0 0
0 0 1 0
匈牙利法求解指派问题举例2:
例12:求解指派问题,效率矩阵
4 8 7 15 12 7 9 17 14 10 C 6 9 12 8 7 6 7 14 6 10 6 9 12 10 6
c2n
...
...
cnn
与模型1相比: 1. 约束相同;
2. 目标相差一个常数k。
k(x11 x12 ... x1n )
x11 x12 ... x1n 1
...
xn1 xn2 ... xnn 1
x11
x21
...
xn1
1
...
x1n x2n ... xnn 1
因此最优解相同。
推广——指派问题的数学模型
有n项任务,恰好n个人承担,第i 人完成第j 项
任务的花费(时间或费用等)为cij,如何分派使总花
费最省? nn
min z cij xij
i1 j1
x ij
1 0
分派第i人做第j项工作 不分派第i人做第j项工作
第j项工作由一 n
个人做
xij 1 ( j 1 , ,n)
9
cij
12 8
17 7 17
16 14 14
7 16
-7 -7
17 -8
7百度文库
9
11
9
-7
-4
(cij’)
2 10 9 0 2 10 5 0
5 0 7 9 5 0 3 9
0 0
9 2
6 9 4 2
0 0
9 2
2 9 0 2
2 寻找独立0元素
表示对这行所代表的人 , 只有一种任务可分派。
①从第一行开始,若该行只有一个0元素,则给这个 0元素加O;同时作一直线覆盖该列元素。若该行无0元 素或者有两个及以上0元素(已被覆盖的不计在内), 则转下行,直到最后一行为止
第二列只有惟 一0元素
若看作第五列 上的惟一0元素
3 对矩阵变换,使矩阵出现新的0元素。 ① 在未被直线覆盖的元素中,找最小元素k ② 无直线覆盖的行 -k 有直线覆盖的列 +k
转步骤2
k=1
0 3 0 11 8 0 1 7 7 3 -1 0 2 3 2 1 -1 0 0 5 0 4 0 2 3 4 0
表示这列所代表的任务已分 派完,不必再考虑别人了。
②从第一列开始,若该列只有一个0元素,则给这个 0元素加O;同时作一直线覆盖该行元素。若该列无0元 素或者有两个及以上0元素(已被覆盖的不计在内), 则转下列,直到最后一列为止
③反复进行①、 ②两步,直到所有0元素都被圈出 或划掉为止。
注:若遇到在所有的行和列中,0元素都不止一个 时,可任选其中一个0元素加O;然后作一直线覆盖该 列元素(或该行元素)。
任务 A
B
C
D
人员

9
17 16
7

12
7
14 16

8
17 14 17

7
9
11
9
解:设决策变量xij,i=1,2,3,4; j=1,2,3,4
xij 01
表示分派第i人做第j项工作 表示不分派第i人做第j项工作
任务 A
B
C
D
人员

x11
x12
x13
x14

x21
x22
x23
x24

x31
x32
丁 86 90 80 88
【解】M=95,令 C (95 cij )
10 3 22 5
C=
0
8 17 0
13 12 16 5
9
5 15 7
用匈牙利法求解:
10 3 22 5
C=
0
8 17 0
13 12 16 5
9
5 15 7
7 0 19 2 C=0 8 17 0
8 7 11 0 4 0 10 2
相关文档
最新文档