数学建模B题:人员安排问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学建模B 题:人员安排问题
问题综述:该问题主要是为了求解在客户的要求下公司每天收益的最大化,属于优化问题;
我们在对这个问题建模时,主要是基于客户的两个要求来建立的: (1)客户对员工的人数要求; (这个要求是本来题目有的) (2)客户对工期的要求; (这个要求是我们进一步假设的)
对于第一个要求我们建立了基本模型,而对于第二个要求,我们在第一个要求的基础上,进一步改进了基本模型,从而建立了某个项目先完工的模型。具体的解题思路如下图所示:
一.模型基本假设:
1.假设客户对项目的工期没有限制,项目的工期由公司决定,且四个项目同时开工,同时完工,中间也不停工。 2. 假设所有人员总能在岗位上工作,不考虑由于生病或是其他意外事件而造成人员的缺席。 3.假设四个项目同时需要的最多人数不超过现有公司工作人员的人数,即使超过,也只分配公司现有的工作人员。
4.假设C 、D 两个项目的管理费由公司支付;
5.假设所有工作人员都安排完毕,即每个人都有工作。
6.假设同等级别的工作人员的技术水平是相同的,即他们可以接受任意等同的任务。
二.符号说明:
i :用i =1,2,3,4分别表示高级工程师,工程师,助理工程师和技术员。 j :用j =1,2,3,4分别表示项目A,B,C 和D 。
ij X :公司分配第i 级别工作人员到第j 个项目上的人数。例如23X 表示公司分配工程师到
项目C 上的人数。
ij a :第i 级别工作人员分配到第j 个项目上的收费。
ij b : 第i 级别工作人员分配到第j 个项目上时公司的开支(包括工资和管理费)
。 ij A : 表示到项目j 工作的第i 级别工作人员为公司贡献的纯利润收入。
j : 表示第j 个项目的总工时(即项目j 的总工作量)
。 j T : 表示第j 个项目客户所要求的工期(即项目j 所需要的完工时间)
。 Max :公司一天的直接收益 只考虑客户对员工的人数要求 基本模型 进一步考虑客户对工期的要求 某个项目先完工的模型
改进
j M : 表示客户要求第j 个项目一天所必须完成的工作量。
j m : 表示公司分配给第j 个项目的所有工作人员一天能够完成的工作量。 三.模型的建立:
1.基本模型:
公司每天的直接收益等于公司每天对各个项目的总收费减去公司每天的总支出,公司每天的总收费为:
ij i j ij
X a
∑∑==414
1
,每天的总开支为:ij i j ij X b ∑∑==414
1
,于是公司每天的直接收益为:
ij i j ij ij X a X f ∑∑===414
1
)(-ij i j ij X b ∑∑==4
14
1
=ij i j ij ij X b a )(4
14
1
∑∑==- (1)
在客户的人数要求下,可得基本模型为: Max :ij i j ij ij
ij X b a
X f )()(414
1
∑∑==-=
s.t.
104
1
1
≤∑=i i X
; (2)
164
12
≤∑=i i X
; (3)
114
13
≤∑=i i X
; (4)
184
1
4
≤∑=i i X
; (5)
94
11=∑=j j
X
; (6)
174
12=∑=j j
X
; (7)
104
13=∑=j j
X
; (8)
54
1
4=∑=j j
X
; (9)
3111≤≤X ; (10) 17221≤≤X ; (11)
10231≤≤X ; (12) 5141≤≤X ; (13) 5212≤≤X ; (14) 17222≤≤X ; (15)
10232≤≤X ; (16) 5342≤≤X ; (17)
213=X ; (18) 17223≤≤X ; (19) 10233≤≤X ; (20) 5143≤≤X ; (21) 2114≤≤X ; (22) 8224≤≤X ; (23)
10134≤≤X ; (24) 044=X ; (25)
ij X 为整数;
(j i ,=1,2,3,4) (26) 此模型即为在这些约束条件下对公司一天的收益求解最大值,属于整数线性规划模型。
2.基本模型的求解:
为了便于数据的对照和模型的求解,我们先把题目所提供的表2的结构改成与表3相同的结构,如表1所示: 表1
收费(元/天) A B C D 高级工程师 1000 1500 1300 1000 工程师 800 800 900 800 助理工程师 600 700 700 700 技术员
500
600
400
500
利用Matlab 和Lingo 软件求解基本模型得出解如表2所示:(具体解法与源程序请见附录1和附录2,至于我们为什么两个软件都用,请务必看附录2中的注3的解释,谢谢!)
表2
分配(人) A B C D 高级工程师 1 5 2 1 工程师 6 3 6 2 助理工程师 2 5 2 1 技术员
1
3
1
并解得公司一天直接收益最大值为:27150(元) 3.结果分析:
在符合模型基本假设的条件下,该模型的解既满足了客户的人员要求,又实现了公司每天收益的最大化。另外,从解中可以知道,公司的人员分配满足了项目A,B,C 的最大人员要求,然而项目D 的人员却只有4人,显然这个解是符合公司利益的,因为从收费表中知道,项目D 的收费相对较低,而且公司还要付出一定的管理费,从公司的收益来考虑,当然希望把最少的人分配到项目D 上,而把更多的人分配到其他项目上去,但是这种情况也恰恰从另一方面反映了这个模型的简单与不足,那就是这个模型更多的是基于公司的利益来考虑问题的,虽然满足了客户对人员的要求,但并没有考虑到现实中客户对项目的工期等其他方面的要求,所以需要进一步改进。
四:模型的改进:
1.某个项目j 先完工的模型:
在基本模型中,我们主要是基于模型基本假设1来建立模型的,为了更加符合现实情况,我们将基本假设1修改为:
(1)假设各项目同时开工,但客户要求某项目j 先完工,而其他项目可以后完工,而且同时完工。
并进一步假设如下:
(2)假设不同级别的工作人员的工作能力与其工资水平成正比。 (3)假设客户对项目的工期要求是合理的。 在这三个假设下,我们令一个技术员一天能够完成的工作量为一个标准工时,由于不同等级的工作人员的工作能力(即一天能完成的工作量)与其工资水平成正比,所以一个高级工程师,工程师和助理工程师一天能够完成的工作量分别相当于:250/110,200/110,170/110 个工时,假设项目j 完工总共需要的工时为j λ,而客户要求项目必须在j T 天内完成,则项目j 每天的工时为:
j
j
j T M λ=
(27)
而该项目所分配人员一天所能完成的工作量记为:
j j j j j X X X X m 4321110
170
110200110250+++=
(28) 对于客户给定的j λ和j T ,我们可以确定j M ,于是得到模型为: