分配问题与匈牙利法
运筹学-12分配问题

具体求解过程(6)
• 4.没有找到m个独立的 “0”:
• (1)找最小直线覆盖所有 “0”
• 对没有打的行画横线; • 所有打的列画上垂线. • 找到了覆盖矩阵所有零
元素的最小直线数.
(0) 8 2 5 11 (0) 5 4 2 3 (0) 0 0 11 4 5
O3 26 17 16 19 0
增加一个虚拟工作T5
O4 19 21 23 17 0 O5 17 18 19 17 0
每一个工人干 这项工作需 要的时间比其他工作所需时 间要多的多,为什么?
O2下岗,
O1T1, T5 , O3T3 , O4T4 , O5T2 ,93-27=66
人员少,工作岗位多的情况P.125/4.5
• 如该列没有零元素或有 两个以上零元素(划去的不 计在内),则专下一列,直到 最后一列为止.
0 8 2 5 11 0 5 4 2 3 0 0 0 11 4 5
(0) 8 2 5 11 (0) 5 4 2 3 0 0 0 11 4 5 .
具体求解过程(4)
乙
总时间:101
丙
•加一个虚拟人员戊,
39 34
38 27
26 28
20 40
33 32
其效率为55(最大) 丁 24 42 36 23 45
甲B;乙D;丙C;丁A;戊E 戊 0 0
0
0
0
总时间:165-55=101
人员少,工作岗位多的情况P.125/4.5
25 29 31 42 37 25 0 4 6 17 12 0 4 5 17 7
• 即做2.找到m个独立
“0”
匈牙利法求解指派问题

然后划去所在的列的其他0 元素,记作Ø。
Ø 13 7 0 6 6 9 5 3 2 Ø1 0 0
➢给只有一个0元素的列的0 元素加圈,记。
Ø 13 7 0 6 6 9 5 3 2 Ø 1 0
然后划去所在的行的其他0元 素,记作Ø
Ø 13 7 0 6 6 9 5 3 2 Ø 1 Ø
➢给最后一个0元素加圈, 记。
Ø 13 7 6 6 9 5 3 2 Ø 1 Ø
可见m=n=4,得到最优解。
0001 0100 1000 0010
即甲译俄文、乙译日文、丙 译英文、丁译德文所需时间 最少。Z=28小时
例6 分配问题效率矩阵
任务 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 9 7 89666 6 7 17 12 14 9 7 15 14 6 6 10 6 4 10 7 10 9 4
50202 23000 0 10 5 7 2 98004 06365
➢从只有一个0元素的行开始,给 这个0元素加圈,记
50202 23000
10 5 7 2
98004 06365
然后划去所在的列的其他0元素,记 作Ø。
70202 4 3 000 Ø 8350 11 8 0 0 4 4 1 4 3
➢从只有一个0元素的行开始,给这个0 元素加圈,记
70202 4 3 000 Ø 8 3 5 11 8 0 0 4 4 1 4 3
然后划去所在的列的其他0元素,记 作Ø。
70202 4 3 00Ø Ø 8 3 5 11 8 0 0 4 4 1 4 3
4.2-分配问题和匈牙利法

0 0 0 1 0
0 0 1 0 0
0 0 0 0 1
0 1 0 0 0
0 1 3 2 0
0 3 0 3 6 0 2 0 2 0 0 3 0 2 3 0 4 4 0 6
此问题有多个最优解
匈牙利法
第三种情况
矩阵中所有零元素或被划去,或打上( )号,但打( )号的 零元素个数仍小于n.
整数规划
整数规划的数学模型 设置逻辑变量建立整数规划模型 分配问题与匈牙利法 分支定界法、割平面法 应用举例
§3 分配问题与匈牙利法
分配问题的标准形式及其数学模型
分配问题也称指派问题(assignment problem),在我们现实 生活中,常有各种性质的分配问题.例如:应如何分配若干 项工作给若干个人(或部门)来完成,以达到总体的最佳效果 等等.由于分配问题的多样性,我们有必要定义分配问题的 标准形式.
可用表上作 解:这是一个标准的分配问题.若设0-1变量 业法求解
1 表示学生i翻译语种j xij (i, j 1, 2,3, 4) 0 表示学生i不翻译语种j 则问题的数学模型为
min z 14 x11 9 x12 4 x13 15 x14 11x21 7 x22 9 x23 10 x24 13 x31 6 x32 10 x33 5 x34 17 x41 9 x42 15 x43 13 x44 4 xij 1 i 1, 2,3, 4 j 1 4 s.t. xij 1 j 1, 2,3, 4 i 1 xij 0或1 i, j 1, 2,3, 4
匈牙利法
0 8 11 0 上述例子完成一、二、三步之后如右: 2 3 转向第四步: 0 11
多传感器静态数据分配问题的匈牙利解法

算 表 明 , 法 能 较 大 程 度 地 降 低 计 算 量 , 一 种 实 用 性 很 好 的 方 法 , 时 也 值 得 向 更 高 维 该 是 同 的情 况 作 进 一 步 的研 究和 仿 真 比较 。 关 键 词 : 传 感 器 数 据 融 合 ; 标 跟 踪 ; 据 关 联 多 目 数
( 京 理 工 大 学 动 力 工 程 学 院 8 0教 研 室 , 苏 南 京 2 0 9 ) 南 1 江 1 0 4
摘
要 : 目标 多 传 感 器 数 据 关 联 中 的 分 配 问 题 一 直 是 数 据 融 合 领 域 中 的 一 个 关 键 多
问 题 , 多 的 研 究 者 都 提 出 了 一 系 列 不 同 的 方 法 来 解 决 这 个 NP— a d 问 题 。 本 文 提 出 了 众 hr 用 2维 分 配 问 题 的 匈 牙 利 解 法 来 解 决 该 问 题 , 出 求 解 2D ,一 分 配 的 方 法 。 经 仿 真 计 给 一 3D
分 配 算 法 相 比于 多 假 设 跟 踪 算 法 MHT( 去 被 1 多 目标 多 传 感 器数 据 关 联 的静 态 分 配 过 认 为 是 最 优 关 联 的 唯 一 方 法 ) 说 是 一 种 可 行 问 题 来 性 和 可 实 现性 更 强 的 方 法 。 — 分 配 算 法 是 一 D Ⅳ 个 传 感 器 对 侦 察 区 域 测 量 可 得 到 个 LS , 种 离 散 数 学 优 化 方 法 , 是 该 方 法 在 ≥ 3时 是 扫 描 目录 ( I T) 每 个 目录 都 有 与 实 际 目标 数 但
能 经 能 获 得 目标 方 位 数 据 , 数 据 关 联 变 得 非 常 困 划 问题 的 特 点 , 在 一 定 程 度 上 降 低 计 算 量 , 则 难 。 目前 数 据 关 联 采 用 的 多维 分 配 算 法 中 , D — 仿 真 表 明是 一 种 实 用 性 很 强 的方 法 。
第五章 匈牙利法与最佳指派问题

7 2 2
4
3
8 3 5 3
11 8
4
4 1 4
情况一出现,即得到了最优解,其相应的解矩阵为:
0 1 0 0 0
0 0 1 0 0
xij
1
0
0
0
0
0 0 0 1 0
0 0 0 0 1
由此得知最优指派方案为甲完成任务B,乙完成任务
C,丙完成任务A,丁完成任务D,戊完成任务E,最少时
间为
min z 7 6 7 6 6 32
而总的最少时间为32天.
当然,由于方法中的第二步4中的情况二的出现,造成 指派问题的最优解常常是不唯一的,但不同最优解的 最优值总是相同的.
第三节 非标准指派问题
前一节的匈牙利法只适用于目标函数为极小、价值 系数矩阵为方阵且价值系数矩阵中元素均为非负的情况。 当指派问题不满足上述三个条件时,就应先化成标准的 指派问题,然后再用匈牙利法求解.
解:
ABC DEF
甲 16 10 12 15 0 0 8 2
甲 16 10 12 15 0 0
8
2
乙 11 12 10 18 0 0 3 2 3
乙
11
12
10
18
0
0
3
2
3
丙 8 17 13 16 0 0 7 3 1
丙
8
17 13 16
0
0
7
3
1
8 10 10 15
本例经过反复的行、列检验后得到如下矩阵:
5 2 2
2
3
10 5 7 5
9
8
4
6 3 6 2
情况三出现,亦即未得到完全分配方案,求解过程 按以下步骤继续进行。
第四讲指派型及匈牙利方法

第四讲 指派模型及匈牙利方法§ 4.1 引言将不同的任务分派给若干人去完成,由于任务有难易,人员素质有高低,因此各人去完成不同的任务的效率就有差异。
我们的问题是:应分派何人去完成哪种任务使得总效率最高(或所花费的时间最少,或所需的费用最低)?这一类问题称为指派问题或分配问题。
指派问题的一般提法是:用最佳方法按照一对一的原则把“任务”指派给“人”。
具体地就是:设有n 个人A 1,A 2,…,A n ,被分派去完成n 项工作B 1,B 2,…,B n ,要求每项工作需且仅需一个人去完成,每个人需完成且仅需完成一项工作。
已知A i 完成B j 工作的效率(如工时、成本或价值等)为c ij 。
问应如何指派,才能使总的工作效率最好?指派问题本质上是0—1规划问题。
设X ij 表示A i 完成B j 工作,并令⎪⎩⎪⎨⎧=工作去完成当不指派工作去完成当指派j i j i ij B A B A X 0 1,则指派模型的标准形式为), ,2 ,1,( }1 ,0{ ) , ,2 ,1( 1 ), ,2 ,1( 1s.t.)0( min 1111n j i X n j X n i Xc X c Z ij n i ij nj ijij ni nj ij ij ΛΛΛ=∈====≥=∑∑∑∑====由c ij 组成的方阵C = (c ij )n ⨯n 称为效率矩阵。
只要效率矩阵C 给定,指派问题也就相应确定。
若0ij x 为指派模型的最优解,则n 阶方阵X = (0ij x ) 称为指派模型的最优解方阵。
事实上,方阵X 为一置换方阵,即该矩阵中的每一行、每一列只有一个“1”。
显然,指派问题是运输问题的特例。
§ 4.2 匈牙利方法除了求解0—1规划外,解决指派问题还有其特殊的方法,它是由匈牙利数学家柯尼格(D. Köngig )提出的,因此得名匈牙利方法(The Hungarian Method of Assignment )。
分配问题指派问题与匈牙利法

0 0 0 1 0
1
0
0
0
0
整体解题思路总结
整体解题思路总结
例题:
单位:小时
人1 人2 人3 人4 人5
工作1 4
8
7 15 12
工作2 7
9 17 14 10
工作3 6
9 12 8
7
工作4 6
7 14 6 10
工作5 6
9 12 10 6
整体解题思路总结
例题:
4 8 7 15 12 7 9 17 14 10
第5讲 分配问题(指派问题)与匈牙利法
分配问题的提出
分配问题的提出
若干项工作或任务需要若干个人去完成。由于每人的知识、能力、经验的不同, 故各人完成不同任务所需要的时间不同(或其他资源)。
问: 应指派哪个人完成何项工作,可使完成所有工作所消耗的总资源最少?
分配问题的提出
➢设某公司准备派 n 个工人x1,x2,…,xn ,去作 n 件工作 y1,y2,…,yn。已知工人xi完成工作 yj 所需 时间为cij (i,j=1,2,…,n)。
6
9
12
8
7
6 7 14 6 10
ui
0 0
3 1
0 7
11 7
8 3
0 1
பைடு நூலகம்
0
2
3
2
1
1
0 0 5 0 4 0
0
2
3
4
0
0
vj
-1 0 0 0 0
⑨从原矩阵的每个元素aij 中分别减去ui和vj,得到新元 素
ui
0 0
3 1
0 7
11 7
8 3
整数规划---匈牙利法

x1 (1) 1 0 0 0 x2 0 (1) 1 0 0 x3 0 1 0 0 (1) x4 0 0 (1) 0 0 x5 0 0 1 (1) 1
y1
y2
y3
y4
y5
但礼让原则未必都能得到最大 匹配,其次礼让原则当规模大 时无法使用,且无法用计算机 实现
z' = ∑∑C'ij xij =∑∑Cij xij − a∑xij + b∑xij = ∑Cij xij − a + b = z − a + b
j =1 i =1 n n
利用这个性质,可使原效益矩阵变换为含有很多零 元素的新的矩阵(即每行减去该行的最小值,再每列 也类似),其余C’ij ≥0. 如果C=(C’ij)有n个不同行,不同列的零元素,以下 简称为独立的零元素,则令矩阵x=( xij )中,对这n个独 立的零元素位置取1,其余取0,代入目标函数得z’= 0,它一定是最小(因为C’ij ≥0 )
Step4:增加(转移)零元素 a.求出未被直线覆盖的元素中的最小值k(本例中 k=2). b.对打√行减去k,对打√列加上k go to step2
2 (0) 8 11 (0) 5 2 3 (0) 0 13 4
√
5 √ 4 0 √ 5
0 (0) 6 13 (0) 5 4 3 (0) 0 11 2
进一步考虑
指派问题用匈牙利法计算,模型需要满足的形式: (1)目标函数是求最小值 (2)效益矩阵必须是n阶方阵 (3)效益矩阵中每个元素Cij ≥0,且是常数
如人员分配问题:
x1 x2 x3 x4 x5 y1 y2 y3 y4 y5
x1 x2 A = (aij ) = x3 x4 x5 1 0 0 0 0
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
5
Ø0
3
◎0
4 1 ◎0 1 3
选择直线外的最小元素 为1;直线外元素减1, 直线交点元素加1,其 他保持不变。
4
Ø0
3
5
1
√
◎0 2 3 0Ø 5
√
分配问题与匈牙利法
1 ◎0 3 1 3 √
2
6 Ø0 3
0◎
√
l =m=4 < n=5
选择直线外最小元素为1, 直线外元素减1,直线交
分配问题与匈牙利法
3 4 3 0
0
1
0
5
2 0 4 4
2
6
0
0
试指派
3 4 3 ◎
◎
1
Ø
5
2 ◎ 4 4
2
6
◎
Ø
得到4个独立零元素, 所以最优解矩阵为:
0 0 0 1
1
0
0
0
0 1 0 0
0 0 1 0
即完成4个任务的总时间最少为:2+4 +1+8=15
分配问题与匈牙利法
例4.8 已知五人分别完成五项工作耗费如下表,求最优分配 方案。
)
4 3
5 1
9 10
8 4 4 1
5 9 8 2 2
2)试指派(找独立0元素)
4 5 9 0
0
1
5
4
2 0 9 3
3
7
6
0
-5
4 5 4 0
0
1
0
4
பைடு நூலகம்
2 0 4 3
3 7 1 0
4 5 4 ◎
◎
1
Ø
4
2 ◎ 4 3
3
7
1
Ø
找到 3 个独立零元素
但m=3< n= 4
分配问题与匈牙利法
若仍有没有划圈的0元素,且同行(列)的0元素至少有两个,比 较这行各0元素所在列中0元素的数目,选择0元素少这个0元素 加圈(表示选择性多的要“礼让”选择性少的)。然后划掉同行同 列的其它0元素。可反复进行,直到所有0元素都已圈出和划掉为 止。
分配问题与匈牙利法
若◎ 元素的数目m 等于矩阵的阶数n(即:m=n),那么这
0
0
0
0
分配问题与匈牙利法
3. 一个人可做几件事的指派问题
若某人可做几件事,则将该人化作相同的几个“人”来接受指派,且费用系数 取值相同。
例如:丙可以同时任职A和C工作,求最优指派方案。
甲 15 20 10 9
乙
6
5
4
7
丙 10 13 16 17
15 20 10 9
6
5
4
7
10 13 16 17
2)试指派(找独立0元素)
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
独立0元素的个数l=4<5,故画直线调整矩阵。
分配问题与匈牙利法
2 ◎0 4 2 4 √
0 1 0 0 0
0
0
0
1
0
0 0 0 0 1
1 0 0 0 0
0 0 1 0 0
即甲-B,乙-D,丙-E,丁-A, 任务C放弃。
最少时间为105。
0元素对应解矩阵(xij)中的元素为1,其余为0,这就得到最优解。
分配问题与匈牙利法
找独立0元素,常用的步骤为:
从只有一个0元素的行开始,给该行中的0元素加圈,记作◎ 。 然后划去◎ 所在列的其它0元素,记作Ø ;这表示该列所代表的 任务已指派完,不必再考虑别人了。依次进行到最后一行。
从只有一个0元素的列开始(画Ø的不计在内),给该列中的0 元素加圈,记作◎;然后划去◎ 所在行的0元素,记作Ø ,表示 此人已有任务,不再为其指派其他任务了。依次进行到最后一列。
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个人,例如
15 20 10 9
6
5
4
7
10 13 16 17
15 20 10 9
6
5
4
7
10 13 16 17
10
13
16
17
分配问题与匈牙利法
4. 某事一定不能由某人做的指派问题
将该人做此事的效率系数取做足够大的数,可用M表示。
例4.10 分配甲、乙、丙、丁四个人去完成A、B、C、D、E五项 任务。每个人完成各项任务的时间如表所示。由于任务数多于人 数,考虑任务E必须完成,其他4项中可任选3项完成。试确定最 优分配方案,使完成任务的总时间最少。
3)作最少的直线覆盖所有0元素
4 5 4 ◎ √
◎
1
Ø
4
2 ◎ 4 3
3
7
1
Ø
√
独立零元素的个数m等于最少 直线数l,即l=m=3<n=4;
√
4)没有被直线通过的元素中选择最小值为1,变换系数矩阵,将没有被直线通
过的所有元素减去这个最小元素;直线交点处的元素加上这个最小值。得到新
的矩阵,重复2)步进行试指派
指派问题的最优解已得到。若m < n, 则转入下一步。
3) 用最少的直线通过所有0元素。其方法:
① 对没有◎的行打“√”; ② 对已打“√” 的行中所有含Ø元素的列打“√” ; ③ 再对打有“√”的列中含◎ 元素的行打“√” ; ④ 重复①、②直到得不出新的打√号的行、列为止; ⑤ 对没有打√号的行画横线,有打√号的列画纵线,这就得到覆盖
分配问题与匈牙利法
解: 1) 这是不平衡的指派问题,首先转换为标准型,再用匈牙利 法求解。 2) 由于任务数多于人数,所以假定一名虚拟人,设为戊。因为工 作E必须完成,故设戊完成E的时间为M(M为非常大的数),其 余效率系数为0,则标准型的效率矩阵表示为:
分配问题与匈牙利法
用匈牙利法求出最优指派方案为:
分配问题与匈牙利法
解:1)变换系数矩阵,增加0元素。
7 5 9 8 11 5
9
12
7 11
9
7
8 5 4 6 9 4
7 3 6 9 6 3
4 6 7 5 11 4
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
-1 -2
分配问题与匈牙利法
分配问题与匈牙利法
例4.6 有一份中文说明书,需译成英、日、德、俄四种文字, 分别记作A、B、C、D。现有甲、乙、丙、丁四人,他们将 中文说明书译成不同语种的说明书所需时间如下表所示,问 如何分派任务,可使总时间最少?
分配问题与匈牙利法
解:1)变换系数矩阵,增加0元素。
6 7 11 2 2
( c ij
所有0元素的最少直线数 l 。
注:l 应等于m,若不相等,说明试指派过程有误,回到第2步,另行试 指派;若 l=m < n,表示还不能确定最优指派方案,须再变换当前的系 数矩阵,以找到n个独立的0元素,为此转第4步。
分配问题与匈牙利法
4) 变换矩阵(bij)以增加0元素
在没有被直线通过的所有元素中找出最小值,没有被直线 通过的所有元素减去这个最小元素;直线交点处的元素加上这个 最小值。新系数矩阵的最优解和原问题仍相同。转回第2步。
注:此问题有多个最优解
分配问题与匈牙利法
Ø0 Ø0 3 ◎0 3
1
6
0Ø 2
0◎
3 2 0◎ 0Ø 3
2
0◎
2
3
Ø0
0◎ 4 4 0Ø 6
总费用为=8+9+4+3+4=28
分配问题与匈牙利法
2. 不平衡的指派问题
当人数m大于工作数n时,加上m-n项虚拟工作,例如:
5
9 10
4 2 ◎0 1 3 √ 点元素加1,其他保持不
3
Ø0 2
4
变,得到新的系数矩阵。
0 Ø √
◎0 3 3 Ø0 5
√√
√
分配问题与匈牙利法
0Ø ◎0 3 0Ø 3
1
6
0◎ 2
Ø0
3 2 0Ø 0◎ 3
2
Ø0
2
3
◎0
◎0 4
4
总费用为
0 6 Ø
=5+7+6+6+4=28
分配问题与匈牙利法
指派问题的求解步骤:
1) 变换指派问题的系数矩阵(cij)为(bij),使在(bij)的各行各列中都出现0元素,即 • 从(cij)的每行元素都减去该行的最小元素; • 再从所得新系数矩阵的每列元素中减去该列的最小元素。
2) 进行试指派,以寻求最优解。 在(bij)中找尽可能多的独立0元素,若能找出n个独立0元素,就以这n个独立