简单的运筹学实际应用案例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
运筹学的实际应用
学生会晨读考勤巡视人员分配建模
晨读考勤制度是我校对大学一年级及二年级学生的特殊制度,针对上午第一节有课的班级——周一至周五上午第一节课有课(包括任何课程)的班级需7:30到教室组织英语晨读,未按时到达学生录入考勤系统,按迟到处理。
晨读考勤状况的盘点与巡视工作由校学生会负责。因为每天上晨读的班级数目都不一样,所以每天需要的巡查人员数目也并不同,根据每天晨读班级数目制定的每日所需巡查人数如下表所示。巡视工作枯燥繁重,所以成员在连续参与巡视工作3天后,可以连休两天。(周二至周四巡视过得人员可以在周五和下周一休息)。
学生会人数有限,所以请设计一套方案,需满足每天所需的巡查人数,又使
项目解决:
一,项目内容要求提取
(1)忽略星期六和星期日
(2)巡视人员连续工作3天后连续休息2天,忽略请假情况
(3)分配休息两天后周一至周五每天开始工作的人员,使总工作人数最少。
二,分析建模
此问题是一个典型并且简单的线性规划问题,所以接下来是建立目标函数以及对应的约束条件,并设法求解。
建立模型:
Z为所需巡视人员总的人数。
设:x i(i=1,2,3,4,5)为休息两天后,周一至周五每天开始工作的学生会成员。
minZ=x1+x2+x3+x4+x5
x1+x4+x5≥40
x1+x2+x5≥55
x1+x2+x3≥30
x2+x3+x4≥48
x3+x4+x5≥30
x i≥0,i=1,2,3,4,5
三,求解
运用Matlab的linprog函数求解
编写命令:
c=[1,1,1,1,1]
A=[-1 0 0 -1 -1;
-1 -1 0 0 -1;
-1 -1 -1 0 0;
0 -1 -1 -1 0;
0 0 -1 -1 -1;]
b=[-40;-55;-30;-49;-30];
Aeq=[];beq=[];
vlb=[0;0;0;0;0];vub=[]
[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)
求解得出:
x =
4.3625
32.0000
0.0000
17.0000
18.6375
fval =
72.0000
四,得出结论
根据计算结果得出:
总的巡查人员数最少为72人。