运筹学案例 案例八:匹配问题 第 1 页 共 5 页 案例八:匹配问题 案例概述: 有 5 个待业者 i A(i 1,2, ,5)=L 和 5 项工作 j B(j 1,2, ,5)=L ,表 6.13 中 标记“√”表示 Ai 能干 Bj 工作。每项工作只允许一个待业者干, 每个待业者只能干一项工作。试设计一个就业方案,使尽量多的待业 者就业。 图 6.30 表 6.12 B1 B2 B3 B4 可供量 A1 5 10 5 20 A2 10 10 20 市 场 调 运 量 仓 库 运筹学案例 案例八:匹配问题 第 2 页 共 5 页 A3 15 10 40 5 100 需求量 20 20 60 20 案例求解: 由表 6.13,将待业者及其所能干的工作可用图 6.31 表示,其中 每条弧线表示 Ai 可干 Bj 工作。图 6.31 是一张二分图。本例就是一 个求二分图的最大匹配问题,它可借助于求最大流方法进行求解: 在 Ai( i=1,2,… ,5)左边增加一个虚拟发点 S,在 Bj( j=1,2,… ,5) 右边增加一个虚拟收点 t,分别连结 ij sA ,B t(i,j 1,2, ,5)=L ,且这些弧的 容量均为 1,而弧( Ai, Bj)的容量为∞(省略) ,如图 6.32( a)所 示。当这个网络流达到最大时,如果( Ai, Bj)上的流量为 1,则 Ai 就干 Bj 工作,这就是使最多待业者就业的方案。 表 6.13 B1 B2 B3 B4 B5 A1 √ √ √ √ A2 √ √ A3 √ √ A4 √ A5 √ √ 工 作 待 业 者 运筹学案例 案例八:匹配问题 第 3 页 共 5 页 图 6.31 按最大流标号法得到图 6.32( b)所示的最多待业者就业方案, 即最大流量是 4,待业者 A1, A2, A3, A5 分别干 B2, B1, B5, B4 工作,当然这个就业方案不是唯一的。 图 6.32 匹配问题在经济管理中应用很广。例如: 设一台机器由 4 个部件 I, II, III, IV 组装而成。组装前各部件 须分别在某台机床上进行加工, 中有 4 个部件全部加工完毕方可进行 组装。现有 4 台机床 A1, A2, A3, A4,各部件在每台机床上所需加 工时间如表 6.14 所示(单位:工作日) 。现规定一台机床只能加工一 种部件,试问应将哪一部件安排在哪台机床上,加工机器才能最早开 运筹学案例 案例八:匹配问题 第 4 页 共 5 页 始组装? 显然, 机器最早开始组装的时间即为 4 个部件各在一台机床上加 工完成的最长时间。因此,先任意选定一个可行方案,如表 6.14 中 用圆圈定的数字,即各部件加工所需时间为 5, 7, 2, 4。其中加工 所需最长时间为 7,即在 7 个工作日后就可开始机器的组装。为了求 出更好的方案,把加工时间不少于 7 个工作日的数字从表中删去,留 下加工时间小于 7 的数字,并用空圈表示。见表 6.15。 表 6.14 I II III IV A1 ⑤ 4 7 6 A2 9 ⑦ 3 5 A3 8 11 ② 3 A4 7 5 1 ④ 表 6.15 I II III IV A1 ○ ○ ○ A2 ○ ○ A3 ○ ○ A4 ○ ○ ○ 部 件 加 工 所 需 时 间 机 床 部 件 机 床 运筹学案例 案例八:匹配问题 第 5 页 共 5 页 图 6.33 并依据表 6.15 中的对应关系建立机床与机器部件的配对网络图 6.33。用求最大流方法求得 max (f ) 4υ = ,其中 A1→ B1, A2→ B4, A3 → B3, A4→ B2, { }max 5,5, 2,5 5= 。也就是说,用 A1 机床加工 I 部件, A2 机床加工 IV 部件, A3 机床加工 III 部件, A4 机床加工 II 部件, 能在第 6 天最早开始机器的组装。