指派模型【数学建模】

合集下载

5_05指派问题

5_05指派问题

匈牙利法求解指派问题举例2:
例12:求解指派问题,效率矩阵
4 7 C 6 6 6 8 9 9 7 9 7 15 12 17 14 10 12 8 7 14 6 10 12 10 6
解: 1 变换系数矩阵,使其每行每列都出现0元素。首先每 行减去该行最小数,再每列减去该列最小数。 (cij’) -1 -3
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元素
2 寻找独立0元素
表示对这行所代表的人 , 只有一种任务可分派。
①从第一行开始,若该行只有一个0元素,则给这个 0元素加O;同时作一直线覆盖该列元素。若该行无0元 素或者有两个及以上0元素(已被覆盖的不计在内), 则转下行,直到最后一行为止
表示这列所代表的任务已分 派完,不必再考虑别人了。
百度文库
②从第一列开始,若该列只有一个0元素,则给这个 0元素加O;同时作一直线覆盖该行元素。若该列无0元 素或者有两个及以上0元素(已被覆盖的不计在内), 则转下列,直到最后一列为止 ③反复进行①、 ②两步,直到所有0元素都被圈出 或划掉为止。 注:若遇到在所有的行和列中,0元素都不止一个 时,可任选其中一个0元素加O;同时划去与它同行 (或同列)的其他0元素,然后作一直线覆盖该列元素 (或该行元素)。

4个人5个任务指派问题建模

4个人5个任务指派问题建模

4个人5个任务指派问题建模

摘要:

1.问题描述

2.解决方案

3.建模过程

4.结果分析

5.总结

正文:

1.问题描述

在现实生活和工作中,我们常常会遇到需要分配任务给不同人员的情况。如何合理、高效地分配任务以提高工作效率,减少人力成本,成为了一个亟待解决的问题。本文将以一个具体案例为例,探讨如何解决这类问题。

假设有4 个人,分别为A、B、C、D,他们需要完成5 个任务,分别为任务1、任务2、任务3、任务4、任务5。现在需要为他们合理分配任务,使得总工作效率最大。

2.解决方案

为了解决这个问题,我们可以采用线性规划方法进行建模。具体步骤如下:

首先,我们需要建立一个数学模型来描述这个问题。假设4 个人分别需要在5 个任务上花费的时间为a1, a2, a3, a4, a5(单位:小时),他们的工作效率分别为v1, v2, v3, v4, v5(单位:任务/小时)。我们的目标是最小化总时

间,即:

最小化:总时间= max(a1, a2, a3, a4, a5)

接下来,我们需要列出线性规划问题的约束条件。首先,每个人需要完成所有任务,因此有:

a1 + a2 + a3 + a4 + a5 = 1(任务1)

a1 + a2 + a3 + a4 + a5 = 1(任务2)

a1 + a2 + a3 + a4 + a5 = 1(任务3)

a1 + a2 + a3 + a4 + a5 = 1(任务4)

a1 + a2 + a3 + a4 + a5 = 1(任务5)

其次,每个人需要在任务上花费的时间不能为负,因此有:

a1 >= 0, a2 >= 0, a3 >= 0, a4 >= 0, a5 >= 0

指派问题例1的数学模型

指派问题例1的数学模型

该题的数学模型为:

miny = 37.7x 11 +43.4x 12+33.3x 13+29.2x 14 +32.9x 21 +33.1x 22+28.5x 23+26.4x 24 +33.8x 31 +42.2x 32+38.9x 33+29.6x 34 +37.0x 41 +34.7x 42+30.4x 43+28.5x 44 满足: x 11 + x 21+ x 31+ x 41=1 (A 只能一个人干) x 12 + x 22+ x 32+ x 42=1 (B 只能一个人干) x 13 + x 23+ x 33+ x 43=1 (C 只能一个人干) x 14 + x 24+ x 34+ x 44=1 (D 只能一个人干)

x 11 + x 12+ x 13+ x 14=1 (甲只能干一项工作) x 21 + x 22+ x 23+ x 24=1 (乙只能干一项工作) x 31 + x 32+ x 33+ x 34=1 (丙只能干一项工作) x 41 + x 42+ x 43+ x 44=1 (丁只能干一项工作) x ij =0,1 (i ,j=1,2,3,4) miny = x b ij i j ij ∑∑==414

1

满足: 141

=∑=i ij x (i= 1,2,3,4) 14

1

=∑=j ij x (j=1,2,3,4) 1,0=x ij (i,j=1,2,3,4)

这里存在一个矩阵[b ij]

[b ij]= 37.7 43.4 33.3 29.2

32.9 33.1 28.5 26.4

运筹学__指派问题

运筹学__指派问题

0 14 9 3
9
20
0
23
23 0 3 8
0
12 14
0
令x11=1,x23=1,x32=1,x44=1,即可得最优解,
其解矩阵为
min Z=Z*=0
1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1
问题是如何找到位于不同行、不同列的m个0元素?
匈牙利算法基本思想: 对同一工作i来说, 所有人的效率都提高或降低同一常数, 不会影响最优分配; 同样,对同一人j来说, 做所有工作的效率都提高或降低同一常数, 也不会影响最优分配。
(二)算法的基本原理 匈牙利数学家狄·康尼格(D·Konig)证明的两个定理
定理1 如果从指派问题效率矩阵[cij]的每一行元素中分别 减去(或加上)一个常数ui(被称为该行的位势), 从每一列分别减去(或加上)一个常数vj(称为该列的位势) 得到一个新的效率矩阵[bij], 若其中bij=cij-ui-vj,
mm
m
m
cijxij ui v j
i1 j1
i1
j1
指派问题最优解的性质: 若从效率矩阵(cij)的一行(列)各元素中 分别减去该行(列)的最小元素得到的新矩阵(bij), 那么以(bij)为效率矩阵求得的最优解的结构 和用原来的效率矩阵(cij)求得的最优解的结构相同。
---匈牙利算法基本思想1

指派问题(经典运筹学)

指派问题(经典运筹学)

x i 1 x i 2 x ij x in 1 i=1,2, …,n s .t x1 j x 2 j x ij x nj 1 j=1,2, …,n
x 11 x 12 x 1 j x 1 n 1 x x x x 1 21 22 2j 2n x n 1 x n 2 x nj x nn 1 s .t x 11 x 21 x i1 x n 1 1 x 12 x 22 x i 2 x n 2 1 x 1 n x 2 n x in x nn 1
ij
min Z
c
j i
ij
x ij c 11 x 11 c 12 x 12 c 1 n x 1 n c 21 x 21 c 22 x 22 c 2 n x 2 n c n 1 x n 1 c n 2 x n 2 c nn x nn
解:设 x i 为决策变量(
xi 0 1
i 1, 2 , , 5 )
项目 1
投资额 投资收益 (万元) (万元) 210 150
投资第i个项目
2
3 4 5
300
100 130 260
210
60 80 180
不投资第i个项目 Z表示投资效益

指派问题

指派问题

13 7 ◎ ◎ 6 0 5 3 2 1 ◎
可见m=n=4,所以得最优解为
0 0 ( xij ) 1 0
i
0 1 0 0
j
0 0 0 1
1 0 0 0
这表示: 指定甲译出俄文, 乙译出日文,丙译出英文, 丁译出德文。 所需总时间最少
7 7 6 4
8 7 5 5
3 0 1 0
2 3 0 1
0 2 2 2
0 1 0 2
运筹学
B. 找划去零的最少直线
第三步 打——无的行打,打行上 的0列打 ,打列上行打,打行上0列打 … 第四步 划线——无行、打列划线
3 0 1 0
经一次运算即得每行每列都有0元素的系数矩阵,
5 0 2 0 2 3 0 0 0 10 5 7 9 8 0 0 0 6 3 6
2 0 2 4 5
运筹学
再按上述步骤运算,得到
5 2 ◎ 9

2
3 ◎ 10 5 7 8 ◎ 6 3 6


5 ◎ 2

9


2 3 10 5 7 2 √ 8 ◎ 4 √ 6 3 6 5
2
由此可见l=4<n。所以应继续对②矩阵进行变换。 转第四步。

指派问题及其数学模型

指派问题及其数学模型

4.3 指派问题及其数学模型

设有n个人,需要分派他们去做n件工作。要求一个人做一件事,一件事只能由一个人完成;由于每人的专长不

同,各人做任一种工作的效率可能不同,因而创造的价值

也不同。问如何安排,才能使创造的总价值最大?

【例】现有4辆装载不同货物的待卸车,派班员要分派给4个装卸班组,每个班组卸一辆车。由于各个班组的技术专长不同,各个班组卸不同车辆所需时间(小时)如下表。问派班员应如何分配卸车任务,才能使卸车所花的总时间最少?

P 1 P 2 P 3 P 4

A B C D

4

2

4

3

3

3

3

2

4

6

5

6

1

5

4

5 待卸车

装卸组

解:引入0-1变量x ij ,并令:

⎩⎨

⎧⇒=否则

01j i x

ij

4

4

1

1

41

4

11,1,2,3,41,1,2,,3,4

0或1

ij ij

i j

ij

j

ij i

ij

i j MinZ

c x x x x

=====

⎧==⎪⎪⎪⎪==⎨⎪⎪=⎪⎪⎩

∑∑∑∑

P 1 P 2 P 3 P 4 A B C D

4 2 4 3

3 3 3 2

4 6

5 6

1 5 4 5

待卸车装卸组

b j

a i

11

11

1

1

1

1

11

11

1,1,2,,1,1,2,

,0或1

n n

ij

ij

i j n ij

j n

ij

i ij

i n j n

MinZ

c x

x

x

x

=====

⎧==⎪⎪⎪⎪==⎨⎪⎪=⎪⎪⎩

∑∑∑∑

➢模型特征分析

()

⎥⎥⎥⎥⎦

⎤⎢⎢⎢⎢⎣⎡=⨯00

10

010*********

44x ij

指派问题的数学模型

指派问题的数学模型

指派问题的数学模型

数学中有多种指派问题模型,以下是几个常见的:

1. 二分图匹配模型:将指派问题看作是二分图中的最大匹配问题。将待分配的任务和接受任务的对象分别看作是二分图中的两个部分,将每个待分配任务和每个对象之间连一条边,并赋予权值表示在该情况下指派此任务给此对象的效果。最终目标是找到一种方案,使得总权值最大。

2. 匈牙利算法:是解决二分图匹配问题的经典算法,能够在多项式时间内求解最大匹配问题。

3. 线性规划模型:将指派问题转化为线性规划模型,通过最小化或最大化某个目标函数的方式,得到满足约束条件的最优解。

4. 费用流模型:将指派问题看作是最小费用最大流问题,将待分配的任务看作源点,接受任务的对象看作汇点,建立相应的网络流模型,并加入相应的约束条件,通过找到最小费用最大流的方式得到最优解。

数学建模模版之指派问题

数学建模模版之指派问题

C
(cij )nn
c21
cn1
c22 cn2
c2n
cnn
Байду номын сангаас
效益矩阵C中独立0元素(不同行不同列)的最多个数等 于能覆盖所有0元素的最少直线(行、列直线)。
效益矩阵C的一个重要性质(设计算法的依据):
1. 将C中的任何一行(一列)的各元素减去同一个常数
k (可正、可负)后,形成新矩阵 B (bij )nn ,则以B为效益矩 阵的指派问题与原问题 有相同的最优解 , 但新问题的最优值 ~z *与原问题的最优值 z *满足~z * k z * ( 你能证明吗?)
在B的行(列)中选一个零元素 (指没被标 0 )最少的
行(列),将该行(列)中一个零元素标记为 0 ,(表示指派 该位置处的人员去做相应的工作),同时将该 0 元素所
在行和列的其他零元素标记为 0 (划);如该行(列)可标
为 0 的元素有多个, 则选列(行)中零元素最少的标为
0 .直到所有零元素被标为 0 或 0 .
c~ij M cij 0 , M max { cij } 转化为 min c~x.
3. 也可以直接将求最小化的匈牙利方法稍作修改, 即可适用于最大化(只须改Step 1和Step 4①,如何改?)
四. 如果效益矩阵不是方阵,虚增零元素行(列),再求解。 (类同于运输不平稳问题)

04_指派模型

04_指派模型

9 17 9 17 9 12 9 12
这个效率矩阵有 6 行 5 列。为了使公司和 项目的数目相同,引入一项虚拟项目 B6,使之 成为标准指派问题的系数矩阵:
B1 B2 B3 B4 B5 B6 A1 A1 ' A2 A2 ' A3 A3 ' 4 4 7 7 6 6 8 8 7 7 15 12 0 15 12 0 14 10 0 14 10 0 8 7 0 8 7 0
s.t .
X
j 1 n
n
ij
1 1
X
i 1
ij
X ij {0, 1}
其中由 cij 组成的方阵 C =(cij)nn 称为效率矩阵。 只要效率矩阵 C 给定,指派问题也就相应 确定。
0 若 xij 为指派模型的最优解,则 n 阶方阵 X 0 = ( xij ) 称为指派模型的最优解方阵。
9 17 9 17 9 12 9 12
然后,用匈牙利解法求解。可得问题的最 优解方阵为
0 1 0 0 0 0 0 1 0 0 0 4 4 0 0 0 0 0 1 0 0 0 0 7 0 0 0 0 1 7 6 0 0 1 0 0 0 0 0 1 0 6 8 8 7 7 15 12 0 15 12 0 14 10 0 14 10 0 8 7 0 8 7 0
指派问题本质上是 01 规划问题。 设 Xij 表示 Ai 完成 Bj 工作,并令

4个人5个任务指派问题建模

4个人5个任务指派问题建模

4个人5个任务指派问题建模

(最新版)

目录

1.问题背景和需求

2.解决方案:4 个人 5 个任务的指派问题建模

3.建模方法和步骤

4.结果分析和优化

5.总结和展望

正文

1.问题背景和需求

在现实生活和工作中,我们经常会遇到需要对人员和任务进行合理分配的问题。例如,一个团队有 4 名成员,需要完成 5 个任务,如何合理地分配任务,使得任务能够高效地完成,同时又能保证团队成员的能力和兴趣得到充分发挥?为了解决这个问题,我们需要对任务分配问题进行建模。

2.解决方案:4 个人 5 个任务的指派问题建模

针对这个问题,我们可以采用组合优化的方法进行建模。具体来说,我们可以将任务分配问题转化为一个 0-1 整数线性规划问题,用数学模型来描述这个问题,并求解最优解。这里,我们用 xij 表示第 i 个任务是否分配给第 j 个成员(如果分配,则 xij=1;否则,xij=0)。

3.建模方法和步骤

(1)定义决策变量:xij(i=1,2,3,4,5;j=1,2,3,4)

(2)目标函数:最小化总时间,即∑(ti*xiyj),其中 ti 表示第 i 个任务需要的时间。

(3)约束条件:

a.每个任务只能分配给一个成员,即∑xij=1,i=1,2,3,4,5;

j=1,2,3,4。

b.每个成员最多分配一个任务,即∑xij<=4,i=1,2,3,4,5;

j=1,2,3,4。

c.总时间不能超过 24 小时,即∑(ti*xiyj)<=24。

(4)求解问题:通过线性规划算法求解上述问题的最优解,得到每个任务的最优分配方案。

数学建模模版之指派问题

数学建模模版之指派问题

2 0 2 7 4 0 0 0 10 5 7 5 -2 B 0 8 0 0 4 11 0 6 3 6 2 -2
0 3
0 2 0 2 3 0 0 0 8 3 5 3 8 0 0 4 4 1 4 0
Step 2.对上面新B进行试探分派:
C (cij ) nn c11 c12 c21 c22 c n1 cn 2 c1n c2 n cnn
效益矩阵C中独立0元素(不同行不同列)的最多个数等
于能覆盖所有0元素的最少直线(行、列直线)。
效益矩阵C的一个重要性质(设计算法的依据): 1. 将C中的任何一行(一列)的各元素减去同一个常数 k (可正、可负)后, 形成新矩阵 (bij )nn , 则以B为效益矩 B
-4 -2
Step 2. 试探 在B中找n个独立零元素: 在B的行(列)中选一个零元素 (指没被标 0 )最少的 行(列), 将该行(列)中一个零元素标记为 0 ,(表示指派 该位置处的人员去做相应的工作), 同时将该 0 元素所 在行和列的其他零元素标记为 0 (划);如该行(列)可标 为 0 的元素有多个, 则选列(行)中零元素最少的标为
画线:没打√的行划横线和打√的列划竖线。
B Step 4. 变换新矩阵 (bij ),使零元素增加:
素中找出最小元素 ; ① 在B中没被直线覆盖的各元

第五节 指派问题

第五节 指派问题

S ai xij b j xij
i 1 n j 1 j 1 i 1
n
n
n
n
1
S ai b j
i 1 j 1
n
匈牙利法的基本步骤是: 1.从效益矩阵的各行减去这一行的最小元素, 再从各列减去这一列的最小元素.
2 15 13 4 2 0 13 11 2 10 4 14 15 4 6 0 10 11 C 9 14 16 13 9 0 5 7 4 4 2 7 8 11 9 7 0 1 4 2 0 13 7 0 6 0 6 9 0 5 3 2 0 1 0 0
任务 人员 甲 乙 丙 丁
E
2
J
G
R
4
15
4 14 8
13
14 16 11
10 9 7
15 13 9
任务 人员 甲 乙 丙 丁
E
2
J
G
R
4
15
4 14 8
13
14 16 11
10 9 7
15 13 9
解 引进变量 xij (i , j 1, 2, 3,4) ,使得
1 , xij 0 ,
0 1 1 1 C= 1 1 1 0

0

数学建模6.5指派问题

数学建模6.5指派问题

55
性质
从原成本矩阵C的任一行(列)中各元素加(减)
一个常数,得到新的成本矩阵,则此两成本矩阵的
指派问题的最优解是相同的.
cij di 证明:设矩阵C的第i行对应的常数为di, cij
xij (cij di ) xij z di xij z di f cij
(4)重复第(3)步, 直做到能在矩阵中找到n个 独立的0为止,这样就可以进行指派.
最大化指派问题
不平衡时的处理办法—虚拟法
• 以上方法只适用于 : 人数=任务数
当 人数≠任务数 时 • n----人数, m----任务数 • 若n>m,则虚拟n-m个任务,相应Cij=0 • 若n<m,则虚拟m-n个人,相应Cij=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
指派问题
设有n项任务要分给n个人去完成,每人完成一

指派模型【数学建模】

指派模型【数学建模】

指派模型宋海洲一:指派问题设有n个人被分配去做n件工作,规定每个人只做一件工作,每件工作只由<a name=baidusnap0></a>一个人</B>做。已知第i个人做第j件工作的效率(时间或费用)为,并假设。 ?问:应如何分配才能使总效率(总时间或总费用)最高?引进变量设建立模型分析这是线性规划模型;也是整数规划模型;0-1规划模型;更是运输模型。共有n*n个变量,实际上只需找n个变量为1即可,因此这是高度退化的线性规划模型。例1 设有5个人被分配去做5件工作,规定每个人只做一件工作,每件工作只由一个人</B>做。已知第i个人做第j件工作的费用如下表所示。问:应如何分配工作才能使总费用最省?二:匈牙利法定义:指派问题的效益矩阵:效益矩阵的性质定理1:从效益矩阵C的第k行(或第k列)的每一个元素中减去一个常数a得到的矩阵C’所表示的指派问题具有相同的最优解。( C’称缩减效益矩阵)定义:如果这些0元素分布在效益矩阵的不同的行和不同的列上,则称这些0元素为独立的0元素。定理2:若方阵的一部分元素为0,一部分元素不为0,则覆盖方阵内所有0元素的最少直线数,等于矩阵中独立的0元素的最多个数(匈牙利:konig)积和式定义:积和式的性质按行展开性;转置不变性;换行不变性;倍法变换增倍性;单行可加性; Laplace法则。补矩阵定义:匈牙利法解指派模型算法第一步:将原指派问题的效益矩阵C进行变换得矩阵CC,使得CC的各行各列均出现0元素,其方法是:(1)从效益矩阵C的每行元素减去该行最小元素;(2)在从所得的效益矩阵的每列元素减去该列最小元素。第二步:计算CC的补矩阵D,计算D的积和式per(D)。判断per(D)是否不等于0,如果per(D)不等于0,转第五步;如果per(D)等于0,转第三步。第三步:(1)在CC中找0元素最少的一排(行或列),选中其中一个0,记为0,将该0所在的行及列划去。(2)对上述划去一行及一列的矩阵,重复(1)的做法。....... 一共得到m个0 。(m n) 记下这m个0 所在的行号i1,i2,...,im及列号j1,j2,...,jm. (则CC所有的0或0必在i1,i2, (i)

数学建模获奖论文工作指派问题

数学建模获奖论文工作指派问题

河南理工大学2014年数学建模竞赛论文答卷编号(竞赛组委会填写):

题目编号:(F)

论文题目:

工作的安排

参赛队员信息(必填):

答卷编号(竞赛组委会填写):

评阅情况(学校评阅专家填写):

评阅1.

评阅2.

评阅3.

工作的安排

摘要:

工作指派问题是日常生活中常见的一类问题。本文所要研究就是在效率与成本的背景下,如何安排每个人员的工作分别达到以下三个要求:1、使得总的工作效率最大。2、使得总的成本最低。3、兼顾工作效率和成本,优化工作安排方案。

对于问题一,该问题属于工作指派问题,要求使工作效率最大。为了得到最优的安排方案,我们采用0-1规划模型,引入0-1变量,即其中一人负责某一项工作记作1,否则为0,然后与之对应的效率相乘,然后把所有的工作安排情况这样处理后,再求和作为目标函数。此外我们对该问题进行了如下约束:因为六个人刚好六份工作,所以每个人只能被安排一份工作,而且每份工作只允许一人来完成。最后在模型求解中我们应用lingo软件编程使目标函数值最大化,根据此时对应的0-1变量的所有值,最终得到最优安排方案。

对于问题二,要求的方案使工作成本最低。该问题与问题一相似,只是求解的是目标函数的最小值,为此我们建立了成本最小化模型,该模型同样应用了0-1规划方法,然后用与问题一中相似的方法建立目标函数,然后应用lingo软件编程使目标函数值最小,最终得到使成本最小的相应安排方案。

对于问题三,该问题兼顾效率与成本,属于多目标规划。首先,数据标准化处理。给出的效率成本数据属于两个不同性质的指标,两个指标之间存在着不可公度性,而且两项的数值整体大小水平不一样,会有大数起主导作用的影响,如果不对两个指标的数据进行标准化,就会得到错误的结果,为此我们首先采用极值差方法,用matlab编程对两项指标数据进行标准化。经过极差变换后,两项指标值均在0和1之间。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

指派模型宋海洲一:指派问题设有n个人被分配去做n件工作,规定每个人只做一件工作,每件工作只由一个人做。已知第i个人做第j件工作的效率(时间或费用)为,并假设。 ?问:应如何分配才能使总效率(总时间或总费用)最高?引进变量设建立模型分析这是线性规划模型;也是整数规划模型;0-1规划模型;更是运输模型。共有n*n个变量,实际上只需找n个变量为1即可,因此这是高度退化的线性规划模型。例1 设有5个人被分配去做5件工作,规定每个人只做一件工作,每件工作只由一个人做。已知第i个人做第j件工作的费用如下表所示。问:应如何分配工作才能使总费用最省?二:匈牙利法定义:指派问题的效益矩阵:效益矩阵的性质定理1:从效益矩阵C的第k行(或第k列)的每一个元素中减去一个常数a得到的矩阵C’所表示的指派问题具有相同的最优解。( C’称缩减效益矩阵)定义:如果这些0元素分布在效益矩阵的不同的行和不同的列上,则称这些0元素为独立的0元素。定理2:若方阵的一部分元素为0,一部分元素不为0,则覆盖方阵内所有0元素的最少直线数,等于矩阵中独立的0元素的最多个数(匈牙利:konig)积和式定义:积和式的性质按行展开性;转置不变性;换行不变性;倍法变换增倍性;单行可加性; Laplace法则。补矩阵定义:匈牙利法解指派模型算法第一步:将原指派问题的效益矩阵C进行变换得矩阵CC,使得CC的各行各列均出现0元素,其方法是:(1)从效益矩阵C的每行元素减去该行最小元素;(2)在从所得的效益矩阵的每列元素减去该列最小元素。第二步:计算CC的补矩阵D,计算D的积和式per(D)。判断per(D)是否不等于0,如果per(D)不等于0,转第五步;如果per(D)等于0,转第三步。第三步:(1)在CC中找0元素最少的一排(行或列),选中其中一个0,记为0,将该0所在的行及列划去。(2)对上述划去一行及一列的矩阵,重复(1)的做法。....... 一共得到m个0 。(m n) 记下这m个0 所在的行号i1,i2,...,im及列号j1,j2,...,jm. (则CC所有的0或0必在i1,i2, (i)

行中或在j1,j2,…,jm中) (3)①:在 CC中找出不在i1,i2,…,im行的0,记下他们的列号r1,r2,…;并将这些列划竖线;②:在划去竖线的CC中找出不含0的列的0,记下他们的行号s1,s2,…;并将这些列划横线;重复①②,则这些直线构成覆盖方阵CC内所有零元素的最少直线。第四步:调整CC ,使之增

加一些0,为此按如下方法进行:(1)在没有直线覆盖的元素中,找出最小元素x; (2)在未划线的行减去最小元素x;(3)在划线的列加上最小元素x;得到新的CC,返回第二步。第五步:(1)在CC中找0元素最少的一排(行或列),选中其中一个0,记为0,将该0所在的行及列划去。(2)对上述划去一行及一列的矩阵,重复(1)的做法。……. 一共得到n个0 。(3)将n 个0 所在位置对应的变量赋“1”,其他变量赋“0”,得到最优解。例2:用匈牙利法求解例1 第一步:将原指派问题的效益矩阵C进行变换第二步:计算CC的补矩阵D,计算D的积和式per(D)。第三步:(1)在CC中找0元素最少的一排(行或列),选中其中一个0,记为0,将该0所在的行及列划去。(2)对上述划去一行及一列的矩阵,重复(1)的做法。…….。一共得到4个0 。

(4 n=5) 记下这4个0 所在的行号1,2,3,5。(3)在 CC中找出不在1,2,3,5行的0(不是0 )的列号2,并将第2列划竖线,在CC划去竖线后剩下的0划横线;则这些直线构成覆盖方阵CC内所有零元素的最少直线:(下一页)第四步:调整CC ,使之增加一些0,为此按如下方法进行:(1)在没有直线覆盖的元素中,找出最小元素x=1; (2)在未划线的行减去最小元素x;(3)在划线的列加上最小元素x;得到新的CC,返回第二步。返回第二步:计算CC的补矩阵D,计算D的积和式per(D)=0。再进行第三步得:返回第四步:调整CC ,使之增加一些0,为此按如下方法进行:(1)在没有直线覆盖的元素中,找出最小元素x=1; (2)在未划线的行减去最小元素x;(3)在划线的列加上最小元素x;得到新的CC,返回第二步,此时per(D)~=0,转第五步得:三:极大指派问题

模型:令Cij’=maxCij-Cij,则模型等价为:四:不平衡指派问题令令模型转化为: * * 工作人 a b c d e 甲乙丙丁戊

7 9 8 7 4 5 12 5 3 6 9 7 4 6 7 8 11 6 9 5 11 9 8 6 11

相关文档
最新文档