简单的运筹学实际应用案例(总3页)
--本页仅作预览文档封面,使用时请删除本页--
运筹学的实际应用
学生会晨读考勤巡视人员分配建模
晨读考勤制度是我校对大学一年级及二年级学生的特殊制度,针对上午第一节有课的班级——周一至周五上午第一节课有课(包括任何课程)的班级需7:30到教室组织英语晨读,未按时到达学生录入考勤系统,按迟到处理。
晨读考勤状况的盘点与巡视工作由校学生会负责。因为每天上晨读的班级数目都不一样,所以每天需要的巡查人员数目也并不同,根据每天晨读班级数目制定的每日所需巡查人数如下表所示。巡视工作枯燥繁重,所以成员在连续参与巡视工作3天后,可以连休两天。(周二至周四巡视过得人员可以在周五和下周一休息)。
学生会人数有限,所以请设计一套方案,需满足每天所需的巡查人数,又使得总的负责巡查工作的学生会成员数能达到最少。 星期 所需巡查人数 星期 所需巡查人数 40 48 一 四 55 30 二 五 30 三
项目解决:
一,项目内容要求提取
(1) 忽略星期六和星期日
(2) 巡视人员连续工作3天后连续休息2天,忽略请假情况
(3) 分配休息两天后周一至周五每天开始工作的人员,使总工作人数最
少。
二,分析建模
此问题是一个典型并且简单的线性规划问题,所以接下来是建立目标函数以及对应的约束条件,并设法求解。 建立模型:
Z为所需巡视人员总的人数。
设:i(i=1,2,3,4,5)为休息两天后,周一至周五每天开始工作的学生会成员。
minZ=x1+x2+x3+x4+x5 x1+x4+x5≥40
x
x1+x2+x5≥55
2
x1+x2+x3≥30 x2+x3+x4≥48 x3+x4+x5≥30 xi≥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 = fval =
3
相关推荐: