工作最优安排问题.docx
- 文档编号:3802150
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:15
- 大小:173.61KB
工作最优安排问题.docx
《工作最优安排问题.docx》由会员分享,可在线阅读,更多相关《工作最优安排问题.docx(15页珍藏版)》请在冰豆网上搜索。
工作最优安排问题
一.摘要
对于“最优工作安排问题”数学模型的建立,其内容是通过分析给定人员和人员所需完成的任务以及完成任务所花费的时间的关系,抽象出怎样把任务指派给人员使得任务的总效率达到最高的指派问题。
于是就本题目讨论,对项目而言,越早完成越好;对人力资源而言,在该项目上所花费的人力越少越好。
因此,可以根据所优化的模型用变量代替分析变量关系,利用数学工具,进而求解。
得出最优结果。
对于问题一而言,为了工作的连贯性,不允许两人或两人以上做同一种工作。
一个人在同一时间只能做一种工作。
在这种条件下,要想尽快完成工作任务,则需要通过建立数学模型来解决。
利用Matlab软件中指派问题的匈牙利算法和Lingo软件来解决。
可以得出结论是17天。
对于问题二而言,其和问题一十分类似,但是问题二规定每人最多只能承担一种工作,而问题一则可以一个人做两个以上的工作,因此需要通过建立数学模型利用Matlab软件中指派问题的匈牙利算法来解决。
并且要考虑到一个人只能做一种工作,所以得出的结论是20天。
对于问题三而言,对于每个工作,只有当该工作完全完成之后才能进行检查工作。
为了检查的连贯性,不允许两人或两人以上检查同一种工作。
一个人在同一时间只能检查一种工作。
言下之意,一个人完成的工作和检查的工作可以是同样的,利用Matlab程序可以计算出答案是13天。
对于问题四而言,规定每人最多完成一种工作和另外一件工作的检查任务。
此时,如果继续用Matlab程序和匈牙利算法则会存在弊端,因为算下来之后的矩阵的每一行每一列只有一个1,其余均为0,因此可以利用程序代码将问题四解决,答案是48天。
关键词:
LingoMatlab检查工作连贯性匈牙利算法程序代码
二.问题的提出
对于工作最优安排问题,最主要的就是在最少的时间里完成任务。
就本体而言,一共有四个问题,一是要在最短的时间里,在允许两人或两人以上做同一种工作。
一个人在同一时间只能做一种工作的条件下,如何用最少的时间完成任务呢?
而是要在最短的时间里,在问题一的基础上加上每个人只能做一种工作的条件,如何求出最短的时间完成任务?
三是要在问题一的基础上增加一项检查工作,对于每个工作,只有当该工作完全完成之后才能进行检查工作。
为了检查的连贯性,不允许两人或两人以上检查同一种工作。
一个人在同一时间只能检查一种工作,如何求出完成和检查任务的最短时间?
四是要在问题三的基础上规定一个人只能完成一种工作和检查另外一种工作,如何求出最短的时间里完成这两项工作?
问题的解决都必须遵从人力安排的最优条件,以节省时间为前提,怎样才可以达到这样的目标呢?
3.基本假设
基于本道题,提出如下假设:
1)假设不能同一时间展开不同的工作,即只有当一项工作完成才能展开下一项工作,也就是说完成各个工作的总时间需要通过累加完成;
2)假设一完成工作就展开检查工作,中间没有停顿;
3)不允许两人或两人以上做同一种工作。
一个人在同一时间只能做一种工作;
4)对于每个工作,只有当该工作完全完成之后才能进行检查工作。
为了检查的连贯性,不允许两人或两人以上检查同一种工作。
一个人在同一时间只能检查一种工作。
四.问题的分析
由题意知,根据问题的分析建立的数学模型,它要求指派的方案要使得工作尽早完成。
在求解的过程中不能使用枚举法而是通过建立数学模型来科学地思考该问题。
问题二可以利用Matlab数学软件中指派问题的匈牙利算法来解决,而问题一,问题三中,由于条件的限制都不一样,但解决方案与问题二中十分接近,可得到的结果也是相当理想的。
对于问题四而言,相较于问题一、问题二、问题三都有些复杂,如果单纯地利用Matlab程序来解决则会出现错误,所以还要再次利用程序代码来解决问题四。
但都需要对程序运行的结果进行充分的考察,再得出指派方案。
五.模型建立
1)问题一
模型建立:
1.定义符号说明:
:
此为0-1变量,对所有的i和j:
1,表示当指派第i个人去完成第j项工作时,
0,表示当指派第i个人去完成第j项工作时。
将原题中的A,B,C,D,E,F,G人员对应X的下标i:
i∈{1,2,3,4,5,6,7,};
将原题中的甲,乙,丙,丁,戊对应X的下标j:
j∈{1,2,3,4,5};
约束条件:
一人可完成0项或一项工作:
一项工作只能由一人完成:
2.模型求解:
由于是一个7×5矩阵,因此为了Matlab程序容易运行,多增加两列零向量变成7×7矩阵,如下:
c=[215131800;1041415700;9141613800;78119400;84158600;124681300;516851000];
c=c(:
);
a=zeros(14,49);
fori=1:
7
a(i,(i-1)*7+1:
7*i)=1;
a(7+i,i:
7:
49)=1;
end
b=ones(14,1);
[x,y]=bintprog(c,[],[],a,b);
Optimizationterminated.
x=reshape(x,[7,7]),y
x=
0001000
0000010
0000001
0000100
0100000
0010000
1000000
y=
20
由模型可以看出一共有两种安排方法:
A的工作:
丁,耗时1天;D的工作:
戊,耗时4天;E的工作:
乙,耗时4天;F的工作:
丙,耗时6天;G的工作:
甲,耗时5天;B、C没有工作要做;共消耗20天。
A的工作:
甲,丁,共耗时3天;D的工作:
戊,耗时4天;E的工作:
乙,耗时4天;F的工作:
丙,耗时6天;B、C、G没有工作要做;共消耗17天。
题目规定两人或两人以上不能做同一种工作并且一个人在同一时间只能做一种工作,因此可以得出答案:
17天。
2)问题二
模型建立:
1.定义符号说明:
:
此为0-1变量,对所有的i和j:
1,表示当指派第i个人去完成第j项工作时,
0,表示当指派第i个人去完成第j项工作时。
将原题中的A,B,C,D,E,F,G人员对应X的下标i:
i∈{1,2,3,4,5,6,7,};
将原题中的甲,乙,丙,丁,戊对应X的下标j:
j∈{1,2,3,4,5};
约束条件:
一人可完成0项或一项工作:
一项工作只能由一人完成:
2.模型求解:
由于是一个7×5矩阵,因此为了Matlab程序容易运行,多增加两列零向量变成7×7矩阵,如下:
利用Lingo软件的程序如下:
MODEL:
SETS:
WORKER/A..G/;
JOB/J1..J7/;
LINKS(WORKER,JOB):
C,X;
ENDSETS
DATA:
C=2,15,13,1,8,0,0,
10,4,14,15,7,0,0,
9,14,16,13,8,0,0,
7,8,11,9,4,0,0,
8,4,15,8,6,0,0,
12,4,6,8,13,0,0,
5,16,8,5,10,0,0;
ENDDATA
MIN=@SUM(LINKS:
C*X);
@FOR(WORKER(I):
@SUM(JOB(J):
X(I,J))=1);
@FOR(JOB(J):
@SUM(WORKER(I):
X(I,J))=1);
@FOR(LINKS:
@BIN(X));
END
由模型可以看出一共有两种安排方法:
A的工作:
丁,耗时1天;D的工作:
戊,耗时4天;E的工作:
乙,耗时4天;F的工作:
丙,耗时6天;G的工作:
甲,耗时5天;B、C没有工作要做;共消耗20天。
A的工作:
甲,丁,共耗时3天;D的工作:
戊,耗时4天;E的工作:
乙,耗时4天;F的工作:
丙,耗时6天;B、C、G没有工作要做;共17天。
但由于问题二规定每人最多承担一份工作,所以答案
需要排除,只有答案
符合条件;根据解决问题一的经验可以得出答案是:
20天。
3)问题三
模型建立:
1.定义符号说明:
:
此为0-1变量,对所有的i和j:
1,表示当指派第i个人去检查第j项工作时,
0,表示当指派第j个人去检查第j项工作时,
将原题中的A,B,C,,D,E,F人员对应为Y的下标i:
i∈{1,2,3,4,5,6,7}
将原题中的甲,乙,丙,丁,戊对应为Y的下标j:
j∈{1,2,3,4,5};
约束条件:
一人可检查0项或一项工作:
一项工作只能由一人检查:
2.模型求解:
由于是一个7×5矩阵,因此为了Matlab程序容易运行,多增加两列零向量变成7×7矩阵,如下:
c=[113101800;104810500;86109600;67118400;63158500;114671000;41263200];
c=c(:
);
a=zeros(14,49);
fori=1:
7
a(i,(i-1)*7+1:
7*i)=1;
a(7+i,i:
7:
49)=1;
end
b=ones(14,1);
[x,y]=bintprog(c,[],[],a,b);
Optimizationterminated.
x=reshape(x,[7,7]),y
x=
1000000
0000001
0000010
0000100
0100000
0010000
0001000
y=
17
由模型可以看出一共有三种方案:
A的工作是:
甲,消耗1天;D的工作是:
戊,消耗4天;E的工作是:
乙,消耗3天;F的工作是:
丙,消耗6天;G的工作是:
丁,消耗3天。
B、C没有检查任务,共消耗17天。
A的工作是:
甲,丁,共消耗2天;D的工作是:
戊,消耗4天;E的工作是:
乙,消耗3天;F的工作是:
丙,消耗6天;B、C、G没有检查任务,共消耗15天。
A的工作是:
甲,丁,共消耗2天;G的工作是:
戊,消耗2天;E的工作是:
乙,消耗3天;F的工作是:
丙,消耗6天;B、C、D没有检查任务,共消耗13天。
因此可以排除方案
、
,最终答案为方案
,共消耗13天。
4)问题四
模型建立:
1.定义符号说明:
:
此为0-1变量,对所有的i和j:
1,表示当指派第i个人去检查第j项工作时,
0,表示当指派第j个人去检查第j项工作时,
将原题中的A,B,C,,D,E,F人员对应为Y的下标i:
i∈{1,2,3,4,5,6,7}
将原题中的甲,乙,丙,丁,戊对应为Y的下标j:
j∈{1,2,3,4,5};
:
此为0-1变量,对所有的i和j:
1,表示当指派第i个人去完成第j项工作时,
0,表示当指派第i个人去完成第j项工作时。
将原题中的A,B,C,D,E,F,G人员对应X的下标i:
i∈{1,2,3,4,5,6,7,};
将原题中的甲,乙,丙,丁,戊对应X的下标j:
j∈{1,2,3,4,5};
约束条件:
一人可检查0项或一项工作或完成项或一项工作:
一项工作只能由两个人检查和完成:
2.模型求解:
由于是两个7×5矩阵,因此为了Matlab程序容易运行,可以把它并为一个矩阵并多增加三行零向量变成10×10矩阵,如下:
c=[21513181131018;104141571048105;91416138861096;781194671184;841586631585;12468131146710;5168510412632;0000000000;0000000000;0000000000];
c=c(:
);
a=zeros(20,100);
fori=1:
10
a(i,(i-1)*10+1:
10*i)=1;
a(10+i,i:
10:
100)=1;
end
b=ones(20,1);
[x,y]=bintprog(c,[],[],a,b);
Optimizationterminated.
x=reshape(x,[10,10]),y
x=
0001000000
0100000000
0000000001
0000100000
0000001000
0000000100
0000000010
0010000000
1000000000
0000010000
y=
27
由问题三的模型模型可以看出一共有三种方案:
A的工作是:
甲,消耗1天;D的工作是:
戊,消耗4天;E的工作是:
乙,消耗3天;F的工作是:
丙,消耗6天;G的工作是:
丁,消耗3天。
B、C没有检查任务,共消耗17天。
A的工作是:
甲,丁,共消耗2天;D的工作是:
戊,消耗4天;E的工作是:
乙,消耗3天;F的工作是:
丙,消耗6天;B、C、G没有检查任务,共消耗15天。
A的工作是:
甲,丁,共消耗2天;G的工作是:
戊,消耗2天;E的工作是:
乙,消耗3天;F的工作是:
丙,消耗6天;B、C、D没有检查任务,共消耗13天。
但由于问题四要求每个人只能做一项工作和另外一种检查任务,因此需要重新建立模型如上图所示,根据题意可知,若A的工作是:
完成丁,检查甲,共消耗2天;B的工作是完成乙,消耗4天;C的工作是检查戊,消耗6天;D的工作是完成戊,消耗4天;E的工作是完成丙,检查乙,消耗18天;F的工作是检查丙,消耗6天;G的工作是完成甲,检查丁,共消耗8天。
所以一共消耗48天。
6.模型的优缺点及改进方向
优点:
对于一般的整数规划问题,无法直接利用Matlab的函数,必须利用Matlab编程实现分枝定界解法和割平面解法。
但对于指派问题等0?
1整数规划问题,可以直接利用Matlab的函数bintprog进行求解。
这样既方便也很快捷。
匈牙利算法也是Matlab算法里面对于解决指派问题是一个最优的方法,不仅可以知道指派的顺序还可以知道有多少种指派方法。
缺点:
匈牙利算法对于使用者的线性规划能力的要求很高,Lingo可以专门解决整数指派问题,对于本题来说很有利模型太过单一和简单,对于解决复杂的问题会很困难,不具有普遍性。
改进方向:
可以利用Lingo等专门解决整数指派问题的软件搭配着Matlab程序来解决该问题,建立简单而又通用的程序,方便以后类似问题的求解和延生拓展。
7.参考文献
韩伯棠管理运筹学(第三版)北京:
高等教育出版社2004.9
杨启凡数学建模浙江:
浙江大学出版社2006.6
卓金武MATLAB在数学建模中的应用北京:
北京航空航天大学出版社2011.4
姜启源数学建模案例选集北京:
高等教育出版社2006.7
(美)米尔斯切特著,刘来福等译数学建模方法与分析(第三版)机械工业出版社2009.5
(美)吉奥丹诺(Giordano,F.R)等著;叶其孝等译数学建模(第四版)机械工业出版社2009.8
杨启凡数学建模案例集北京:
高等教育出版社2006.7
周永正数学建模上海:
同济大学出版社2010.8
附录
表1.七人五件工作用时表(单位:
天)
甲
乙
丙
丁
戊
A
2
15
13
1
8
B
10
4
14
15
7
C
9
14
16
13
8
D
7
8
11
9
4
E
8
4
15
8
6
F
12
4
6
8
13
G
5
16
8
5
10
表2.七人五件工作检查用时表(单位:
天)
甲
乙
丙
丁
戊
A
1
13
10
1
8
B
10
4
8
10
5
C
8
6
10
9
6
D
6
7
11
8
4
E
6
3
15
8
5
F
11
4
6
7
10
G
4
12
6
3
2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工作 最优 安排 问题