长 春 工 业 大 学
课程设计报告
(Javascript)
课程设计名称 运筹学程序设计
专 业 信息管理与信息系统
班 级
学 生 姓 名
指 导 教 师
20##年7月12日
运筹学课程设计提纲
组别:第12组
设计人员:
设计时间:20##年6月29日—20##年7月12日
1、 设计进度
本课程设计时间分为两周:
第一周(20##年6月27日----20##年7月1日):建模阶段。此阶段各小组根据给出的题目完成模型的建立。主要环节包括 :
1.1 6月29日上午:发指导书;按组布置设计题目;说明进度安排。
1.2 6月29日下午至7月1日:各小组审题,查阅资料,进行建模前的必要准备(包括求解程序的编写与查找)。
1.3 7月4日至7月5日:各个小组进行建模,并根据题目及设计要求拟定设计提纲,指导教师审阅;同时阅读,理解求解程序,为上机求解做好准备。
第二周(20##年7月4日---7月8日):上机求解,结果分析及答辩。主要环节包括
1.1 7月6日至7月7日:上机调试程序
1.2 7月8日:完成计算机求解与结果分析。
1.3 7月11日:撰写设计报告。
1.4 7月12日:设计答辩及成绩评定。
2、设计题目
某商店要制订明年第一季度某种商品的进货和销售计划。一直该店的仓库容量最多可存储该种商品500件,而今年年底有200件存货。该店在每月月初进货一次。一直各月份进货和销售该种商品的单价如下表所示。问每个月应进货和销售该种商品个多少件,才能使总利润最大。并按要求分别完成下列分析:(1)2月份的进货单价在何范围内变化时最优进销策略不变?(2)3月份的售价在何范围内变化是最优进销策略不变?(3)第一月份初库存量在何范围内变化时最优基不变?(4)仓库容量在何范围内变化时最优基不变?
3、所建模型
3.1 设定变量
设x1为一月份的进货量
x2 为二月份的进货量
x3为三月份的进货量
x4为一月份的销售量
x5为二月份的销售量
x6为三月份的销售量
3.2 约束条件的确定
一月份的进货量加月初库存量小于总库存量:x1 ≤300
一月份的销售量小于总库存量: -x1+ x4 ≤200
二月份的进货量月初加库存量小于总库存量:x1+ x2 –x4 ≤300
二月份的销售量小于总库存量: -x1–x2+ x4+ x5 ≤200
三月份的进货量加月初库存量小于总库存量:x1+x2+ x3 –x4 –x5 ≤300
三月份的销售量小于总库存量: -x1–x2 –x3+ x4+ x5+ x6 ≤200
3.3 根据题意推理
maxZ=-8 x1-6 x2-9 x3+9 x4+8 x5+10 x6
x1 ≤300
-x1+ x4 ≤200
x1+ x2 –x4 ≤300
-x1–x2+ x4+ x5 ≤200
x1+x2+ x3 –x4 –x5 ≤300
-x1–x2 –x3+ x4+ x5+ x6 ≤200
xi ≥0 , i=1、2、3、4、5、6
3.4 计算机求解前的手工数据准备
将原问题的所有约束条件添加人工变量
x7、x8、x9、x10、x11、x12
maxZ=-8 x1-6 x2-9 x3+9 x4+8 x5+10 x6
x1 + x7 =300
-x1+ x4 + x8 =200
x1+ x2 –x4 + x9 =300
-x1–x2+ x4+ x5 + x10 =200
x1+x2+ x3 –x4 –x5 + x11 =300
-x1–x2 –x3+ x4+ x5+ x6+ x12 =200
xi ≥0,i=1、2、3、4、5、6、7、8、9、10、11、12
4、程序功能介绍
Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能。
我们用Javascript设计编辑了一个解题程序来解答这个问题,运用internet explorer环境运行的,我们首先把题目通过建模得出标准形式,然后根据标准形式确定矩阵的行和列,点击“继续”输入基变量,中间用“$”分隔,按照函数要求输入题的系数矩阵,函数记录下来用于解题,当输入结束后,点击“结果”,会输出最优表,然后转入Lindo。
Lindo作用就是负责把问题的最优决策求出来,省去大量难以想象的人工计算。一个Lindo模型至少需要具备三个要素:目标、决策变量和约束条件。
5、程序流程图
6、程序截图
(一)输入数据
(二)通过计算得最优表
从上图可以看出最优解为X1=300,X2=500,X3=0,X4=500,X5=0,X6=500,最优值Z=4100
(三)Lindo输入运行结果
7、结果分析思路
1、二月份的进货单价和三月份售价在什么范围内变化最优进销策略不变属于LP问题模型中目标函数参数C的变化,所以分为两种情况:
(1)若Cj是非基变量Xj的系数:
确定非基变量系数变化范围,非基变量系数变化只影响自身的检验数,因此:设Cj为非基变量Xj的系数,令它在当前最优表中的检验数δj=CBB-1Pj-Cj>=0,当Cj发生了△Cj变化后,要保证当前最优表中相应的检验数仍大于或等于0,必有:
即:δj=δj-△Cj>=0或△Cj<=δj
这就是说,当Xj的系数Cj增大△Cj以后其增量变化范围小于等于该变量在当前最优表中相应的检验数时,最优解不变,即最优进销策略不变
(2)若Cj是基变量Xj的系数:
确定基变量系数变化范围,基变量系数变化影响所有非基变量的检验数和目标函数值。Cj的变化范围在基变量Cj增量的变化范围之内则其最优解、最优值均不变,即最优进销策略不变。
2、一月份初库储量的变化和仓库容量的变化使最优基不变属于LP问题模型中约束条件右端参数b的变化:
根据公式max{-bi/βir | βir>0}<=b<=min{-bi/βir | βir<0} 确定b的变化范围。这个范围即为所求,在b的变化在该范围之内最优基不变最优解变化,最优解由公式XB=B-1b求得。
8、创新内容
模型的主体采取Lindo6.1软件处理数据和对其进行灵敏度分析,准确性高,容量大,逻辑性严格,计算速度快,具有较强的说服力和适应能力。
除题中问题外,可解决其他的灵敏度分析问题,即可求出各项进货单价、售货单价、一月初库存量、总的仓库容量等保证最优基活最优解不变时的变化范围,例如:
(1)13月份的进货单价在何范围内变化时最优进销策略不变?
结合计算机分析结果得:3月份的进货单价[8,9]范围内变化时最优进销策略不变;
(2)月份的售价在何范围内变化是最优进销策略不变?
结合计算机分析结果得:2月份的售价在[6,9]范围内变化是最优进销策略不变
9、课程设计总结
次运筹学课程设计的学习心得,本次课程设计的时间是 2 个星期,在这几天里,首先是学习JavaScript软件的使用方法,学习软件在 LP上的使用。从简单到复杂,逐步掌握软件的一些常用用法,熟悉它的工作界面,掌握一些基本的命令,尝试的用JavaScript软件解决。到最后的课程设计的设计上,我们小组在建摸这块花了很长的时间和精力,开始总是想不出很好的方案,不知道从哪里下手,最后的建摸思路是有三个人共探讨的结果。在软件的使用上,比较容易,设计书的整理上,也有所投入。运筹学这门课程与实际联系紧密,在很多的方案中,得到最优解。本次课程设计,激发了我们学习和探讨实际问题的兴趣,培养了很好的合作思考的能力,受益非浅。其次我们在完成课程设计的过程中体会到团队合作的乐趣。一向惯于“独立思考”的我们学会了积极的同团队成员交流,取长补短,共同进步。“独学而无友则孤陋而寡闻”,只有和同学多交流多学习才能不断的提高自身水平。 古人作战讲“夫运筹帷幄之中,决胜千里之外”。在现代商业社会中,更加讲求运筹学的应用。运筹学主要研究经济活动和军事活动中能用数量来表达的有关策划、管理方面的问题。当然,随着客观实际的发展,运筹学的许多内容不但研究经济和军事活动,有些已经深入到日常生活当中去了。运筹学可以根据问题的要求,通过数学上的分析、运算,得出各种各样的结果,最后提出综合性的合理安排,已达到最好的效果。故其应用不受行业、部门之限制;运筹学既对各种经营进行创造性的科学研究,又涉及到组织的实际管理问题,它具有很强的实践性,最终应能向决策者提供建设性意见,并应收到实效;它以整体最优为目标,从系统的观点出发,力图以整个系统最佳的方式来解决该系统各部门之间的利害冲突。对所研究的问题求出最优解,寻求最佳的行动方案,所以它也可看成是一门优化技术,提供的是解决各类问题的优化方法。作为一名物流管理的学生,更应该能够熟练地掌握、运用运筹学的精髓,用运筹学的思维思考问题。即:应用分析、试验、量化的方法,对实际生活中人、财、物等有限资源进行统筹安排。本着这样的心态,在本学期运筹学即将结课之时,我得出以下关于运筹学的知识。是虽上机考试没有通过,感到不安,但是我明白要将理论联系实际,才能更好的发挥。总之,这次的运筹学课程设计,让我们学到了很多,受益匪浅。
第二篇:运筹学课程设计
摘要
现代企业要快速发展,强大的内部凝聚力是重要前提之一,而有效的人员管理则是保证公司内部凝聚力的重要手段。本次设计旨在帮助众多企业管理者们如何在公司内部建立一个公正、公平、有效的人员管理制度。
众所周知,企业管理的根本是人员管理。随着企业不断发展壮大,很多人会发现,管理者80%的时间都花在考虑人员管理的问题上。如何防止陷入各种文山会海,如何处理下属之间的明争暗斗,这些经常是企业管理者们最苦恼的问题。其实,你应当知道:管理是一门科学,领导是一门艺术,用人是一种谋略。其主要职责是:协调人员之间的关系,引导建立积极向上的工作环境
关键字: 所需售货人数,最少人数,每周工作5天,休息2天
目录
1. 绪论.......................................................... ..1
1.1目的.........................................................1
1.2主要内容和要求...............................................1
1.3问题提出.....................................................1
2.问题分析........................................................ 2
3. 模型建立.................................................. ......2
3.1建立目标函数...................................... ..........2
3.2建立约束方程............................... .................2
3.3建立数学模型....................... .........................3
4. 问题求解.................................................... ....4
4.1模型的求解...................................................4
5. 结果分析.......................................... ............ .8
结论.......................................... ............ ....10
参考文献....................................................... 11
致谢........................................................... 11
1绪论
1.1目的
1. 掌握运筹学知识在管理问题中应用的基本方法与步骤;
2. 巩固和加深对运筹学理论知识及方法的理解与掌握;
3. 上机练习,了解与掌握几种常用的运筹学计算软件及其使用方法与操作方法;
4. 培养与锻炼学生从管理实践中提炼问题、分析问题、构建模型求解问题的综合应用能力;
5. 锻炼并初步掌握运筹学模型求解程序的编写方法与技术。
1.2 主要内容和要求
1. 结合专业知识,对某一实际管理问题进行分析,调查收集相关数据,并整理出符合问题特征的数据,包括目标因素、约束因素以及必须的参数与系数等;
2. 在上一步分析基础上,按照运筹学建模的基本方法与要求,通过抽象处理,建立所研究问题的运筹学模型,判断模型的类型并选择求解方法;
3. 上机练习,学习常用运筹学计算软件的使用与基本操作方法,并选择其中一种对所建运筹学模型进行求解,得出最优解,灵敏度计算等相关计算结果;
4. 结合理论课以及计算机程序设计课程所学的基本知识,编写线性规划单纯形法的计算程序,用所编写的程序和已学习的某种运筹学计算软件,求解相关课后习题,对所编写的程序进行检验;
5. 总结设计过程,整理与记录设计中的关键工作与成果,撰写设计报告。
1.3 问题提出
某商场对售货员的需求分析经过统计分析如下表所示,为了保证售货人员充分休息,售货人员每周工作5天,休息2天,并且要求休息的两天是连续的,那么应该如何安排售货员的作息,就能满足工作需求,又使配备的售货人员的数目最少呢?
2.问题分析
如何在保证售货员充分休息,售货员每周工作五天,连续休息两天的前提下,排售货员分配问题,既满足工作需求,又能使配备的收货人员的数目最少,这是一个线性规划的问题,以你我们可以建立模型,然后用lindo软件求得最优解。在建立模型时我们设为每天开始休息的人数,由于每个人每周都要休息两天而且连续两天休息,所以总的售货员人数就是所有休息的收获员人数即可得到目标函数,根据表中的约束条件,我们可以得到约束方程
3.模型建立
3.1建立目标函数
设(i=1,2,3,·····7)表示星期一至星期日开始休息的人数,Z为总共要配备的售货员数目。
则目标函数为:min
3.2建立约束方程
从约束条件可知道周日所需要的售货员数目为12,我们可以假设周日休息的售货员是从周六开始的,那么周一至周五休息的人数总和必须不小于周日工作的人数,从而得到约束方程 : ;
周一所需要的售货员数目为18,我们可以假设周一休息的售货员是从周日开始的,那么周二至周六休息的人数总和必须不小于周一工作的人数,从而得到约束方程 :;
周二所需要的售货员数目为15,我们可以假设周二休息的售货员是从一开始的,那么周三至周日休息的人数总和必须不小于周二工作的人数,从而得到约束方程 :;
周三所需要的售货员数目为12,我们可以假设周三休息的售货员是从周二开始的,那么周四至周一休息的人数总和必须不小于周三工作的人数,从而得到约束方程:;
周四所需要的售货员数目为16,我们可以假设周四休息的售货员是从周三开始的,那么周五至周二休息的人数总和必须不小于周四工作的人数,从而得到约束方程:;
周五所需要的售货员数目为19,我们可以假设周五休息的售货员是从周四开始的,那么周六至周三休息的人数总和必须不小于周五工作的人数,从而得到约束方程:;
周六所需要的售货员数目为14,我们可以假设周六休息的售货员是从周五开始的,那么周日至周四休息的人数总和必须不小于周六工作的人数,从而得到约束方程:;
3.3建立数学模型
目标函数:min
约束条件:
(i=1,,2,3······7)
4.问题求解
4.1.模型的求解
LINDO输入形式为:
min x1+x2+x3+x4+x5+x6+x7
st
x1+x2+x3+x4+x5>=12
x2+x3+x4+x5+x6>=18
x3+x4+x5+x6+x7>=15
x4+x5+x6+x7+x1>=12
x5+x6+x7+x1+x2>=16
x6+x7+x1+x2+x3>=19
x7+x1+x2+x3+x4>=14
end
LP OPTIMUM FOUND AT STEP 7
得到如下结果:
OBJECTIVE FUNCTION VALUE
1) 21.20000
VARIABLE VALUE REDUCED COST
X1 0.600000 0.000000
X2 5.600000 0.000000
X3 3.600000 0.000000
X4 1.600000 0.000000
X5 0.600000 0.000000
X6 6.600000 0.000000
X7 2.600000 0.000000
ROW SLACK OR SURPLUS DUAL PRICES
2) 0.000000 -0.200000
3) 0.000000 -0.200000
4) 0.000000 -0.200000
5) 0.000000 -0.200000
6) 0.000000 -0.200000
7) 0.000000 -0.200000
8) 0.000000 -0.200000
NO. ITERATIONS= 7
RANGES IN WHICH THE BASIS IS UNCHANGED:
OBJ COEFFICIENT RANGES
VARIABLE CURRENT ALLOWABLE ALLOWABLE
COEF INCREASE DECREASE
X1 1.000000 0.500000 0.333333
X2 1.000000 0.500000 0.333333
X3 1.000000 0.500000 0.333333
X4 1.000000 0.500000 0.333333
X5 1.000000 0.500000 0.333333
X6 1.000000 0.500000 0.333333
X7 1.000000 0.500000 0.333333
RIGHTHAND SIDE RANGES
ROW CURRENT ALLOWABLE ALLOWABLE
RHS INCREASE DECREASE
2 12.000000 4.000000 1.000000
3 18.000000 1.500000 2.666667
4 15.000000 1.500000 1.000000
5 12.000000 1.500000 1.000000
6 16.000000 1.500000 1.000000
7 19.000000 1.500000 1.000000
8 14.000000 1.500000 2.666667
由于商场售货员人数均为整数,所以求得的解 =0.6 , =5.6,=3.6, = 1.6,= 0.6 , = 6.6,=2.6 不符合实际要求,要使得所求解均为整数,可使用GIN命令将变量仅限为整数型,文件内容如下:
LP OPTIMUM FOUND AT STEP 7
OBJECTIVE VALUE = 21.2000008
SET X5 TO >= 1 AT 1, BND= -21.33 TWIN= -21.50 12
SET X1 TO >= 1 AT 2, BND= -21.33 TWIN= -21.50 14
SET X4 TO >= 2 AT 3, BND= -22.00 TWIN= -21.50 17
NEW INTEGER SOLUTION OF 22.0000000 AT BRANCH 3 PIVOT 17
BOUND ON OPTIMUM: 21.50000
DELETE X4 AT LEVEL 3
DELETE X1 AT LEVEL 2
DELETE X5 AT LEVEL 1
ENUMERATION COMPLETE. BRANCHES= 3 PIVOTS= 17
LAST INTEGER SOLUTION IS THE BEST FOUND
RE-INSTALLING BEST SOLUTION...
OBJECTIVE FUNCTION VALUE
1) 22.00000
VARIABLE VALUE REDUCED COST
X1 1.000000 1.000000
X2 4.000000 1.000000
X3 4.000000 1.000000
X4 2.000000 1.000000
X5 1.000000 1.000000
X6 7.000000 1.000000
X7 3.000000 1.000000
ROW SLACK OR SURPLUS DUAL PRICES
2) 0.000000 0.000000
3) 0.000000 0.000000
4) 2.000000 0.000000
5) 2.000000 0.000000
6) 0.000000 0.000000
7) 0.000000 0.000000
8) 0.000000 0.000000
NO. ITERATIONS= 17
BRANCHES= 3 DETERM.= 1.000E 0
5.结果分析
“LP OPTIMUM FOUND AT STEP 7”表示LINDO在(用单纯形法)7次迭代后得到最优解;
“OBJECTIVE FUNCTION VALUE 1) 22.00000” 表示最优目标值为22.00000;
“VALUE”给出最优解中各变量的值:
=1 =4 =4 =2 = 1 =7 =3
“REDUCED COST”表示其中的值随最优解中各变量变化而增加REDUCED COST中相应的变量的值
VARIABLE VALUE REDUCED COST
X1 1.000000 1.000000
X2 4.000000 1.000000
X3 4.000000 1.000000
X4 2.000000 1.000000
X5 1.000000 1.000000
X6 7.000000 1.000000
X7 3.000000 1.000000
即随着最优解值的变化一个单位最优值22.00000 就增加一个相应的REDUCED COST中的值
ROW SLACK OR SURPLUS DUAL PRICES
2) 0.000000 0.000000
3) 0.000000 0.000000
4) 2.000000 0.000000
5) 2.000000 0.000000
6) 0.000000 0.000000
7) 0.000000 0.000000
8) 0.000000 0.000000
经以上分析可知:当=1 =4 =4 =2 =1 =7 =3
时,也就是周一安排1人休息,周二安排4人休息,周三安排4人休息,周四安排2个人休息,周五安排1个人休息,周六安排3个人休息,周日安排3人休息时,我们在可以保证工作需求的情况下配备最少的售货员22名。
总 结
通过本次的课程设计,我了解了运筹学方法在实际生活中的重要意义,也
明确了如何用运筹方法的来处理问题。通过这次的课程设计,我们在面对一些实
际的问题一定要先冷静分析之后形成数学模型,用数学语言科学表达并且求出我们的需要解决的问题。此次课程设计使我对运筹学有了更进一步的认识,在以后的学习生活中我们还要多加学习。
参考文献:
[1] 杨茂盛.运筹学(第三版).陕西科技技术出版社,2006
[2] 运筹学编写组.运筹学(第三版).清华大学出版社,2005
致谢:
做完此次课程设计,首先要感谢我的制作过程指导老师孔老师。在制作过程中,因为现阶段掌握的知识太过有限,因此在制作过程中不免会遇到各种各样的困难和麻烦,都是通过孔老师的指导帮我完成了此次制作。孔老师在指导过程中体现出来的奉献精神和极大的耐心,令我非常感动。他的博学和知识的丰富更是令人佩服。因此再次感谢孔老师给予的指导。同时也非常感谢在制作过程中我们一起努力给过我帮助的同学们,谢谢你们!