分配问题与匈牙利算法精品PPT课件
合集下载
分配问题指派问题与匈牙利法课件
![分配问题指派问题与匈牙利法课件](https://img.taocdn.com/s3/m/4a66c749e97101f69e3143323968011ca300f723.png)
➢现问:如何确定一个分派工人去工作的方案,使得工人们 完成工作的总时间为最少。
分派方案满足下述两个条件:
• 任一个工人都不能去做两件或两件以上的工作 1.任一件工作都不能同时接受两个及以上的工人去做
分配问题指派问题与匈牙利法课件
标准形式的分配问题
n个人 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
圈0个数4 < n=5
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
分配问题指派问题与匈牙利法课件
⑥找未被直线覆盖的最小数字k;
⑦对矩阵的每行:当该行有直线覆盖时,令ui=0; 当 该 行 无 直 线 覆 盖 时 , 令 ui=k 。
⑩再次寻找独立零元素
逐列检验
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
0 3 0 11 8
0 0 6 6 2
0
1
2
1
0
0 0 5 0 4
0
2
3
4
0
0 0 1 0 0
0 1 0 0 0
0
0
0
0
1
0 0 0 1 0
分配问题指派问题与匈牙利法课件
数学模型
分派方案满足下述两个条件:
• 任一个工人都不能去做两件或两件以上的工作 1.任一件工作都不能同时接受两个及以上的工人去做
分配问题指派问题与匈牙利法课件
标准形式的分配问题
n个人 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
圈0个数4 < n=5
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
分配问题指派问题与匈牙利法课件
⑥找未被直线覆盖的最小数字k;
⑦对矩阵的每行:当该行有直线覆盖时,令ui=0; 当 该 行 无 直 线 覆 盖 时 , 令 ui=k 。
⑩再次寻找独立零元素
逐列检验
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
0 3 0 11 8
0 0 6 6 2
0
1
2
1
0
0 0 5 0 4
0
2
3
4
0
0 0 1 0 0
0 1 0 0 0
0
0
0
0
1
0 0 0 1 0
分配问题指派问题与匈牙利法课件
数学模型
《管理运筹学》分配问题与匈牙利算法
![《管理运筹学》分配问题与匈牙利算法](https://img.taocdn.com/s3/m/5853418928ea81c759f57831.png)
2019/9/10
第 12页
第4章 整数规划与分配问题
4 5 4 ◎ √
◎ 1 Ø 4
2 ◎ 4 3
3
7
1
Ø
√
√
3 4 3 ◎
◎ 1 Ø 5
2 ◎ 4 4
2
6
0
Ø
3 4
◎ 1 2 ◎ 2 6
3 ◎
Ø 5
4 4
◎
Ø
得到4个独立零元素, 所以 最优解矩阵为:
7
8
11
9
-7
运筹学
0 13 11 2
6 0 10 11
0 5 7 4
0 1
4
2
2019/9/10
第 6页
第4章 整数规划与分配问题
运筹学
0 13 11 2
6 0 10 11
0 5 7 4
0
1
4
2
-0 -0 -4 -2
0 13 7 0 6 0 6 9 0 5 3 2 0 1 0 0
2019/9/10
第 11页
第4章 整数规划与分配问题
运筹学
第三步,作最少的直线覆盖所有0元素:
4 5 4 ◎ √
◎ 1 Ø 4
2 ◎ 4 3
3
7
1
Ø
√
√
独立零元素的个数m等于最少直线数l,即l=m=3<n=4;
第四步,变换矩阵(bij)以增加0元素:没有被直线覆盖的所有元素中的最小元素为1,然后 打√各行都减去1;打√各列都加上1,得如下矩阵,并转第二步进行试指派:
第4章 整数规划与分配问题
§2 分配问题与匈牙利法
![§2 分配问题与匈牙利法](https://img.taocdn.com/s3/m/8a86a4a1f7ec4afe05a1df2a.png)
000 0 0
第二步:寻找独立0元素
50202 23000 0 10 5 7 2 -2 98004 0 6 3 6 5 -2
+2
最小元素为 min{10,5,7,2,6,3,6,5}=2
70202
43000 08350 11 8 0 0 4 04143
它有5个独立0元,得到最优解相应的解矩阵为
(1)任务E必须完成,其他4项中任选3项 完成;
任务 A B C D E 人员
甲
25 29 31 42 37
乙
39 38 26 20 33
丙
34 27 28 40 32
丁
24 42 36 23 45
戊
0 0 0 0M
(2)其中有一人完成两项,其他每人完成一项;
任务 A B C D E 人员
甲
25 29 31 42 37
第二步:在B中寻找位于不同行、不同列的 0元素。
(1)检查B的每行每列,从中找出未加标 记的0元素最少的一排(即行列的统称), 在该排用()标出一个0元,若该排有多个0 元,则任意标出一个即可;
(2)把刚得到()号标记的0元所在的行、列中 的其余0元划去,用表示;
(3)凡是(0), 就成为加了标记的0元,返 回(1)重复(1)、(2)、 ( 3),直到所 有0元都加上标记为止。若得到的加()号的0元 素个数等于n,则结束;否则转第三步
0 13 7 0 6069 0532 0100
0 13 11 2 6 0 10 11 0574 0142
0042
独立0元素
0 13 7 0 6069 0532 0100
得解矩阵
0 0 0 1
X
0
1
1 0
第二步:寻找独立0元素
50202 23000 0 10 5 7 2 -2 98004 0 6 3 6 5 -2
+2
最小元素为 min{10,5,7,2,6,3,6,5}=2
70202
43000 08350 11 8 0 0 4 04143
它有5个独立0元,得到最优解相应的解矩阵为
(1)任务E必须完成,其他4项中任选3项 完成;
任务 A B C D E 人员
甲
25 29 31 42 37
乙
39 38 26 20 33
丙
34 27 28 40 32
丁
24 42 36 23 45
戊
0 0 0 0M
(2)其中有一人完成两项,其他每人完成一项;
任务 A B C D E 人员
甲
25 29 31 42 37
第二步:在B中寻找位于不同行、不同列的 0元素。
(1)检查B的每行每列,从中找出未加标 记的0元素最少的一排(即行列的统称), 在该排用()标出一个0元,若该排有多个0 元,则任意标出一个即可;
(2)把刚得到()号标记的0元所在的行、列中 的其余0元划去,用表示;
(3)凡是(0), 就成为加了标记的0元,返 回(1)重复(1)、(2)、 ( 3),直到所 有0元都加上标记为止。若得到的加()号的0元 素个数等于n,则结束;否则转第三步
0 13 7 0 6069 0532 0100
0 13 11 2 6 0 10 11 0574 0142
0042
独立0元素
0 13 7 0 6069 0532 0100
得解矩阵
0 0 0 1
X
0
1
1 0
人员分配问题的匈牙利算法
![人员分配问题的匈牙利算法](https://img.taocdn.com/s3/m/01131851ee06eff9aff8073e.png)
案例分析
➢ 则可得二部图如下:
案例分析
由于N{y1, y4, y5} {x2, x5} {y1, y4, y5} 3 N{y1, y4, y5} {x2, x5} 2 则不满足二部图存在完美匹配定理,所以该网络图不存在完美匹配。 因此,该5人不能都得到聘书。
求最多几人能得到聘书?该问题可以转化为最大匹配 问题,及在上述二部图中找一个最大匹配,可以结合 MATLAB编程进行求解。
35.4000 34.7000 28.5000 29.2000
0
t1 = 127.8000
案例分析
结果分析:
s 矩阵保存指派问题求最小解时的指派方案及对应 方案的权值。
t 为指派问题的最小解,也即最小费用。
15
人员1分配任务5 花销35.4
24
32
4 1
53
பைடு நூலகம்总成本:127.8
案例分析
➢ 例5-2 某单位招收懂俄、英、日、德、法文的翻译各一人,有5人 应聘。已知乙懂俄文,甲、乙、丙、丁懂英文,甲、丙、丁懂日文, 乙、戊懂德文,戊懂法文,问这五个人是否都能得到聘书?最多几 人能得到聘书,招聘后每人从事哪方面的翻译工作? 解:我们可以利用网络图把它作为一个匹配问题来进行求解。
5.2人员分配问题的匈牙利算法
5.2.1 匈牙利算法基本步骤 5.2.2 匈牙利算法的MATLAB实现 5.2.3 案例分析
5.2.1 匈牙利算法基本步骤
➢ 首先给出匈牙利算法的关键概念。 在人员分配问题中,耗费矩阵是指工作 所需要的时间,该矩阵的第i行第j列元素 表示的j 是工人做工作所需要的时间或者 所耗费的原料,即指派问题中的耗费数 值。总耗费是指给定一种指派方案后, 该方案总的耗费数值之和。因此,耗费 矩阵就是匹配问题的权值矩阵,而总耗 费就是给出的一个匹配方案所对应边的 权值之和。
运筹学匈牙利法PPT课件
![运筹学匈牙利法PPT课件](https://img.taocdn.com/s3/m/a004ad945f0e7cd18425369d.png)
(1)人数与工作数不等的处理 当人数>工作数时:假想工作数,使得
与人数能够匹配, 对应的效率设定为0值。
当工作数>人数时:假想人数,使得与 工作数能够匹配, 对应的效率设定为0值。
人数和工作数不等的指派问题
4 8 7 15
12 9 2 14
6 9 12 8
11 7 17 6
6 9 12 10
运筹学匈牙利法
一、0-1 整数规划——枚举法
x1 . x2. x3
( 0. 0. 0 ) ( 0. 0. 1 ) ( 0. 1. 0 ) ( 1. 0. 0 ) ( 0. 1. 1 ) ( 1. 0. 1 ) ( 1. 1. 0 ) ( 1. 1. 1 )
满足约束条件(是∨ 否×) Z 值
(1) (2) (3) (4)
思考:如果将目标 函数变为下式会改 进吗?
max Z 2x2 3x1 5x3
三、指派问题的匈牙利法
指派问题(The Assignment Problem)
1、指派问题的形式表述
给定了一系列所要完成的任务(tasks)以及一系列完成 任务的被指派者(assignees),所需要解决的问题就是 要确定出哪一个人被指派进行哪一项任务
译日文:
44
min f
cij xij译德文:
i 1 j 1
译俄文:
工作 人 甲 乙 丙 丁 甲:
乙:
译英文 2 10 9
7 丙:
译日文 15 4 译德文 13 14
14 8 丁:
16 11
x21+ x22 + x23 + x24 =1 x31+ x32 + x33 + x34 =1 x41+ x42 + x43 + x44 =1 x11+ x21 + x31 + x41 =1 x12+ x22 + x32 + x42 =1 x13+ x23 + x33 + x43 =1 x14+ x24 + x34 + x44 =1
第五讲 分配问题(指派问题)与匈牙利法
![第五讲 分配问题(指派问题)与匈牙利法](https://img.taocdn.com/s3/m/d059d07a31b765ce0508144e.png)
n 件工作
y1 , y2 , … , yn 。 已 知 工 人 xi 完 成 工 作 yj 所 需 时 间 为 cij
分派方案满足下述两个条件: 分派方案满足下述两个条件:
1.任一个工人都不能去做两件或两件以上的工作 1.任一个工人都不能去做两件或两件以上的工作 2.任一件工作都不能同时接受两个及以上的工人去做 2.任一件工作都不能同时接受两个及以上的工人去做
min
4 7 6 6 6
8 7 15 12 4 0 4 3 11 8 0 3 0 11 8 9 17 14 10 7 0 2 10 7 3 0 1 7 7 3 9 12 8 7 6 ⇒ 0 3 6 2 1 ⇒ 0 2 3 2 1 7 14 6 10 6 0 1 8 0 4 0 0 5 0 4 0 3 6 4 0 0 2 3 4 0 9 12 10 6 6 min 0 1 3 0 0
5 0 2 0 2 3 0 0 0 10 5 7 9 8 0 0 0 6 3 6
9 8 5 4 0
尝试对所有零元素做标记,确定独立零元素。 尝试对所有零元素做标记,确定独立零元素。 标记 独立零元素
(2)逐列检验 )
与行检验类似:对只有一个未标记的零元素的列 用记号O将该 与行检验类似:对只有一个未标记的零元素的列,用记号 将该 零元素圈起,然后将被圈起的零元素所在行 零元素圈起,然后将被圈起的零元素所在行的其他未标记的零元 素用记号/划去 划去。 素用记号 划去。 重复列检验,直到没有未被标记的零元素或至少有两个未被标记 没有未被标记的零元素 重复列检验,直到没有未被标记的零元素或 的零元素为止。 的零元素为止。
分配问题(指派问题) 第5讲 分配问题(指派问题)与匈牙利法
匈牙利算法 ppt课件
![匈牙利算法 ppt课件](https://img.taocdn.com/s3/m/50541940bb4cf7ec4afed0e9.png)
第1页
指派问题(分配问题) (Assignment Problem)
例5 有一份中文说明书,需翻译 成英、日、德、俄四种文字,分 别记作E、J、G、R,现有甲、 乙、丙、丁四人,他们将中文说 明书翻译成英、日、德、俄四种 文字所需时间如下,问应该如何 分配工作,使所需总时间最少?
第2页
任务 E
J
98004 06365
第25页
然后划去所在的列的其他0元素, 记作Ø。
50202 23000
10 5 7 2
98004
Ø 6365
第26页
➢从只有一个0元素的列开始, 给这个0元素加圈,记
52 0 2
23000
10 5 7 2
98004
Ø 6365
第27页
然后划去所在的行的其他0元素, 记作Ø。
➢给只有一个0元素的列(或行)的0 元素加圈,记,然后划去所在的 行(或列)的其他0元素,记作Ø。
➢反复进行上述两步,直到所有的0 元素都被圈出和划掉为止。
第13页
➢若还有没有划圈的0元素,且同行 (或列)的0元素至少有二个,从剩有 0元素最少的行(或列)开始,比较这 行各0元素所在列中0元素的数目,选 择0元素少的那列的0元素加圈,然后 划掉同行同列的其他0元素,可反复进 行,直到所有的0元素都被圈出和划掉 为止。
第4页
引入0-1变量xij=1分配第i人去完 成第j 项任务,xij=0不分配第i人去完
成第j 项任务。
分配问题的数学模型:
Min Z= cijxij
s.t. xij =1 (j=1,2……n) xij =1 (i=1,2……n)
xij 0或1
(i=1,2…..n; j=1,2……n)
指派问题(分配问题) (Assignment Problem)
例5 有一份中文说明书,需翻译 成英、日、德、俄四种文字,分 别记作E、J、G、R,现有甲、 乙、丙、丁四人,他们将中文说 明书翻译成英、日、德、俄四种 文字所需时间如下,问应该如何 分配工作,使所需总时间最少?
第2页
任务 E
J
98004 06365
第25页
然后划去所在的列的其他0元素, 记作Ø。
50202 23000
10 5 7 2
98004
Ø 6365
第26页
➢从只有一个0元素的列开始, 给这个0元素加圈,记
52 0 2
23000
10 5 7 2
98004
Ø 6365
第27页
然后划去所在的行的其他0元素, 记作Ø。
➢给只有一个0元素的列(或行)的0 元素加圈,记,然后划去所在的 行(或列)的其他0元素,记作Ø。
➢反复进行上述两步,直到所有的0 元素都被圈出和划掉为止。
第13页
➢若还有没有划圈的0元素,且同行 (或列)的0元素至少有二个,从剩有 0元素最少的行(或列)开始,比较这 行各0元素所在列中0元素的数目,选 择0元素少的那列的0元素加圈,然后 划掉同行同列的其他0元素,可反复进 行,直到所有的0元素都被圈出和划掉 为止。
第4页
引入0-1变量xij=1分配第i人去完 成第j 项任务,xij=0不分配第i人去完
成第j 项任务。
分配问题的数学模型:
Min Z= cijxij
s.t. xij =1 (j=1,2……n) xij =1 (i=1,2……n)
xij 0或1
(i=1,2…..n; j=1,2……n)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章 整数规划与分配问题
运筹学
分配问题与匈牙利法
2020/12/30
1
第4章 整数规划与分配问题
运筹学
1. 分配问题
在实际中经常会遇到这样的问题,有n 项不同的任务,需要n 个人分别完成其中的一项,但 由于任务的性质和各人的专长不同,因此各人去完成不同的任务的效率(或花费的时间或费 用)也就不同。于是产生了一个问题,应指派哪个人去完成哪项任务,使完成 n 项任务的总 效率最高(或所需时间最少),这类问题称为分配问题或指派问题。
4 5 4 0 0 1 0 4 2 0 4 3 3 7 1 0
第二步,试指派:
-5
4 5 4 ◎
◎ 1 Ø 4
2 ◎ 4 3
3
7
1
Ø
找到 3 个独立零元素 但m=3<n=4
2020/12/30
11
第4章 整数规划与分配问题
运筹学
第三步,作最少的直线覆盖所有0元素:
4 5 4 ◎ √
◎ 1 Ø 4
2020/12/30
2
第4章 整数规划与分配问题
例1
任务
人员
A
B
C
D
甲
2
15
13
4
乙
10
4
14
15
丙
9
14
16
13
丁
7
8
11
9
运筹学
2020/12/30
3
第4章 整数规划与分配问题
运筹学
2. 匈牙利法
第一步:变换指派问题的系数矩阵(cij)为(bij),使在(bij)的各行各列中都出现0元素 第二步:进行试分配,以寻求最优解。如果得到最优解,运算结束,否则转到第三步。 第三步:作最少的直线覆盖所有0元素。 第四步:变换矩阵(bij)以增加0元素,转到第二步。
任务 人员
甲 乙 丙 丁
英语 6 4 3 5
日语 7 5 1 9
德语 11 9 10 8
俄语 2 8 4 2
2020/12/30
10
第4章 整数规划与分配问题
求解过程如下: 第一步,变换系数矩阵:
运筹学
6 7 11 2 2
(cij
)
4 3
5 1
9 10
8 4 4 1
5 9 8 2 2
4 5 9 0 0 1 5 4 2 0 9 3 3 7 6 0
◎ 1 Ø 4
2 ◎ 4 3
3
7
1
Ø
√
√
3 4 3 ◎
◎ 1 Ø 5
2 ◎ 4 4
2
6
0
Ø
3 4
◎ 1 2 ◎ 2 6
3 ◎
Ø 5
4 4
◎
Ø
得到4个独立零元素, 所以 最优解矩阵为:
2020/12/30
运筹学
3 4 3 0
0 1 0 5
2 0 4 4
2
6
0
0
0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0
2020/12/30
4
第4章 整数规划与分配问题
例1
任务
人员
A
B
C
D
甲
2
15
13
4
乙
10
4
14
15
丙
9
14
16
13
丁
7
8
11
9
运筹学
2020/12/30
5
第4章 整数规划与分配问题
求解过程如下: 第一步,变换系数矩阵:
2 15 13 4 -2
10 4 14 15 -4
9 14 16 13 -9
13 14
4 15
0 1 0 0
丙
9
14
16
1 0 0 0
13
丁
7
8
11
9 0 0 1 0
此分配问题的最优时间:4+4+9+11=28
2020/12/30
9
第4章 整数规划与分配问题
运筹学
例 2 有一份中文说明书,需译成英、日、德、俄四种文字。现有甲、乙、丙、丁四人,他们 将中文说明书译成不同语种的说明书所需时间如下表所示,问如何分配任务,使总时间最少?
7
第4章 整数规划与分配问题
第二步,试分配:
0Ø 13 7 ◎0 6 0◎ 6 9 0◎ 5 3 2 0Ø 1 0◎ Ø0
运筹学
0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0
2020/12/30
8
第4章 整数规划与分配问题
运筹学
任务
人员
A
B
C
D 0 0 0 1
甲 乙
2 10
15 4
13
第4章 整数规划与分配问题
任务 人员
甲 乙 丙 丁
英语 6 4 3 5
日语 7 5 1 9
德语 11 9 10 8
此分配问题的最优时间:2+4+1+8=15
运筹学
俄语 0 0 0 1
2 1 0 0 0
8
0 1 0 0
4
2 0 0 1 0
2020/12/30
14
第4章 整数规划与分配问题
例3
运筹学
-1 -2
16
第4章 整数规划与分配问题
运筹学
2 0 4 2 4 2 5 0 3 0 4 1 0 1 3 4 0 3 5 1 0 2 3 0 5
2 ◎0 4 2 4 2 5 Ø0 3 ◎0 4 1 ◎0 1 3 4 Ø0 3 5 1 ◎0 2 3 0Ø 5
2020/12/30
17
第4章 整数规划与分配问题
2 ◎ 4 3
3
7
1
Ø
√
√
独立零元素的个数m等于最少直线数l,即l=m=3<n=4;
第四步,变换矩阵(bij)以增加0元素:没有被直线覆盖的所有元素中的最小元素为1,然后 打√各行都减去1;打√各列都加上1,得如下矩阵,并转第二步进行试指派:
2020/12/30
12
第4章 整数规划与分配问题
4 5 4 ◎ √
费 工作
用
A
B
C
D
E
人员
甲
7
5
9
8
11
乙
9
12
7
11
9
丙
8
5
4
6
9
丁
7
3
6
9
6
戊
4
6
7
5
11
2020/12/30
15
第4章 整数规划与分配问题
运筹学
7 5 9 8 11 5
9
12
7 11
9
7
8 5 4 6 9 4
7
3
69
6
3
4 6 7 5 11 4
2020/12/30
2 0 4 3 6 2 5 0 4 2 4 1 0 2 5 4 0 3 6 3 0 2 3 1 7
运筹学
2 ◎0 4 2 4 √ 2 5 Ø0 3 ◎0 4 1 ◎0 1 3 4 Ø0 3 5 1 √ ◎0 2 3 0Ø 5
√
l =m=4 < n=5
2020/12/30
18
第4章 整数规划与分配问题
运筹学
2 ◎0 4 2 4 2 5 Ø0 3 ◎0 4 1 ◎0 1 3 4 Ø0 3 5 1 ◎0 2 3 0Ø 5
7
8
11
9
-7
运筹学
0 13 11 2
6 0 10 11
0 5 7 4
0 1
4
2
2020/12/30
6
第4章 整数规划与分配问题
运筹学
0 13 11 2
6 0 10 11
0 5 7 4
0 1
4
2
-0 -0 -4 -2
0 13 7 0 6 0 6 9 0 5 3 2 0 1 0 0
2020/12/30
1 0 3 1 3 2 6 0 3 0 4 2 0 1 3 3 0 2 4 0 0 3 3 0 5
2020/12/30
19
第4章 整数规划与分配问题
运筹学
1 0 3 1 3 1 ◎0 3 1 3 √
2 6 0 3 0 2 6 ◎0 3 Ø0 √
运筹学
分配问题与匈牙利法
2020/12/30
1
第4章 整数规划与分配问题
运筹学
1. 分配问题
在实际中经常会遇到这样的问题,有n 项不同的任务,需要n 个人分别完成其中的一项,但 由于任务的性质和各人的专长不同,因此各人去完成不同的任务的效率(或花费的时间或费 用)也就不同。于是产生了一个问题,应指派哪个人去完成哪项任务,使完成 n 项任务的总 效率最高(或所需时间最少),这类问题称为分配问题或指派问题。
4 5 4 0 0 1 0 4 2 0 4 3 3 7 1 0
第二步,试指派:
-5
4 5 4 ◎
◎ 1 Ø 4
2 ◎ 4 3
3
7
1
Ø
找到 3 个独立零元素 但m=3<n=4
2020/12/30
11
第4章 整数规划与分配问题
运筹学
第三步,作最少的直线覆盖所有0元素:
4 5 4 ◎ √
◎ 1 Ø 4
2020/12/30
2
第4章 整数规划与分配问题
例1
任务
人员
A
B
C
D
甲
2
15
13
4
乙
10
4
14
15
丙
9
14
16
13
丁
7
8
11
9
运筹学
2020/12/30
3
第4章 整数规划与分配问题
运筹学
2. 匈牙利法
第一步:变换指派问题的系数矩阵(cij)为(bij),使在(bij)的各行各列中都出现0元素 第二步:进行试分配,以寻求最优解。如果得到最优解,运算结束,否则转到第三步。 第三步:作最少的直线覆盖所有0元素。 第四步:变换矩阵(bij)以增加0元素,转到第二步。
任务 人员
甲 乙 丙 丁
英语 6 4 3 5
日语 7 5 1 9
德语 11 9 10 8
俄语 2 8 4 2
2020/12/30
10
第4章 整数规划与分配问题
求解过程如下: 第一步,变换系数矩阵:
运筹学
6 7 11 2 2
(cij
)
4 3
5 1
9 10
8 4 4 1
5 9 8 2 2
4 5 9 0 0 1 5 4 2 0 9 3 3 7 6 0
◎ 1 Ø 4
2 ◎ 4 3
3
7
1
Ø
√
√
3 4 3 ◎
◎ 1 Ø 5
2 ◎ 4 4
2
6
0
Ø
3 4
◎ 1 2 ◎ 2 6
3 ◎
Ø 5
4 4
◎
Ø
得到4个独立零元素, 所以 最优解矩阵为:
2020/12/30
运筹学
3 4 3 0
0 1 0 5
2 0 4 4
2
6
0
0
0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0
2020/12/30
4
第4章 整数规划与分配问题
例1
任务
人员
A
B
C
D
甲
2
15
13
4
乙
10
4
14
15
丙
9
14
16
13
丁
7
8
11
9
运筹学
2020/12/30
5
第4章 整数规划与分配问题
求解过程如下: 第一步,变换系数矩阵:
2 15 13 4 -2
10 4 14 15 -4
9 14 16 13 -9
13 14
4 15
0 1 0 0
丙
9
14
16
1 0 0 0
13
丁
7
8
11
9 0 0 1 0
此分配问题的最优时间:4+4+9+11=28
2020/12/30
9
第4章 整数规划与分配问题
运筹学
例 2 有一份中文说明书,需译成英、日、德、俄四种文字。现有甲、乙、丙、丁四人,他们 将中文说明书译成不同语种的说明书所需时间如下表所示,问如何分配任务,使总时间最少?
7
第4章 整数规划与分配问题
第二步,试分配:
0Ø 13 7 ◎0 6 0◎ 6 9 0◎ 5 3 2 0Ø 1 0◎ Ø0
运筹学
0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0
2020/12/30
8
第4章 整数规划与分配问题
运筹学
任务
人员
A
B
C
D 0 0 0 1
甲 乙
2 10
15 4
13
第4章 整数规划与分配问题
任务 人员
甲 乙 丙 丁
英语 6 4 3 5
日语 7 5 1 9
德语 11 9 10 8
此分配问题的最优时间:2+4+1+8=15
运筹学
俄语 0 0 0 1
2 1 0 0 0
8
0 1 0 0
4
2 0 0 1 0
2020/12/30
14
第4章 整数规划与分配问题
例3
运筹学
-1 -2
16
第4章 整数规划与分配问题
运筹学
2 0 4 2 4 2 5 0 3 0 4 1 0 1 3 4 0 3 5 1 0 2 3 0 5
2 ◎0 4 2 4 2 5 Ø0 3 ◎0 4 1 ◎0 1 3 4 Ø0 3 5 1 ◎0 2 3 0Ø 5
2020/12/30
17
第4章 整数规划与分配问题
2 ◎ 4 3
3
7
1
Ø
√
√
独立零元素的个数m等于最少直线数l,即l=m=3<n=4;
第四步,变换矩阵(bij)以增加0元素:没有被直线覆盖的所有元素中的最小元素为1,然后 打√各行都减去1;打√各列都加上1,得如下矩阵,并转第二步进行试指派:
2020/12/30
12
第4章 整数规划与分配问题
4 5 4 ◎ √
费 工作
用
A
B
C
D
E
人员
甲
7
5
9
8
11
乙
9
12
7
11
9
丙
8
5
4
6
9
丁
7
3
6
9
6
戊
4
6
7
5
11
2020/12/30
15
第4章 整数规划与分配问题
运筹学
7 5 9 8 11 5
9
12
7 11
9
7
8 5 4 6 9 4
7
3
69
6
3
4 6 7 5 11 4
2020/12/30
2 0 4 3 6 2 5 0 4 2 4 1 0 2 5 4 0 3 6 3 0 2 3 1 7
运筹学
2 ◎0 4 2 4 √ 2 5 Ø0 3 ◎0 4 1 ◎0 1 3 4 Ø0 3 5 1 √ ◎0 2 3 0Ø 5
√
l =m=4 < n=5
2020/12/30
18
第4章 整数规划与分配问题
运筹学
2 ◎0 4 2 4 2 5 Ø0 3 ◎0 4 1 ◎0 1 3 4 Ø0 3 5 1 ◎0 2 3 0Ø 5
7
8
11
9
-7
运筹学
0 13 11 2
6 0 10 11
0 5 7 4
0 1
4
2
2020/12/30
6
第4章 整数规划与分配问题
运筹学
0 13 11 2
6 0 10 11
0 5 7 4
0 1
4
2
-0 -0 -4 -2
0 13 7 0 6 0 6 9 0 5 3 2 0 1 0 0
2020/12/30
1 0 3 1 3 2 6 0 3 0 4 2 0 1 3 3 0 2 4 0 0 3 3 0 5
2020/12/30
19
第4章 整数规划与分配问题
运筹学
1 0 3 1 3 1 ◎0 3 1 3 √
2 6 0 3 0 2 6 ◎0 3 Ø0 √