第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 找到了最优解
运输问题与指派问题
4 20 5
10
1.13 1.15
生产管理人员需要制定出一个每月生产多少发 动机的计划,使制造和存储的总成本达到最小。
例 产品分配计划
求佳产品公司决定使用三个有生产余力 的工厂进行四种新产品的生产制造。就 哪个工厂生产哪种产品做决策,使总成本 达到最小。
公司的产品数据
单位成本
能力 产品
工厂 1 2 3
4. 运输问题:在满足供应节点的供应量约束和 需求节点的需求量约束的条件下,为了使运输 成本最低,如何安排运输。
二、运输问题的分类
1、供需均衡的运输问题 所有供应点的供应量之和等于所有需求点 的 需求量之和的运输问题。
2、供需非均衡的运输问题 所有供应点的供应量之和不等于所有需求点 的需求量之和的运输问题。
例 :设有三个化肥厂供应四个地区的农用化肥, 假定等量的化肥在这些地区使用效果相同。各化 肥厂年产量,各地区年需要量及从各化肥厂到各 地区运送单位化肥的运价如表所示,试求出总的 运费最节省的化肥调拨方案。
运价:万元/万吨
需求地区 地区1 地区2 地区3 地区4 产量
化肥厂
(万吨)
厂1
16 13 22 17
线性规划模型为:
Min 70A1+40 A2 +80 A3 60 A4 +70B1+100 B 2 +110 B 3 +50 B 4 + 80C 1+70 C 2 +130 C 3 +40 C4
s.t.
A1+ B1 + C1 =20
A2+ B2 + C2=15
A3+ B3 + C3 =23
A4+ B4 + C4 =32
指派问题及实现代码示例
a
i 1 j 1
n
n
ij
xij (工时)
xij 1(每人做一件事) jn 1 s.t. xij 1(每事由一人做) i 1 ( xij 只取0或者1 i , j 1 n)
二. 定理
1.从效率矩阵(aij)n 每一行(或列)加一个常数ui (v j ), n 所得的新的矩阵(bij)n的最优指派与原矩阵的最优指 n 派相同。
2 ) 在没有红圈的右下角如果有 0 11 8 0 3 5 0 4 0 0 零,一定是新的独立零元素 3 4 0 0 2 7 7 3 0 1 3 2 1 0 2 3 ) 用直线覆盖红圈所在行
0 11 8 0 3 5 0 4 0 0 3 4 0 0 2 7 7 3 0 1 3 2 1 0 2
• •
(4) 重复 (2), (3), 直到无勾可打为止. (5) 对没有打勾的行画一横线, 对打勾的列画 一竖线. • 这样剩下没有画线的元素中没有零元素. •
第三步:加0元
• 求出其中的最小元素. 各行都减去这个最小 元素(同一个数), 这时在已被划横线的元 素中的零元素变成负元素, 在它们所在的列 中加上这个最小元素. 还不够所需0元,转 步骤2.
两个简便的方法
• 1.先列后行 • 2.max-min(不是很严谨) • 只是对匈牙利方法不能直接给出解答的带 来方便。 • (1)行最小 • (2)最小元中的最大先指派,划去行列 • (3)重复
• 关于指派问题还有很多内容,限于水平、 时间等就不多掰了
Matlab 线性规划的解法
• 在用矩阵求解方程组时,不一定要确切的数值代入, Matlab中可以用字母来表示。 • 比如:计算行列式:
指派问题的算法分析与实现
指派问题的算法分析与实现————————————————————————————————作者:————————————————————————————————日期:编号:20《运筹学基础》课程设计题目:指派问题的算法分析与实现院系:专业:姓名学号:指导教师:日期:2011 年 1 月15 日摘要在企业、公司的运营与管理中,管理者总是希望把人员最佳分派以发挥其最大工作效率,从而降低成本、提高效益。
然而,如果没有科学的方法是很难实现优化管理的,由此我们引入了指派问题。
指派问题多是求项目的工时最少,而很多情况下人们并不关心项目总工时的多少,而只关心项目能否在最短的时间内完成,即历时最少的指派问题。
这类问题研究的是n个人执行n项任务,执行每项任务的人数以及总的指派人项数均有限制,要求最优指派.在运筹学中求解整数规划的指派问题通常是通过匈牙利算法来求解,但指派问题也可以归结为一个0—1整数规划问题,本文先对指派问题进行陈述,引出对实际问题的求解。
在指派问题的背景、描述中充分理解该问题,先运用匈牙利算法实现指派问题,然后再建立一个0-1整数规划模型,并运用matlab和lingo编译程序对问题进行编译,运用软件解决模型问题,最终实现指派问题在实际问题中的运用。
通过运用匈牙利算法和0-1整数规划同时对指派问题求解,我们发现用0—1整数规划的方法来求解可以更简单,也更方便程序的阅读和理解.与此同时,我们还对0—1整数规划问题由整数数据深入研究到小数数据。
最后通过实例来说明运用matlab,lingo编译程序来解决整数规划问题的简便和有效性。
个人收集整理,勿做商业用途本文为互联网收集,请勿用作商业用途关键词:指派问题;匈牙利算法;0—1整数规划;matlab模型;lingo模型AbstractIn business,the company’s operations and management,managers always want the best distribution of the staff to maximize their efficiency, reduce costs and improve efficiency. However, if there is no scientific method is difficult to achieve optimal management, which we introduced the assignment problem. Multi—assignment problem is to get the project working hours at least, and in many cases people do not care about how much the total project work, but only care about whether the project can be completed within the shortest possible time,that lasted for at least the assignment problem. Such problems is the n individual execution of tasks n,the number of people to perform each task and assign the total number of items are restricted to two people,requiring the optimal assignment。
指派问题详解
第一章绪论1、指派问题的背景及意义指派问题又称分配问题,其用途非常广泛,比如某公司指派n个人去做n 件事,各人做不同的一件事,如何安排人员使得总费用最少?若考虑每个职工对工作的效率(如熟练程度等),怎样安排会使总效率达到最大?这些都是一个企业经营管理者必须考虑的问题,所以该问题有重要的应用价值.虽然指派问题可以用0-1规划问题来解,设X(I,J)是0-1变量, 用X(I,J)=1表示第I个人做第J件事, X(I,J)=0表示第I个人不做第J件事. 设非负矩阵C(I,J)表示第I个人做第J件事的费用,则问题可以写成LINGO程序SETS:PERSON/1..N/;WORK/1..N/;WEIGHT(PERSON, WORK): C, X ;ENDSETSDATA:W=…ENDDATAMIN=@ SUM(WEIGHT: C*X);@FOR(PERSON(I): @SUM(WORK(J):X(I,J))=1);@FOR(WORK(J): @SUM(PERSONM(I):X(I,J))=1);@FOR(WEIGHT: @BIN(X));其中2*N个约束条件是线性相关的, 可以去掉任意一个而得到线性无关条件.但是由于有N^2个0-1变量, 当N很大时,用完全枚举法解题几乎是不可能的. 而已有的0-1规划都是用隐枚举法做的,计算量较大. 对于指派问题这种特殊的0-1规划,有一个有效的方法——匈牙利算法,是1955年W. W. Kuhn利用匈牙利数学家D.König的二部图G的最大匹配的大小等于G的最小顶点覆盖的大小的定理提出的一种算法,这种算法是多项式算法,计算量为O(N3).匈牙利算法的基本原理是基于以下两个定理.定理1设C=(C ij)n×n是指派问题的效益矩阵,若将C中的任一行(或任一列)减去该行(或该列)中的最小元素,得到新的效率矩阵C’,则C’对应的新的指派问题与原指派问题有相同的最优解.证明:设X’是最优解, 即@SUM(WEIGHT: C*X’)<= @SUM(WEIGHT: C*X), 则当C中任一行或任一列减去该行或该列的最小数m时,得到的阵C’还是非负矩阵, 且@SUM(WEIGHT: C’*X’)<=@SUM(WEIGHT: C*X)-m=@SUM(WEIGHT: C’*X)定理2效率矩阵C中独立的0元素的最多个数等于覆盖所有0元素的最少直线数. 当独立零元素的个数等于矩阵的阶数时就得到最优解.3、理论基础定义:图G的一个匹配M是图G中不相交的边的集合. 属于匹配M中的边的所有端点称为被该匹配M饱和, 其他的顶点称为M-未饱和的. 如果一个匹配M 饱和了图G的所有顶点,则称该匹配M是一个完全匹配. 可见顶点数是奇数的图没有完全匹配. 一个匹配M称为是极大匹配, 如果它不能再扩张成更大的一个匹配. 一个匹配称为是最大匹配, 如果不存在比它更大的匹配.定义:对于一个匹配M, 图G的一个M-交替路是图G中的边交替地在M中及不在M中的边组成. 从M-未饱和点出发到M-为饱和点结束的M-交替路称为一条M-增广路. 把M-增广路中不是M中的边改成新的匹配M’中的边, 把M-增广路中M中的边不作为M’中的边, 在M-增广路以外的M中的边仍作为M’中的边, 则M’的大小比M大1. 故名M-增广路. 因此最大匹配M不存在M-增广路.定义:若图G和图H有相同的顶点集V, 我们称G和H的对称差,记为G∆H,是一个以V为顶点集的图, 但其边集是G和H的边集的对称差: E(G∆H)=E(G) ∆E(H)=E(G)⋂E(H)-(E(G)⋃E(H))=(E(G)-E(H)) ⋂ (E(H)-E(G))定理: (Berge, 1957) 图G的一个匹配M是最大匹配,当且仅当G中没有M-增广路.证明: 我们只要证明, G中没有M-增广路时, M是最大匹配. 用反证法, 若有一个比M大的匹配M’. 令G的一个子图F, E(F)=M∆M’, 因M和M’都是匹配, F的顶点的最大度数至多是2, 从而F由不相交的路和环组成, 它们的边交替地来自M和M’, 于是F中的环的长度是偶数. 由于M’比M大, F中存在一个连通分支,其中M’中的边数大于M中的边数. 这个分支只能是起始和终止的边都在M’中. 而这就是一条G中的M-增广路. 与假设矛盾. 证毕.定理(Hall, 1935)设G是一个二部图, X和Y是其二分集, 则存在匹配M 饱和X当且仅当对于X中的任意子集S, Y 中与S中的点相邻的点组成的集合N(S)中元素的个数大于等于集合S中元素的个数.证明:必要性是显然的. 对于充分性, 假设 |N(S)|≥|S|, ∀S⊂X, 考虑G的一个最大匹配M, 我们用反证法,若M没有饱和X, 我们来找一个集合S不满足假设即可. 设u∈X是一个M-未饱和顶点, 令S⊂X和T⊂Y分别是从u出发的M-交替路上相应的点.我们来证明M中的一些边是T到S-u上的一个匹配. 因为不存在M-增广路,T中的每个点是M-饱和的. 这意味着T中的点通过M中的边到达S中的一个顶点. 另外, S-u中的每个顶点是从T中的一个顶点通过M中的一条边到达的. 因此M 中的这些边建立了T与S-u的一个双射, 即|T|=|S-u|. 这就证明了M中的这些边是T到S-u上的一个匹配,从而意味着T⊂N(S), 实际上, 我们可证明T=N(S). 这是因为连接S和Y-T中的点y的边是不属于M的, 因为不然的话, 就有一条到达y的M-增广路, 与y∉T矛盾. 故|N(S)|=|T|=|S-u|=|S|-1<|S|, 与假设矛盾.当X与Y的集合的大小相同时的Hall定理称为婚姻问题,是由Frobenius(1917)证明的.推论: k-正则的二部图(X的每一点和Y的每一点相关联的二部图)(k>0)存在完全匹配.证明: 设二分集是X,Y. 分别计算端点在X和端点在Y的边的个数, 得k|X|=k|Y|, 即|X|=|Y|.因此只要证明Hall的条件成立即可. 使X饱和的匹配就是完全匹配. 考虑∀S⊂X, 设连接S与N(S)有m条边, 由G的正则性, m=k|S|. 因这m条边是与N(S)相关联的, m≤k|N(S)|, 即k|S|≤ k|N(S)|, 即|N(S)|≥|S|. 这就是Hall的条件.用求M-增广路的方法来得到最大匹配是很费时的. 我们来给出一个对偶最优化问题.定义:图G的一个顶点覆盖是集合S⊂V(G), 使得G的每条边至少有一个端点在S中. 我们称S中的一个顶点覆盖一些边, 若这个顶点是这些边的公共端点.因为匹配的任意两条边不能被同一个顶点覆盖, 所以顶点覆盖的大小不小于匹配的大小: |S|≥|M|. 所以当|S|=|M| 时就同时得到了最大的匹配和最小的顶点覆盖.定理(König [1931],Egerváry[1931])二部图G的最大匹配的大小等于G的最小顶点覆盖的大小.证明: 设M是G的任一个匹配, 对应的二分集是X,Y. 设U是一个最小的顶点覆盖, 则|U|≥|M|, 我们只要由顶点覆盖U来构造一个大小等于|U|的匹配即完成证明. 令R=U⋃X, T=U⋃Y, 令H, H’分别是由顶点集R⋂(Y-T)及T⋂(X-R)诱导的G的子图. 我们应用Hall的定理来证明H有一个R到Y-T中的完全匹配,H’有一个从T到X-R中的完全匹配. 再因这两个子图是不相交的, 这两个匹配合起来就是G中的一个大小为|U|的匹配.因为R⋂T是G的一个覆盖, Y-T与X-R之间没有边相联接. 假设S⊂R, 考虑在H中S的邻接顶点集N(S), N(S) ⊂Y-T. 如果|N(S)|<|S|, 因为N(S)覆盖了不被T覆盖的与S相关联所有边, 我们可以把N(S) 代替S作为U中的顶点覆盖而得到一个更小的顶点覆盖. U的最小性意味着H中Hall条件成立. 对H'作类似的讨论得到余下的匹配. 证毕.最大匹配的增广路算法输入: 一个二分集为X,Y的二部图G,一个G中的匹配M, X中的M-未饱和顶点的集合U.思路: 从U出发探求M-交替路,令S⊂X,T⊂Y为这些路到达过的顶点集. 标记S中不能再扩张的顶点. 对于每个x∈(S⋂T)-U, 记录在M-增广路上位于x前的点.初始化: S=U,T=∅.叠代: 若S中没有未标记过的顶点, 结束并报告T⋂(X-S)是最小顶点覆盖而M是最大匹配.不然, 选取S中未标记的点x, 考虑每个y∈N(x)且xy∉M, 若y是M-未饱和的, 则得到一个更大的匹配,它是把xy加入原来的匹配M得到的,将x从S中去除. 不然, y是由M中的一条边wy相连接的, w∈X, 把y加入T(也有可能y本来就在T中), 把w加入S. w未标记, 记录w前的点是y. 对所有关联到x的边进行这样的探索后, 标记x. 再次叠代.定理: 增广路算法可以得到一个相同大小的匹配和顶点覆盖.证明: 考虑这个算法终止的情况, 即标记了S中所有的点. 我们要证明R=T⋂(X-S)是大小为|M|的一个顶点覆盖.从U出发的M-交替路只能通过M中的边进入X中的顶点, 所以S-U中的每个顶点通过M与T中的顶点匹配, 并且没有M中的边连接S和Y-T. 一旦一条M-交替路到达x∈S, 可以继续沿着任何未饱和的边进入T, 由于算法是对于x的所有邻域顶点进行探索才终止的,所以从S 到Y-T 没有未饱和边. 从而S 到Y-T 没有边, 证明了R 是一个顶点覆盖.因为算法是找不到M-增广路时终止, T 的每一个顶点是饱和的. 这意味着每个顶点y ∈T 是通过M 匹配与S 中的一个顶点. 由于U ⊂S, X-S 的每个顶点是饱和的, 故M 中与X-S 相关联的边不和T 中的点相连接. 即它们与是饱和T 的边不同的, 这样我们可见M 至少有|T|+|X-S|条边. 因不存在一个比顶点覆盖更大的匹配, 所以有|M|=|T|+|X-S|=|R|.设二部图G 的二分集X 和Y 都是n 个元素的点集, 在其边j i y x 上带有非负的权ij w , 对于G 的一个匹配M, M 上各边的权和记作w(M).定义: 一个n ×n 矩阵A 的一个横截(transversal)是A 中的n 个位置, 使得在每行每列中有且只有一个位置(有的文献中把横截化为独立零元素的位置来表示).定义: 指派问题就是给定一个图G=n n K ,(完全二部图, 即每个X 中的顶点和Y 中的每个顶点有边相连接的二部图)的边的权矩阵A, 求A 的一个横截, 使得这个横截上位置的权和最大. 这是最大带权匹配问题的矩阵形式.定义: 对于图G=n n K ,,设其二分集是X ,Y ,给定G 的边j i y x 的n ×n 权矩阵W={ij w }.考虑G 的子图v u G ,, 设其二分集是U ⊂X ,V ⊂Y, 边集是E(v u G ,), 对于子图v u G ,的带权覆盖u,v 是一组非负实数{i u },{j v },使得ij j i w v u ≥+,)(,v u j i G E y x ∈∀, v u G ,的带权覆盖的费用是∑∑+j i v u 记为C(u,v), 最小带权覆盖问题就是求一个具有最小费用C(u,v)的带权覆盖u,v.引理: 若M ⊂E(v u G ,)是一个带权二部子图v u G ,的最大匹配, 且u, v 是v u G ,的带权覆盖, 则C(u,v)≥w(M). 而且, C(u,v)=w(M)当且仅当ij j i w v u =+,M y x j i ∈∀. 这时M 是v u G ,最大带权匹配, u,v 是v u G ,的最小带权覆盖, 定义这时的v u G ,为G 的相等子图(equality subgraph ).证明: 因为匹配M 中的边是不相交的, 由带权覆盖的定义就得C(u,v)≥w(M). 而且C(u,v)=w(M)当且仅当ij j i w v u =+,M y x j i ∈∀成立. 因一般地有C(u,v)≥w(M).所以当C(u,v)=w(M)时. 意味着没有一个匹配的权比C(u,v)大, 也没有一个覆盖的费用比w(M)小.Kuhn 得到一个指派问题的算法,命名为匈牙利算法, 为的是将荣耀归于匈牙利数学家König 和Egerv áry.指派问题的匈牙利算法(Kuhn[1955], Munkres[1957]):输入G=n n K ,的边的权矩阵A, 及G 的二分集X,Y.初始化: 任取一个可行的带权覆盖,例如)(max ij ji w u =,0=j v ,建立G 的相等子图v u G ,, 其二分集是X, Y ’⊂Y, 求v u G ,的一个最大匹配M. 这个匹配的权和w(M)=C(u,v), M 的带权覆盖是具有最小费用的.叠代: 如M 是G 的一个完全匹配, 停止叠代, 输出最大带权匹配M. 不然, 令U 是X 中的M-未饱和顶点. 令S ⊂X, T ⊂Y 是从U 中顶点出发的M-交替路到达的顶点的集合.令},:min{T Y y S x w v u j i ij j i -∈∈-+=ε.对于所有的S x i ∈, 将i u 减少ε, 对于所有的T y j ∈,将j v 增加ε,形成新的带权覆盖u ’,v ’及对应的新的相等子图v u G '',.如果这个新的相等子图含有M-增广路, 求它的最大匹配M ’, 不然不改变M 再进行叠代.定理: 匈牙利算法能找到一个最大权匹配和一个最小费用覆盖.证明: 算法由一个覆盖开始,算法的每个叠代产生一个覆盖,仅在相等子图有一个完全的匹配为止。
指派问题
13 0 5 1
7 6 3 0
0 9 ( b ij ) 2 0
第二步: 进行试指派,以寻求最优解。为此,按以 下步骤进行。 经第一步变换后,系数矩阵中每行每 列都已有了0元素;但需找出n个独立的0 元素。若能找出,就以这些独立0元素对 应解矩阵(xij)中的元素为1,其余为0, 这就得到最优解。当n较小时,可用观察 法、试探法去找出n个独立0元素。若n较 大时,就必须按一定的步骤去找,常用 的步骤为:
•减数得零—求初始匹配 •圈零划线—查是否最大匹配 •找数调整—求新的最优匹配 运筹学
指派问题的解法
第一步: 使指派问题的系数矩阵经变换,在各行各列中 都出现0元素。 (1) 从系数矩阵每行元素减去该行的最小元素; (2) 再从所得系数矩阵的每列元素中减去该列 的最小元素。 若某行(列)已有0元素,那就不必再减了。
④
7 4 0 11 0
0 3 8 8 4
2 0 3 0 1
0 0 5 0 4
2 0 0 4 3
运筹学
已具有n个独立0元素。这 就得到了最优解,相应的解 矩阵为: 由解矩阵得最优指派方案 甲—B,乙—D,丙—E,丁—C,戊—A
0 0 0 0 1
想想看!
运筹学
指派问题的形式表述
给定了一系列所要完成的任务(tasks)以及 一系列完成任务的被指派者(assignees), 所需要解决的问题就是要确定出哪一个人 被指派进行哪一项任务,使总的效率最高?
运筹学
指派问题的假设
被指派者的数量和任务的数量是相同的 每一个被指派者只完成一项任务 每一项任务只能由一个被指派者来完成
表1
任 人员 甲 乙 丙 丁 务
4.5 指派问题
4.5 指派问题有n项任务要分给n个人去完成,每人完成一项.由于任务的性质以及个人的专长不同,因此,各人完成不同任务的效率就有差别,如何分配这些工作任务,使总的效率最高?这类问题称为指派问题.在现实生活中,诸如若干项合同要选择若干个投标者来承包,若干班级要安排在各教室上课等等均属于这类指派问题.如果我们记x ij= 1,当指派第i人做第j项工作;0,不指派第i人做第j项工作.那么指派问题的数学模型可以表示为在x ij=0或1,以及x ij=1(j=1,2,…n), ∑x ij=1(i=1,2,…n)的约束条件下求目标函数z=∑∑c ij x ij的最大(或最小)值,其中c ij表示第i个人完成第j项任务的效率(或成本、时间、费用等).可以看出,指派问题是特殊的整数规划问题,又是特殊的0-1规划问题和特殊的运输问题,因此,它可以用多种方法来解.[案例13]附表给出五位工人完成五种工作所能取得的效益,试求出分配该五位工人分别担任一项工作的方案,使取得的效益最大.(上海市第五届中学生数学知识应用竞赛决赛试题五)分析(1)按题目要求,应选取表中的不同行、不同列的五个数据,还要求选取的这五个数的和最大,如果逐一验算,需考5!=120种方案.实际上,这是一个典型的“指派问题”。
(2)要求目标函数最大.为此,可将表中最大的一个数减去表中每一个数,由此可将最大化问题化归为最小化问题.表1表2解 (l) 将表中最大数80减去表中每一个数得表1.(2) 每列减去本列的最小数,并在有0的位置上考虑安排工作,得表2.(3) 第3、4行未满足,减去本行中最小数,得表3.(4) 由于第四列己满足,故将第1、3行减1,第四列加1.此时(3,1)格为0,但(5,1)格已安排工作,注意到(5,5)为0,故可作简单调整得表4.表3表4(5)现在只有第4行未满足,减去本行最小数得表5.表5至此,我们已得到问题的解: x14=1, x22=1, x31=1, x43=1, x55=1,即分配工人A做第4、B做第2、C做第1、D 做第3、E做第5件工作,可以取得最大效益为17+50十18十28+80=193.[案例14]某商业公司计划开办五家新商店,为了尽早建成营业,商业公司决定由5家建筑公司分别承建已知建筑公司A i(i=1,2,…5)对新商店B j(j=1,2,…,5)的建造费用的报价(万元)为c ij(i,j=1,2.…,5),见下表.试问商业公司应当对这5家建筑公司怎样分配建造任务,才能使总的建造费用最少?解这是最小化指派问题,可直接利用表上作业法进行操作,见表1-3.最优方案为:让A1承建B3,A2承建B2,A3承建B1,A4承建B4,A5承建B5,此时能使总的建造费用最少,为7+9+6+6+6=34万元表1表2说明将表1第2、3行减去本行最小数后,(2,2)格为0,与(4,2)格冲突,但(4,4)格为0,于是调整为(2,2)、(4,4)安排任务,(4,2)不做安排,这就得到了表2.表2到表3也使用了这种微调的技巧.表3。
运筹学:指派问题
Designing School Attendance Zones 设计学生入学区域
米德尔城学区问 题指派问题变形 的电子表格模型
小结
Session Summary 本讲小结
运输问题考虑(确实的或是比喻的)从出发地运送货物到目 的地。每一个出发地都有一个固定的供应量,每一个目的地 都有一个固定的需求量
指派问就要处理应当将哪一项任务指派给哪一个被指派者, 才能使完成这些任务的总达到最小
把可能会面临的问题描述为一个运输问题或者指派问题或者 它们的变形并进行分析
案例
Case Study
案例研究
案例3:富而克消费用品公司
作业: 第五章奇数习题
西北新闻纸公司(See the Course Package)
▪每一个被指派者只完成一项任务 ▪每一项任务只能由一个被指派者来完成
▪每个被指派者和每项任务的组合有一个相关成本 ▪目标是要确定怎样进行指派才能使得总成本最小
Variants of Assignment Problem 指派问题的变形
指派问题的变形: ▪有一些被指派者并不能进行某一些的任务 ▪任务比被指派者多 ▪被指派者比要完成的任务多 ▪每个被指派者可以同时被指派给多于一个的任务 ▪每一项任务都可以由多个被指派者共同完成
下一讲:网络最优化问题
阅读:Text1,Chapter6 和课件及课程网页相关内容
The End of Session 4
The Assignment Problem 指派问题
现实生活之中,我们也经常遇到指派人员做某项工 作的情况。指派问题的许多应用都用来帮助管理人 员解决如何为一项将要开展进行的工作指派人员的 问题。其他的一些应用如为一项任务指派机器、设 备或者是工厂
指派问题(含非标准指派问题)
第五章 整数规划§1 整数规划的数学模型及特点要求一部分或全部决策变量必须取整数值得规划问题称为整数规划。
其模型为:Max(或min)z=∑=nj jj xc 1s.t ⎪⎪⎩⎪⎪⎨⎧=≥=≥=≤∑=nj nj i ij ij xx x n j 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 ni 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 件工作所需的资源数,称之为效率系数(或价值系数)。
指派问题
0
3 8 8
2
0 0
5
2
0
3
0
0 4
Ø
11
0
1
0
4
4
3
从只有一个0元素的行开始,给这个0 元素加圈,记
7 4
0
3 8 8
2
0 0
5
2
0
3
0
4
Ø
11
0
1
0
4
4
3
然后划去所在的列的其他0元素,记 作 Ø。
7 4
0
3 8 8
2
0 0
5
2
0
3
Ø
4
Ø
11
0
1
0
4
4
3
从只有一个0元素的列开始,给这个0 元素加圈,记
零件 A 4 6 7 9 B 6 10 8 3 C D
人
张 王 李 赵
5 8 7 8 11 9 8 4
解:先变换效率矩阵,然后圈出不同行不同列的0元素,结果如下:
0 2 ○ 0 3 ∕ ∕0 4 ∕ 0 1 ○ 7 8 11 9 0 1 4 2 1 3 1 0 9 3 8 4 6 0 5 1 6 ○ 0 4 ∕ 0 由于不同行不同列的0元素仅有3个,所以要继续第三步及第四步。 √ √ ○ 0 1 0 2 √ 调整量θ=1,调整效率矩 ∕ ∕ 0 2 0 3 ○ 阵使之出现更多 0 元素。 ○ ∕ ∕ 0 3 0 0 ∕0 4 ∕ 0 1 √ 而后,再重新圈出不同行 ○ ∕ ∕ 0 0 3 0 1 3 1 √ ○ 0 且不同列的 0 元素,进行 7 ○ 0 5 ∕0 6 ○ 0 4 ∕ 0 再指派。结果如右:
指派问题
指派问题 数学试验
§4 指派问题
指派问题是整数规划的一类重要问题。也是在实际生活中经常 遇到的一种问题:由n项不同的工作或任务,需要n个人去完成 (每人只能完成一项工作)。由于每人的知识、能力、经验等 不同,故各人完成不同任务所需的时间(或其它资源)不同。 问应只排哪个人完成何项工作所消耗的总资源最少? 一。 指派问题的数学模型 引进0-1变量
-4 -7 -6 -6 -6
0 0 → 0 0 0
4 3 11 8 2 10 7 3 3 6 2 1 1 8 0 4 3 6 4 0
-1 -3
✓
0 0 → C1 = 0 0 0
3 0 11 8 1 7 7 3 ✓ 2 3 2 1 ✓ 0 5 0 4 2 3 4 0
在只有一个0元素的行(或列)加圈,表示此人只能做该事 (或此事只能由该人来做),每圈一个“0”,同时把位于同 列(或同行)的其他零元素划去。表示此时已不能再由他 人来做(或此人已不能做其它事)。如此反复,直到矩阵 中所有零元素都被圈去或划去为至。 在遇到所有行和列中,零元素都不止一个时,可任选其中 一个加圈,然后划去同行、同列其他未被标记的零元素。 例
-7 -6 -6 -7
1 0 X * = 0 0 0
0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0
从而导出匈牙利解法的思想:
二。匈牙利解法 匈牙利法是1955年由库恩(W.W.Kuhn)根据匈牙利 数学家狄·考尼格(d.konig)关于矩阵中独立零元素的定理 发明的。 匈牙利法的基本原理: 定理1 将效率矩阵的某一行(或某一列)的各个元素都减去 同一个常数t (t可正可负),得到新的矩阵,则以新矩阵为 效率矩阵的指派问题与原指派问题的最优解相同。但其最 优值比原最优值减少t 。 解:设效率矩阵C为
- 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)若甲不懂德文,乙不懂日文,其他数字不变,应如何指派?