第二题 指派问题
运筹学指派问题
n
n
总成本最小
每项任务由一人完成 每人只承担一项任务
解矩阵的特征
• 全部元素仅取0或1 • 每行有且仅有一个1 • 每列有且仅有一个1
0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0
例如,n=5时, X xij
数学模型 : m in z cij xij j 1 i 1
n xij 1, j 1,2 ,...,n i 1 n s .t . xij 1, i 1,2 ,...,n j 1 x 0 ,1 i , j 1,2 ,...,n ij
在C中找出最多独立0的步骤
• 设Wi表示第i行0的数目,Lj表示第i列0的数目.
• 1.统计Wi和Lj(i,j=1,2,…n).
• 2.按W1,W2,…,Wn,L1,L2,…,Ln顺序找出 第一个最小正数,选中该行(列)首个0. • 3.删除该0所在的行与列,对应的Wi=0,Lj=0. • 4.重复步骤1~3,直到全部Wi=0为止.
0
0
这样就找到 4个独立0
如果按自上而下从左到右顺序找
0 0 0 0 0 0 C 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
• 这样,4条线就覆盖了全部0
0 0 0 0 0 0
0
0 0
0 0 0 0
指派问题
-2 -4 -9 -7
0 13 11 6 0 10 0 5 7 0 1 4
-4
2 11 4 2
-2
x14 1, x22 1, x31 1, x43 1
其余全为0。
步骤2:用圈0法确定 C1 中的独立0元素。若独立零元素个 素有n个,则已得最优解。若 独立零元素的个数 < n, 则转
min Z 4x11 8x12 10x54 6x55
5 xij 1 i 1,2, 5 j5 1 s.t. xij 1 j 1,2, 5 i 1 xij 0 或1
B1
B2
B3
B4
B5
C
A1 4 A2 7 A3 6 A4 6 A5 6
入步骤3。
在只有一个0元素的行(或列)加圈,表示此人只能做该事
(或此事只能由该人来做),每圈一个“0”,同时把位于同 列(或同行)的其他零元素划去。表示此时已不能再由他
人来做(或此人已不能做其它事)。如此反复,直到矩阵
中所有零元素都被圈去或划去为至。
在遇到所有行和列中,零元素都不止一个时,可任选其中
注:指派问题是一种特殊的LP问题,是一种特殊的运输问题。 下用目前认为最简洁的方法—匈牙利法求解 (The Hungarian
Method of Assignment )。
例12:某商业公司计划开办五家新商店。为了尽早建成
营业,商业公司决定由5家建筑公司分别承建。已知建筑
公司 Ai (i 1,2,,5) 对新商店 B j ( j 1,2,,5) 的建造 报价(万元)为 cij (i, j 1,2,,5) ,见下矩阵。商业公 司应当对5家建筑公司怎样分配建筑任务,才能使总的建 筑费用最少?
数学建模模版之指派问题2
三. 求最大化指派问题 (max cx) 1. 可以将之最小化 min - cx . 2. 为方便起见,可令
c~ij M cij 0 , M max { cij } 转化为 min c~x.
对第5行打√, 检查第5行,对第1列打√,检查第一列
对第3行打√, 检查第3行,打√操作终止。
画线:没打√的行划横线和打√的列划竖线。
Step 4. 变换新矩阵 B (bij ), 使零元素增加 : ①在B中没被直线覆盖的各元 素中找出最小元素 ;
②对B中没被画直线的各行减 去;对B中已画直线的 各列加上
⑤ 对于没有√的行画横线,对所有打√号的列画竖线, 产生覆盖所有零元素的最少直线,直线数目应等于
0 的个数。
例: 5 0 2 0 2 2 3 0 0 0
B 0 10 5 7 5 9 8 0 0 4 0 6 3 6 2
5 0 2 0 2 2 3 0 0 0 0 10 5 7 5√ 9 8 0 0 4 0√ 6 3 6 2√
1, (i, j) J xij
0, (i, j) J
为指派问题的最优指派决策.
二、匈牙利法的步骤
Step 1. 将C零元素化,得到矩阵B,使B中每行每列中均有 零元素 ① C中的各行减该行最小元素; ② C中的各列减该列最小元素;
例: (本章例3,n=4)
-4 -2
3 14 10 5 -3
k (可正、可负)后,形成新矩阵 B (bij )nn ,则以B为效益矩 阵的指派问题与原问题 有相同的最优解 , 但新问题的最优值 ~z *与原问题的最优值 z *满足~z * k z * ( 你能证明吗?)
第二题 指派问题
0 13 11 2
6
0
10
11
0 5 7 4
0 1 4 2
2)试指派(找独立0元素) 4 2
0 13 7 0
6
0
6
9
0 5 3 2
0 1 0 0
0Ø 13 7 ◎0
6◎06ຫໍສະໝຸດ 90◎ 5 3 2
0Ø
1
◎0
Ø0
独立0元素的个数为4 , 指派问题的最优指 派方案即为甲负责D工作,乙负责B工作, 丙负责A工作,丁负责C工作。这样安排 能使总的工作时间最少,为4+4+9+11 =28。
0Ø 4 4 0◎ 6
总费用为=7+9+4+3+5=28
分配问题与匈牙利法
Ø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
分配问题与匈牙利法
课堂练习:用匈牙利法求解下列指派问题。
练习1:
练习2:
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
分配问题与匈牙利法
解: 1) 这是不平衡的指派问题,首先转换为标准型,再用匈牙利 法求解。
2) 由于任务数多于人数,所以假定一名虚拟人,设为戊。因为工 作E必须完成,故设戊完成E的时间为M(M为非常大的数),其 余效率系数为0,则标准型的效率矩阵表示为:
【精品】指派问题——匈牙利法
最优解:x13=1,x21=1,x32=1,x44=1
若◎元素的数目m=n,则该指派问题的最优 解已经得到,否则转入Step 3;
13
指派问题的匈牙利解法——步骤(续)
Step 3. 设有 m<n 个◎, 找最少覆盖所有0的直线
1) 对没有◎的行打√
2) 对已打√行中含所在列打√ 3) 对已打√列中含◎所在行打√ 4) 重复2)~3), 直至没有要打√的行和列为止 5) 对没有打√的行划横线, 对打√的列划竖线 得到最少覆盖所有0的直线数l。
i 1 j1 ik n n j1 n j1
n
n
n
cijx ij c kjx kj (s)
i 1 j1 ik j1
z (s)
指派问题的匈牙利解法
• 根据此定理,可以对 做如下改变,目的是 找出C 中的 n个不同行不同列的0元素: • 将 C的每一行减去该行中的最小元素,得 到C’矩阵 ,则C’ 的每行中均至少出现一个 0元素,且所有cij0 。同样,对C 的列亦进 行如此计算,由此,我们完全可以从原效 率矩阵 出发,得到一个新的效率矩阵 ,使 C的每行每列中均至少存在一个0元素,而 不改变问题的最优解。
Z=15
独立练习 • P161第6.4题
6.5.4 非标准形式的指派问题 • 非标准型指派问题求解的总原则是化非标准 形式为标准形式,然后用匈牙利解法求解。 (1) 最大化指派问题 设效率矩阵为 C (cij )nn ,其中最大元素
指派 问题
指派问题(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元素(试指派)。
指派问题
指派问题 运输问题
1. 指派问题(Assignment Problem)
有n项任务由n个人完成,每项任务交给一个人,每人都有一项 任务。由i个人完成j项任务的成本(或效益)为cij。求使总成本 最小(或总效益最大)的分配方案。
设:
0 第i个人不从事第j项任务 x ij 1 第i个人被指派完成第j项任务
1
8 7
2
10 8
3
9Hale Waihona Puke 1143 25
6 9
船
3
4 5
2
7 10
4
7 8
6
5 10
4
2 3
4
7 11
匈牙利法(Hungarian Method)
1.写出行数和列数相同的成本矩阵; 2.压缩成本矩阵:每一行的所有成本均减去行里面 最小的成本,然后每一列的所有成本均减去列里 面最小的成本,使新的成本矩阵每一行每一列至 少有一个为0; 3.以最少的直线(水平或者垂直)划掉所有的0, 若所用直线数与行数相同,则已经找到最优解, 可以跳到第5步,否则就进行第4步; 4.找到没有被划掉的最小的数值,从所有没有被划 掉的数值中减去这一数值,而所有被划掉2次的 划线数值加上这一数值。返回第3步; 5.根据0的位置确定最佳指派方案。
销售 人员
指派问题3 (Assignment Problem)
7项工作分别分派给7个设备的成本若下表所示, 应如何分派?
成本 1 2 3 1 68 14 54 2 48 64 10 3 57 71 54 设备 4 48 50 13 5 84 24 8 6 10 10 9 7 77 84 8
任务
4 5 6 7
一个销售经理要分派6个销售人员负责不同地区 的销售,这些销售人员有不同的关系和能力,他们 的期望销售额如下表所示,应如何分派?
指派问题(含非标准指派问题)选读
第五章 整数规划§ 1整数规划的数学模型及特点要求一部分或全部决策变量必须取整数值得规划问题称为整数规划。
其模型为:nMax(或 min)z= ' C j X jj£卢nS a ij X ij E (=,^)b ii =1,2,…mj4s.t < x j >0j =1,2"* nX i , X 2,…X n中部分或全部取整数若要求决策变量只能取值 0或1的整数规划称为0-1型整数线性规划。
§ 5 指派问题一. 指派问题的标准形式及数学模型在现实生活中,有各种性质的指派问题。
例如,有若干项工作需要分配给若干人(或部门)来完成;有若干项合同需要选择若干个投标者来承包;有若干班级需要安排在各教室上课等等。
诸如此类的问题,它们的基本要求是在满足特定的指派要求条件下, 使指派方案的总体效果最佳。
由于指派问题的多样性,有必要定义指派问题的标准形式。
指派问题的标准形式(以人和事为例)是: 有n 个人和n 件事,已知第i 个人作第j 件事的费用为q (i, j =1,2,…n ),要求确定人和事之间的一一对应的指派方案,是完成这n件事的总费用最少。
为了建立标准指派冋题的数学模型,引入n 2个0-1变量:0 若不指派第i 人作第j 事 J若指派第i 人作第j 件事这样,问题的数学模型可写成(5.1 )其中,(5.1)表示每件事必优且只有一个人去做, (5.2)表示每个人必做且只做一件事。
注:0 指派问题是产量(a» 销量(b j )相等,且a i =b j =1, i , j=1,2,…n 的运输i , j=1,2,…ns.t7 X ij =1j =1,2, n i =1 n' X ij=1i =1,2, nj Txij =0,1 i, j =1,2, n(5.2)(5.3)(5.4)n问题。
为决策变量矩阵。
(5.6)的特征是它有 n 个1, 问题的一个可行解。
指派问题详解
第一章绪论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 再进行叠代.定理: 匈牙利算法能找到一个最大权匹配和一个最小费用覆盖.证明: 算法由一个覆盖开始,算法的每个叠代产生一个覆盖,仅在相等子图有一个完全的匹配为止。
第二章 指派问题上机
规划求解
单击“规划求解” 确定: 目标单元格:求最小化 可变单元格:bin 约束条件
规划求解选项 采用线性模型
假定非负(最重要的)
单击: 确定
Any
question?
指派问题上机求解——课堂练习 有A1,A2,A3三座铁矿,每天把生产的矿石运 往B1,B2,B3三个炼铁厂加工。 A1,A2,A3三 座铁矿的产量和各炼铁厂的加工能力,运价 如下表: 问:如何组织调运才能使总运费最低?
EXCEL求解指派问题
主讲:刘娅川
回顾:求解指派问题的步骤?
1、写出效益矩阵
2、各行减去最小元素
3、用尽量少的直线覆盖所有0元素 4、判断——返回步骤2 M (<, =)N 5、找出不在同行同列的0的组合 6、将这些0所在位置返回到原始矩阵,求和
§6.4指派问题——标准形式及其数学模型
指派问题上机求解——课堂练习
工作 工人
A
5
3 5 6
B
6
4 5 7
C
8
6 7 5
D
4
6 9 7
E
5
1 8 6
甲
乙 丙 丁 戊
7
4
6
2
8
工人
效率矩阵 工作 A
甲
B
6
C
8
D
4
E
5
5
乙 丙
丁 戊
3 5
6 7
4 5
7 4
6 7
5 6
6 9
7 2
1 8
6 8
i=1 j=1
∑xij = 1, j = 1,2,…,n ∑xij = 1, i = 1,2,…,n xij = 1 或 0
Chapter 6.5 指派问题
√
1 2 4 3 ◎ 0
◎
0 3 1 3 6 ◎ 3 Ø 0 0 2 Ø 1 3 0 0 0 Ø 2 4 ◎ 3 3 Ø 5 0
√ √
√ √ √ √
√
l =m=4 < n=5
1 2 4 3 ◎ 0
◎
0 3 1 3 6 ◎ 3 Ø 0 0 2 Ø 1 3 0 Ø 2 4 ◎ 0 0 3 3 Ø 5 0
在实际中经常会遇到这样的问题有n项不同的任务需要n个人分别完成其中的一项但由于任务的性质和各人的专长不同因此各人去完成不同的任务的效率或花费的时间或费用也就不同
5.5 指派问题
指派 问题(Assignment Problem , AP)是 一种特殊的线性规划问题,也属于 0-1 整数规 划问题 .
问题描述:在实际中经常会遇到这样的问题,有n 项不同的任务,需要n 个人分别完成其中的一项, 但由于任务的性质和各人的专长不同,因此各人去 完成不同的任务的效率(或花费的时间或费用)也 就不同。于是产生了一个问题,应指派哪个人去完 成哪项任务,使完成 n 项任务的总效率最高(或所 需时间最少),这类问题称为指派问题或分派问题。
• 第二步:画最少0元素的覆盖线,求维数r, 检验是否能找到最优解; • 当维数r =矩阵阶数时,则已能找到最优解, 转第四步; • 当维数r <矩阵阶数时,则还不能找到最优 解,转第三步;
0 0 0 0 0 13 7 0 13 4 2 15 个独立零元 每行每列有零元素,能保证有 n6 0 6 9 0 15 2 1 1 10 4 14 素吗? C 8 3 9 14 0 13 7 0 5 3 2 16 0 0 1 0 0 7 8 11 91 5 9
指派问题
0
0 8 3 5 0
11 8
0
0
4
0 4 1 4 3
7 0 2 0 2
4
3
0
0
0
0 8 3 5 0
11 8
0
0
4
0 4 1 4 3
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
指派问题 assignment problem
【例3】某汽车公司拟将四种新产品配置到四个工厂生产,四个 工厂的单位产品成本(元/件)如下表所示.求最优生产配置方 案.
匈牙利法的条件是:问题求最小值、人数与工作数相等及效率非负
匈牙利算法的步骤:
第一步:变换系数矩阵,使其每行每列都出现0元素。 首先每行减去该行最小数,再每列减去该列最小数。
2 15 13 4 -2
cij
10 9
4 14
14 16
15 13
-4 -9
7
8
11
9
-7
0 13 11 2
6 0 10 11
mm
min(max)Z
cij xij
i1 j1
m
xij
1
j1
m
xij
1
i1
xij
0或1
i 1,, m
j 1,, m i, j 1,m
分配模型的标准形
如果一个分配模型满足以下三个条件: 1)目标要求为min 2)系数矩阵(cij)为n阶方阵 3)系数矩阵中所有元素cij≥0,且为常数
④重复②、 ③,直到得不出新的打√号的行、列为止。
指派问题优秀课件
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-27
Ø 13 7 6 6 9 5 3 2 Ø 1 Ø
可得独立的0元素的个数就是矩阵的阶 数,即n=m=4, 故得到最优解:
0001 0100 1000 0010
利用这个性质,可使原系数矩阵变换为含有很多
0元素的新系数矩阵,而最优解保持不变, 在系数矩阵(bij)中,把位于不同行不同列的0元素,
简称为独立的0元素。 问题是:
能否找到位于不同行、不同列的m个0元素? 若 则其能令他在解元系矩素数阵取矩(值x阵i为j)中(0b对。ij)中应找这出mm个个独独立立的的0元0元素素的;xij取值为1, 将 从这而其就也代是就入以得目(b到标ij)为了函系原数数问中矩题得阵的到的最zb=指优0派解,问。它题一的定最是优最解小。值。
(i 1,,4; j 1,,4)
则该指派问题的数学模型为:
min z 2x11 15x12 13x13 4x14 11x43 9x44
4
xij
1
(i 1,
, 4)
∑xij=1 (i=1,2,3,4) 表示第i人只能完成一项任务
j1
s.t.
4
xij
1
( j 1,
, 4)
i1
xij=1 (j=1,2,3,4) 表示第j 项任务只能由一人去完成。
c11 c12 … c1n
效率
C=(cij)n×n=
c21 c22 … c2n ……………… cn1 cn1 … cnn
矩阵
或
系数 矩阵
C=(cij )4×4=
2 15 13 4 10 4 14 15 9 14 16 13 7 8 11 9
求解题时通常需引入0-1变量:
1, 分配第i个人去完成第j项任务 xij 0, 不分配第i个人去完成第j项任务
指派问题及实现代码示例
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中可以用字母来表示。 • 比如:计算行列式:
5-02 指派问题
例 求下表所示效率矩阵的指派问题的最小解。 表
任 务 人员 甲 乙 丙 丁 戊 A 12 8 7 15 4 B 7 9 17 14 10 C 9 6 12 6 7 D 7 6 14 6 10 E 9 6 9 10 9
解
按上述第一步,将这系数矩阵进行变换。
min 12 7 9 7 9 7 5 0 2 0 8 9 6 6 6 6 2 3 0 0 7 17 12 14 9 7 0 10 5 7 15 14 6 6 10 6 9 8 0 0 4 10 7 10 9 4 0 6 3 6 2 0 2 4 5
• 经第一步变换后,系数矩阵中每行每列都已有 了0元素;但需找出n个独立的0元素。若能找 出,就以这些独立0元素对应解矩阵(xij)中的 元素为1,其余为0,这就得到最优解。当n较 小时,可用观察法、试探法去找出n个独立0元 素。若n较大时,就必须按一定的步骤去找, 常用的步骤为:
• (1) 从只有一个0元素的行(列)开始,给这个0 元素加圈,记作◎。这表示对这行所代表的人, 只有一种任务可指派。然后划去◎所在列(行) 的其他0元素,记作Φ 。这表示这列所代表的 任务已指派完,不必再考虑别人了。 • (2) 给只有一个0元素列(行)的0元素加圈,记 作◎;然后划去◎所在行的0元素,记作Φ 。 • (3) 反复进行(1),(2)两步,直到所有0元素 都被圈出和划掉为止。
• 令这直线数为l。若l<n,说明必须再变 换当前的系数矩阵,才能找到n个独立的 0元素,为此转第四步:若 l=n ,而 m<n , 应回到第二步(4),另行试探。 • 在上例中,对矩阵①按以下次序进行: • 先在第五行旁打√,接着可判断应在第1 列下打√,接着在第3行旁打√。经检查 不再能打√了。对没有打√行,画一直 线以覆盖0元素,已打√的列画一直线以 覆盖0元素。得
《指派问题》课件
指派问题的扩展研究
多目标指派问题
应用场景:生产调度、资源 分配等
解决方法:线性规划、启发 式算法等
定义:指派问题在多个目标 下的扩展
挑战:如何在多个目标之间 找到最优解
动态指派问题
动态指派问题的定 义
动态指派问题的应 用场景
动态指派问题的求 解方法
动态指派问题的优 化策略
大规模指派问题
问题定义:大规模 指派问题是指在给 定一组任务和一组 资源,如何将任务 分配给资源,使得 总成本最小化或总 收益最大化。
混合算法
混合算法的概念: 将多种算法进行 组合,以获得更 好的优化效果
混合算法的优点: 能够充分利用各 种算法的优点, 提高优化效果
混合算法的应用: 在指派问题中, 混合算法可以结 合多种算法,如 遗传算法、模拟 退火算法等,以 提高优化效果
混合算法的挑战: 如何合理选择和 组合各种算法, 以获得最佳的优 化效果
应用场景:大规 模指派问题广泛 应用于物流、供 应链、生产调度 等领域。
研究方法:大规 模指派问题的研 究方法包括启发 式算法、遗传算 法、神经网络等。
挑战与展望:大规 模指派问题的挑战 在于如何设计高效 的算法,以及如何 解决大规模问题中 的优化问题。未来 的研究方向包括分 布式计算、并行计 算等。
禁忌搜索法:在搜索过程中引入禁忌表,避免重复搜索已搜索过的解
元启发式方法
基本概念:元启发式 方法,也称为元启发 式算法,是一种基于 启发式策略的优化方 法。
特点:元启发式方 法具有自适应性、 鲁棒性和易于实现 等特点。
应用:元启发式方法 在指派问题、路径规 划、调度等问题中都 有广泛的应用。
实例:遗传算法、模 拟退火算法、蚁群算 法等都是元启发式方 法的典型代表。
指派问题
与模型1相比:
1. 约束相同;
2 寻找独立0元素
若看作第三列 上的惟一0元素
用一直线覆 盖所在行
0 0 0 0 0
3 1 2 0 2
0 11 8 7 7 3 3 2 1 5 0 4 3 4 0
只圈出4个0, 即:只有4个独 立的0元素,少 于系数矩阵的 阶数5。
第二列只有惟 一0元素
若C=(cij)n×n的第一行各元素分别加上一个常数k, 得到一个新矩阵C’=(c’ij) n×n
c11 k c C ' 21 cn1 c12 k ... c1n k c22 ... c2 n ... ... cn 2 ... cnn
效率矩阵C’
练习 有一份中文说明书,需译成英、日、德、俄 法五种文字。分别记作E、J、G、R、F。现有甲、乙 、丙、丁、戊五人,他们将中文说明书翻译成不同语 种的说明书所需时间如下表。问应指派何人去完成何 工作,使所需总时间最少?
任务 人
E 12 8 7
J 7 9 17
G 9 6 12
R 7 6 14
F 9 6 9
第五节 指派问题
assignment problem
• • • • 指派问题的数学模型 指派问题解的特点 指派问题的求解方法——匈牙利法 非标准形式的指派问题
一、指派问题的数学模型
例、有四项任务需分派给甲、乙、丙、丁四个人去 做,这四个人都能承担上述四项任务,但完成各项任 务所需时间如下表所示。问应如何分派任务可使完成 任务的总工时最少?
指派问题
9
Ø
6
3
6
5
从只有一个0元素的列开始, 给这个0元素加圈,记
5 2
3 10 8
2 0 5 0
0 0 7 0
2 0 2 4
9
Ø
6
3
6
5
然后划去所在的行的其他0元素, 记作Ø。
5 2
3 10 8
2 0 5 0
Ø
0 7 0
2 0 2 4
9
Ø
6
3
6
5
从只有一个0元素的列开始, 给这个0元素加圈,记
对没有打行画横线,有打列 画纵线,就得到覆盖所有0元素的 最少直线数。
的个数m=4,而n=5, m<n,转下一步。
第四步:在没有被直线覆 盖的部分中找出最小元素, 然后在打行各元素都减 去这最小元素,而在打 列中各元素都加上这最小 元素,以保证原来0元素 不变,这样得到新的系数 矩阵(它的最优解和原问 题相同)。若得到n个独 立的0元素,则已经得到 最优解。否则回到第三步 重复进行。
5 2
3 10 8
2 0 5 0
Ø
0 7 0
2
2 4
9
Ø
6
3
6
5
然后划去所在的行的其他0元素, 记作Ø。
5 2
3 10 8
2
Ø Ø
7 0
2
Ø
5 0
2 4
9
Ø
6
3
6
5
从只有一个0元素的列开始, 给这个0元素加圈,记
5 2
3 10 8
2
Ø Ø
运筹学_指派问题
(xij)是n×n矩阵,对应于效率矩阵(cij).
工作
x11 人 x i1 xn1
x1n xij xin xnj xnn x1 j
可行解矩阵
x
i 1
n
ij
1,
j 1, 2, , n ②
指派问题的最优解有这样性质,若从效率矩 阵(cij)的一行(列)各元素中分别减去该行(列)的 最小元素,得到新矩阵(bij),那么以(bij)为效率 矩阵求得的最优解和用原效率矩阵求得的最优解 相同 。即 定理2 设给定了以C = (cij)为效率矩阵指派问题G, 现将C的元素cij 改变为 bij cij i j , i 与 j 为常数 则以B= ( bij )为效率矩阵指派问题G’与G有相同的最 优解。
第四节 指 派 问 题
assignment problem
在生活中经常遇到这样的问题,某 单位需完成n项任务,恰好有n个人可承 担这些任务。由于每人的专长不同,各 人完成任务不同(或所费时间),效率也 不同。于是产生应指派哪个人去完成哪 项任务,使完成n项任务的总效率最高 (或所需总时间最小)。这类问题称为指 派问题或分派问题。
行列都有 零元素
7 6 3 0*
0 * 9 (b ) ij 2 0
0 0 最优解为 ( xij ) 1 0
0 1 0 0
0 0 0 1
1 0 0 0
定理3 若矩阵C可分成”0”与非”0”两部分,则覆 盖”0”元素的最少直线等于位于不同行不同列的”0” 元素的最大个数.
如
5 0* 2 0 2 2 3 0* 0 0 0* 10 5 7 2 -2 9 8 0 0* 4 0 6 3 6 5 -2 5 0* 2 0 2 2 3 0* 0 0 2 8 3 5 0 9 8 0 0* 4 2 4 1 4 3
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0Ø 4 4 0◎ 6
总费用为=7+9+4+3+5=28
分配问题与匈牙利法
Ø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
分配问题与匈牙利法
课堂练习:用匈牙利法求解下列指派问题。
练习1:
练习2:
0 13 11 2
6
0
10
11
0 5 7 4
0 1 4 2
2)试指派(找独立0元素) 4 2
0 13 7 0
6
0
6
9
0 5 3 2
0 1 0 0
0Ø 13 7 ◎0
6
◎0
6
9
0◎ 5 3 2
0Ø
1
◎0
Ø0
独立0元素的个数为4 , 指派问题的最优指 派方案即为甲负责D工作,乙负责B工作, 丙负责A工作,丁负责C工作。这样安排 能使总的工作时间最少,为4+4+9+11 =28。
7 9 10 12
1
3
12
16
1
7
15 16 14 15
1 1 1 2 1 5 1 6
3 8 2 10 3
8
7
29
7
6 4 2 7 5
最少时间为105。
分配问题与匈牙利法
例4.6 有一份中文说明书,需译成英、日、德、俄四种文字, 分别记作A、B、C、D。现有甲、乙、丙、丁四人,他们将 中文说明书译成不同语种的说明书所需时间如下表所示,问 如何分派任务,可使总时间最少?
任务
人员
A
B
C
D
甲
6
7
11
2
乙
4
5
9
8
丙
3
1
10
4
丁
5
9
8
2
分配问题与匈牙利法
线交点处的元素加上这个最小值。得到新的矩阵,重复2)
步进行试指派
分配问题与匈牙利法
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.7 已知四人分别完成四项工作所需时间如下表,求最优 分配方案。
任务
人员
A
B
C
D
甲
2
15
13
4
乙
10
4
14
15
丙
9
14
16
13
丁
7
8
11
9
分配问题与匈牙利法
解:1)变换系数矩阵,增加0元素。
2 15 13 4 2
10
4
14
15
4
9 14 16 13 9
7 8 11 9 7
任务
人员
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
0
M
分配问题与匈牙利法
用匈牙利法求出最优指派方案为:
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放弃。
分配问题与匈牙利法
4. 某事一定不能由某人做的指派问题 将该人做此事的效率系数取做足够大的数,可用M表示。
例4.10 分配甲、乙、丙、丁四个人去完成A、B、C、D、E五项 任务。每个人完成各项任务的时间如表所示。由于任务数多于人 数,考虑任务E必须完成,其他4项中可任选3项完成。试确定最 优分配方案,使完成任务的总时间最少。
3
7
1
Ø
找到 3 个独立零元素
但m=3<n=4
分配问题与匈牙利法
3)作最少的直线覆盖所有0元素
4 5 4 ◎ √
◎ 1
Ø
4
2 ◎ 4 3
3
7
1
Ø
√
独立零元素的个数m等于最少 直线数l,即l=m=3<n=4;
√
4)没有被直线通过的元素中选择最小值为1,变换系数矩
阵,将没有被直线通过的所有元素减去这个最小元素;直
解:1)变换系数矩阵,增加0元素。
6 7 11 2 2
4 5 9 0
( c ij
)
4 3
5 1
9 10
8 4 4 1
5 9 8 2 2
0
1
5
4
2 0 9 3
3
7
6
0
2)试指派(找独立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
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 √
2
5
Ø0
3
◎0
4 1 ◎0 1 3
选择直线外的最小元素 为1;直线外元素减1, 直线交点元素加1,其 他保持不变。
分配问题与匈牙利法
例4.8 已知五人分别完成五项工作耗费如下表,求最优分 配方案。
任务
人员
A
B
C
D
E
甲
7
5
9
8
11
乙
9
12
7
11
9
丙
8
5
4
6
8
丁
7
3
6
9
6
戊
4
6
7
5
11
分配问题与匈牙利法
解:1)变换系数矩阵,增加0元素。
7 5 9 8 11 5
9
12
7 11
9
7
8 5 4 6 9 4
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
分配问题与匈牙利法
解: 1) 这是不平衡的指派问题,首先转换为标准型,再用匈牙利 法求解。
2) 由于任务数多于人数,所以假定一名虚拟人,设为戊。因为工 作E必须完成,故设戊完成E的时间为M(M为非常大的数),其 余效率系数为0,则标准型的效率矩阵表示为:
√√
√
分配问题与匈牙利法
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
注:此问题有多个最优解
分配问题与匈牙利法
0◎ Ø0 3 0Ø 3
1
6
0Ø 2
◎0
3 2 0◎ 0Ø 3
2 ◎0 2 3 Ø0
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
分配问题与匈牙利法
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
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,直线交
4 2 ◎0 1 3 √ 点元素加1,其他保持不
3
Ø0 2
4
变,得到新的系数矩阵。
0 Ø √
◎0 3 3 Ø0 5