运筹学课程设计.docx
《运筹学课程设计.docx》由会员分享,可在线阅读,更多相关《运筹学课程设计.docx(11页珍藏版)》请在冰豆网上搜索。
运筹学课程设计
目录
一、课程设计内容5
二、建立模型6
方案1模型6
方案2模型7
方案3模型8
三、编写lingo程序并运行得出结果8
方案1lingo程序9
方案2lingo程序10
方案3lingo程序11
四、模型具体分析13
五、心得体会15
参考文献15
一、课程设计内容
长征医院是长宁市的一所区级医院,该院每天各时间区段内需求的值班护士数如下表:
时间区段
6:
00~10:
00
10:
00~14:
00
14:
00~18:
00
18:
00~22:
00
22:
00~6:
00(次日)
需求数
18
20
19
17
12
该院护士上班分五个班次,每班8h,具体上班时间为第一班2:
00~10:
00,第二班6:
00~14:
00, 第三班10:
00~18:
00,第四班14:
00~22:
00,第五班18:
00~2:
00(次日).每名护士每周上五个班,并被安排在不同日子.有一名总护士长负责护士的值班安排.值班方案要做到在人员或经济上比较节省,又做到尽可能合情合理.下面是一些正在考虑中的值班方案:
方案1 每名护士连续上班5天,休息2天,并从上班第一天起按从上第一班到第五班顺序安排.例如一名护士从周一开始上班,则她于周一上第一班, 周二上第二班,………周五上第五班;另一名护士从周三开始上班,则她于周三上第一班,周四上第二班,………周日上第五班;等等.
方案2 考虑到按上述方案中每名护士在周末(周六,周日)两天内休息安排不均匀,于是规定每名护士在周六,周日两天内安排一天,且只安排一天休息,再在周一至周五期间安排四个班,同样上班的五天内顺序安排5个不同班次.
在对第1,2方案建立模型求解后,发现方案2虽然在安排周末休息上比较合理,但所需值班人数比第1方案有较多增加, 经济上不太合算,于是又提出了第三方案.
方案3 在方案二基础上,动员一部分护士放弃周末休息,即每周在周一至周五间由总护士长给安排三天值班, 加周六,周日共五个班, 同样五个班分别安排不同班次.作为奖励, 规定放弃周末休息的护士,其工资和奖金总额比其他护士增加a%.
根据上述,帮助长征医院的总护士长分析研究:
(a) 对方案1,2建立使值班护士人数为最少的数学模型并求解;
(b) 对方案3, 同样建立使值班护士人数为最少的数学模型并求解,然后回答a的值为多大时,第3方案较第2方案更经济.
设计一个简单的实用型图书管理程序,要求完成图书信息的输入,输出,以及查找,增添,修改,删除图书信息。
输入图书信息后,操作结束后,系统可以保存管理员所输入的图书信息于library.txt文件下,在下次进入系统时,图书文件将会存在,再以只写二进制打开文件,即实现对图书信息的录入和保存。
二、建立模型
方案1:
设从星期i开始值班的护士人数为xi(i=1,2,3…,7),则可对方案1建立如下模型:
minz1=x1+x2+x3+x4+x5+x6+x7
x1+x2≥20
x2+x3≥20
x3+x4≥20
x4+x5≥20
x5+x6≥20
x6+x7≥20
x1+x7≥20
xi≥12(i=1,2,3…,7)
方案2:
设从星期六的第一班开始每一班安排一组人,直到星期天最后一班共10组,每一组安排护士人数xi(i=1,2,3…,10),则可对方案2建立如下模型:
minz2=x1+x2+x3+x4+x5+x6+x7+x8+x9+x10
x1+x2≥18
x6+x10≥18
x3+x4+x7+x8≥18
x2+x3≥20
x3+x4≥20
x6+x7≥20
x7+x8≥20
x1+x5+x9+x10≥20
x4+x5+x8+x9≥20
x1+x2+x6+x10≥20
x4+x5≥19
x8+x9≥19
x2+x3+x6+x7≥19
x1+x5≥17
x9+x10≥17
x1+x3+x6+x10≥17
x3+x6+x3+x7≥12
x3+x6≥12
x3+x7≥12
x4+x8≥12
x5+x9≥12
x1≥12
x2≥12
x5≥12
x6≥12
x9≥12
x10≥12
xi≥0(i=1,2,3…,10)
方案3:
设周末两天都值班的安排5组(i=1~5),周末值班一天的安排10组(i=6~10),总共10组,每组人数xi(i=1,2,3…,15),则可对方案3建立如下模型:
minz3=x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11+x12+x13+x14+x15
x4+x5+x11+x15≥18
x1+x5+x11+x12≥20
x4+x5+x6+x7+x11+x15≥20
x1+x5+x7+x8+x11+x12≥19
x3+x4+x6+x10+x14+x15≥20
x1+x2+x8+x9+x12+x13≥17
x9+x10+x13+x14≥20
x4+x6+x10+x15≥19
x6+x7+x11+x15≥17
x7+x8+x11+x12≥12
x1+x5+x6+x10≥12
x7+x8≥18
x8+x9≥20
x9+x10≥19
x6+x10≥17
x1+x2+x6+x7≥18
x2+x3+x7+x8≥20
x1+x2+x12+x13≥20
x2+x3+x13+x14≥19
x3+x4+x14+x15≥17
x3+x4+x8+x9≥19
x4+x5+x9+x10≥17
x8+x12≥12
x7≥12
x5+x11≥12
x3+x14≥12
x2+x9+x13≥12
x6≥12
x5+x10≥12
x4+x15≥12
x7+x11≥12
xi≥0(i=1,2,3…,15)
三、编写lingo程序并运行得出结果
方案1lingo程序编写如下:
min=x1+x2+x3+x4+x5+x6+x7;
x1+x2>=20;
x2+x3>=20;
x3+x4>=20;
x4+x5>=20;
x6+x7>=20;
x1+x7>=20;
x1>=12;
x2>=12;
x3>=12;
x4>=12;
x5>=12;
x6>=12;
x7>=12;
end
@gin(x1);@gin(x2);@gin(x3);
@gin(x4);@gin(x5);@gin(x6);@gin(x7);
方案1运行结果如下:
方案2lingo程序编写如下:
min=x1+x2+x3+x4+x5+x6+x7+x8+x9+x10;
x1+x2>=18;
x6+x10>=18;
x3+x4+x7+x8>=18;
x2+x3>=20;
x3+x4>=20;
x6+x7>=20;
x7+x8>=20;
x1+x5+x9+x10>=20;
x4+x5+x8+x9>=20;
x1+x2+x6+x10>=20;
x4+x5>=19;
x8+x9>=19;
x2+x3+x6+x7>=19;
x1+x5>=17;
x9+x10>=17;
x1+x3+x6+x10>=17;
x3+x6+x3+x7>=12;
x3+x6>=12;
x3+x7>=12;
x4+x8>=12;
x5+x9>=12;
x1>=12;
x2>=12;
x5>=12;
x6>=12;
x9>=12;
x10>=12;
x3>=0;
x4>=0;
x7>=0;
x8>=0;
end
@gin(x1);@gin(x2);@gin(x3);@gin(x4);@gin(x5);
@gin(x6);@gin(x7);@gin(x8);@gin(x9);@gin(x10);
方案2运行结果如下:
方案3lingo程序编写如下:
min=x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11+x12+x13+x14+x15;
x4+x5+x11+x15>=18;
x1+x5+x11+x12>=20;
x4+x5+x6+x7+x11+x15>=20;
x1+x5+x7+x8+x11+x12>=19;
x3+x4+x6+x10+x14+x15>=20;
x1+x2+x8+x9+x12+x13>=17;
x9+x10+x13+x14>=20;
x4+x6+x10+x15>=19;
x6+x7+x11+x15>=17;
x7+x8+x11+x12>=12;
x1+x5+x6+x10>=12;
x7+x8>=18;
x8+x9>=20;
x9+x10>=19;
x6+x10>=17;
x1+x2+x6+x7>=18;
x2+x3+x7+x8>=20;
x1+x2+x12+x13>=20;
x2+x3+x13+x14>=19;
x3+x4+x14+x15>=17;
x3+x4+x8+x9>=19;
x4+x5+x9+x10>=17;
x8+x12>=12;
x7>=12;
x5+x11>=12;
x3+x14>=12;
x2+x9+x13>=12;
x6>=12;
x5+x10>=12;
x4+x15>=12;
x7+x11>=12;
x1>=0;
x2>=0;
x3>=0;
x4>=0;
x5>=0;
x8>=0;
x9>=0;
x10>=0;
x11>=0;
x12>=0;
x13>=0;
x14>=0;
x15>=0;
end
@gin(x1);@gin(x2);@gin(x3);@gin(x4);@gin(x5);
@gin(x6);@gin(x7);@gin(x8);@gin(x9);@gin(x10);
@gin(x11);@gin(x12);@gin(x13);@gin(x14);@gin(x15);
方案3运行结果如下:
四、模型具体分析
1.方案1将值班人员分为7个组,第i组从星期i开始,连续值班5天,且每天安排不同的班次,通过计算可以得到结果:
x1=12,x2=12,x3=12,x4=12,x5=12,x6=12,x7=12,最后得到所需最少人数:
minz1=84满足所有条件,但方案1的安排比较死板,灵活性较差,比较不容易调整,也可以说不太人性化。
2.方案2考虑到护士周末休息,于是规定每名护士周末休息一天,周一到周五按方案1的规则,根据以上规则,可以10各小组,第1组在星期六第一班值班,第2组在星期六第二班值班,…,以此类推,第10组在星期天第五班值班,再将这10组排到周一到周五,通过计算可以得到结果:
x1=12,x2=12,x3=8,x4=12,x5=12,x6=12,x7=13,x8=7,x9=12,x10=12,最后得到所需最小人数:
minz2=112,虽值班安排结构得到较大改善,但所需人数比方案1有较多增加,经济上不太合算。
3.根据方案2的缺陷,方案3对其进行了调整。
即动员一部分护士放弃周末休息,但要给予奖金奖励,其工资和奖金总额比其他护士增加a%,周一到周五同样按上述方案安排。
根据上述安排,安排5个组周末加班,再安排10个组加上5个周末加班组剩下的三天,安排周一到周五的值班,通过计算可以得到结果:
x1=2,x2=11,x3=12,x4=12,x5=12,x6=12,x7=13,x8=6,x9=14,x10=5,x11=0,x12=6,x13=1,x14=0,x15=0,最后得到所需最小人数:
minz3=105。
方案3所需人数比方案2要少,但还要考虑增加金额%a,方案3需加奖金的人数为49人,不加奖金人数为56人,设护士原工资为y元,则
56y+49y(1+%a)≤112y
解得:
a≤14
故当加班护士工资和奖金总额增加值%a不超过%14时,方案3比方案2要更经济。
五、心得体会
经过一星期的课程设计,过程不可谓不曲折,整天都是对着电脑,不然就是翻阅资料。
在此期间我失落过,也曾一度热情高涨,甚至捶胸顿足,点点滴滴令我回味无穷。
这次运筹学课程设计使我深刻体会到只有细心、耐心、恒心才能做好一件事。
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
从选题到定稿,从理论到实践,在整整一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
同时,我也增强了自己的实际动手操作能力,所以感觉收获很大。
参考文献
【1】胡运权,《运筹学基础及应用》高等教育出版社2008
【2】lingo教程