经济数学方法与模型教学PPT课件-第五章 匈牙利法与最佳指派问题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
5
1
0
3
3
5
1
3
3 1 1 0 0 3 1 1
0
8 12 7 10
8 12
7 10
11 0 0 7 8 11 7 8
0 4 6 3 0 4 6 3 4 6 3
当目标函数为:
nn
max z
cij xij
i1 j1
时,记 M max 1i, jn
cij
bij M cij i, j 1,2,, n
得到一新矩阵
bij
nn
.由最优解的性质知,以
cij
nn
为价值
系数矩阵的指派问题与以
bij
nn
为价值系数矩阵的指派问
bij
nn
中,我们关心位于不同行不同列的0元素,以下简称
为独立0元素,若能在系数矩阵中得到n个独立的0元素,
则令解矩阵中对应这n个独立0元素的变量取值为1,其它
变量取值为0,就可以得到原指派问题的最优解.
2、关于矩阵中0元素的定理
系数矩阵中独立0元素的最多个数等于能覆盖所有0 元素的最少直线数.
情况二:存在未标记的0元素,但它们所在行和列中 ,未标记的0元素均至少有2个.
情况三:不存在未标记的0元素,但△的个数m<n.
4、如果情况一出现,则得一完整的最优分配方案, 可停止计算;如果情况二出现,可标记△到任何一个0元 素上,再将其同行、同列的其它0元素上标记,然后返回 步骤“第二步1”;如果情况三出现,则转到“第三步”。
mn
mn
1、m n
(1)m n 且 n项任务又都必须完成时:此时,必有 某个(些)人完成一项以上的任务,这类问题可按例2的 方法处理.
例2 有三人分配去完成四项任务,且四项任务都必 须完成,假定每个人至多完成2项任务.试求使完成任务 的总时间为最少的分配方案.
第五章 匈牙利法与 最佳指派问题
什么是最佳指派问题?
最佳指派(或分配)问题是经济计划工作中经常遇到
的一个问题.比如,当某一个部门或某一个企业的生产任 务已经确定,如何分配给它们所属的单位,使得完成这些 任务所需费用最小(或效益最大).分配问题是较简单的 线性规划问题,也是运输问题的一个特例,当然可以用线 性规划的单纯形法加以求解.然而,使用本章介绍的方法 ——匈牙利法去求解,效果会更好,该方法的得名是因为
2、进行列检验 与行检验类似,从第一列开始逐列检查,当遇到只 含有一个未标记的0元素的一列时,就在该0元素上标记 △,并在该0元素所在行的其它0元素上标记 . 重复上述列检验,直到每一列都没有未标记的0元素 或至少有两个未标记的0元素时为止.
3、反复进行1、2直到下列三种情况之一出现:
情况一:每一行均标记有△,令△的个数为m,则有 m=n.
匈牙利数学家狄·考尼格(D·Konig)为发展这个方法证
明了主要定理.
本章主要内容
第一节 最佳指派问题的线性规划模型 第二节 标准指派问题的匈牙利法 第三节 非标准指派问题
第一节 最佳指派问题的LP模型
例1 有一份资料需从汉语译成英、日、俄三种文字
,现有A、B、C三人,每人需完成且只完成其中的一种
5
5
1
0 3
5
5
1
3
5
5
1
3
5 1 1 0 0 5 1 1 5 1 1
0
6 10
5 8
6 10
5
8
6 10
5
8
13 0 0 7 8 13 7 8 13 7 8
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中的情况二的出现,造成 指派问题的最优解常常是不唯一的,但不同最优解的 最优值总是相同的.
本例经过反复的行、列检验后得到如下矩阵:
5 2 2
2
3
10 5 7 5
9
8
4
6 3 6 2
情况三出现,亦即未得到完全分配方案,求解过程 按以下步骤继续进行。
第三步:作最少的直线覆盖当前所有0元素(包括标 记上△和 的)
1.对所有不含△的行的右侧打√号; 2.对已打√号的行中含有 元素的列的下侧打√号 3.对已打√号的列中含有△的行的右侧打√号; 4、重复上述步骤“第三步2”“第三步3”,直到不 能进一步打√为止; 5、对没打√号的每一行画一横线,而对于已打√号 的每列画一纵线,即得到覆盖当前所有0元素的最少直线。
12 7 9 7 9 7
8
9
6
6
6
6
Cij
nn
7 15
17 14
12 6
14 6
12 7 10 6
4 10 7 10 6 4
5 0 2 0 2
2 0
3 10
0 5
0 7
0 5
9 8 0 0 4
0 6 3 6 2
题同时达到最优,且有相同的最优解.经过上述转换,
即可将极大化问题变为极小化问题.
二、价值系数矩阵中存在负元素
若价值系数矩阵 的第 cij nn i行(或第 列j )存在负元
素,则第 i行(或第 j列)每个元素都减去该行的最小元
素,即可使价值系数矩阵 cij nn满足非负条件,然后可以用
将矩阵中标记的△、还原为0,去掉√及直线,返 回“第二步”对矩阵进行行、列检验.
本例中,未被任何直线覆盖过的各元素中的最小元 素为2,将第3、5行各元素分别减去2,将第一列各元素分 别都加上2,并将矩阵中标记的△、 还原为0,去掉√及 直线由此得到如下矩阵 :
7 0 2 0 2
4
3
0 0 1 0 0
xij
0
0
0
1
0
1 0 0 0 0
0 1 0 0 0
最优值为:
min z (1) 2 2 (5) (2) 4
三、价值系数矩阵不是方阵
若记人员(或设备)数为m ,任务(或加工件)数 为n ,所谓价值系数矩阵不是方阵,即 m n,此时,需 分情况讨论:
工作.因各人对不同文字的熟悉程度不一样,所需工作 时间(单位:天)也不同(见下表).问应指派哪一个 人去完成哪一项工作才能使花费的总时间最短?
解:对于某个人来讲,要么做某项工作,比如“译 英”要么不做,二者必居其一,换句话说,每个人与每 项工作之间只有两种状态:“做”或“不做”为此我们 设变量:
1 , xij 0 ,
第二步:进行试指派,以寻求最优解 1.进行行检验 从第一行开始逐行检查,当遇到只含有一个未标记 的0元素的一行时,就在该0元素上标记符号△,这表示 分配△所在行的那个人担任△所在列的那个任务.然后 在该0元素所在列的其它0元素上标记 ,以免对此任务 再进行分配. 重复上述行检验,直到每一行都没有未标记的0元素 或至少有两个未标记的0元素时为止.
匈牙利法求解.
例1 求价值系数矩阵为如下所示的指派问题的最小 解.
3 4 5 2 1
4
cij
5
7 4
5 4
2
1
4
3 2 2
7
2
5
8 2 3 4 5
解:
3 4 5 2 1 3 0 7 8 5 2
4
7
2
1
x1 1 x1 2
x21 x22
x3 1 x3 2
1 1
x13 x23 x33 1
上述6个方程以及xij 为0-1变量就构成了本问题的约束 条件,而目标为所消耗的总时间最少,因而目标函数为:
min z 2x11 15x12 13x13 10x21 4x22 14x23 9x31 14x32 16x33
二、匈牙利法的求解步骤
例1 有5个人去完成5项任务.每个人只能完成1项任 务,每项任务也只能由1个人完成,价值系数矩阵如下表 所示(单位:天).问如何分配才能使完成任务的总时 间最少?
第一步:变换价值系数矩阵,使各行各列都出现0元 素
1、将系数矩阵的每行都减去本行的最小元素; 2、将上步所得新的价值系数矩阵的每列都减去本列 的最小元素.
第三节 非标准指派问题
前一节的匈牙利法只适用于目标函数为极小、价值 系数矩阵为方阵且价值系数矩阵中元素均为非负的情况。 当指派问题不满足上述三个条件时,就应先化成标准的 指派问题,然后再用匈牙利法求解.
非标准指派问题:
目标函数为求极大值的问题 价值系数矩阵中存在负元素 价值系数矩阵不是方阵
一、目标函数为求极大值的问题
0 3 5 3 0 3 5 3
5
4 0 0 3
5
4
3
5 0 0 0 0 5
0
5
9
5 8
5
9
5
8
14 0 0 8 9 14 8 9
于是最优解为:
0 0 0 0 1
一行(或某一列)的各个元素都减去一个常数 k(k可为
正,也可为负),得到矩阵
bij nn.那么以
bij
nn
为价值系
数矩阵的新的指派问题的最优解与原指派问题的最优解
相同,但其最优值比原来减小 k.
利用上述性质,可使原价值系数矩阵变为含有很多0
元素的新系数矩阵,而其最优解保持不变,在系数矩阵
4
1
3
6
1
0
3
cij
5 5
4 4
3 2 2 2 3 2 1 0 0
7
2
5
5
0
9 12
7 10
Fra Baidu bibliotek
8 2 3 4 5 3 11 1 0 7 8
1
0 6 8 5 2 6 8 5 2
(5.1.1)
其中 cij为第 i个人完成第项任务所消耗的资源(一般指时
间或费用等),称之为价值系数.
此模型称为指派问题的标准形式。
第二节 标准指派问题的匈牙利法
匈牙利法的基本原理 匈牙利法的求解步骤
一、匈牙利法的基本原理
1、指派问题最优解的性质
假设
cij
nn
是指派问题的价值系数矩阵,现将它的某
这是依本例实际问题而建立的线性规划模型.
一般地,当指派n个人去完成n项任务时,其数学模
型如下:
nn
min z
cij xij
i1 j1
n
xij 1
(i 1,2,,n)
j1
s.t.
n
xij 1
( j 1,2,,n)
i1
xij 0或1
0
0
0
0 8 3 5 3
11 8 0 0 4
0 4 1 4 0
返回“第二步”对矩阵进行行、列检验.得到如下 矩阵.
7 2 2
4
3
0
0
8 3 5 3
11 8 0
0
4
4 1 4
情况二出现.此时可以在四个0元素中任取一个,比 如第2行第3列的元素进行标记,然后将其所在行、列的 其它0元素上标记,再重新进行检验给第4行第4列的0元素 标记△.于是得到:
本例题中,给第2步所得矩阵的第5行打√号,再给 第1列打√号,然后给第3行打√号.分别对该矩阵的第1、 2、4行画一横线,而对第1列画一纵线.即得到覆盖当前 所有0元素的最少直线.此矩阵如下:
第四步:对上步所得矩阵进行变换,以增加其0元 素.
从没被任何直线覆盖的各元素中找出最小元素,逐 个将打√号的行的各元素都减去这个最小元素,而打√ 号的列的各元素都加上这个元素,以保证打√号的行中 的0元素不变为负值而仍为0元素.
第 j 项工作由第 i 人完成 第 j 项工作不由第 i 人完成
此时 xij 称为0-1变量.
由于每个人只能完成一项工作,因而有:
x1 1 x21
x1 2 x22
x1 3 x23
1 1
x31 x32 x33 1
又由于每项工作只能由一个人完成,因而又有: