运筹课程设计1.docx
《运筹课程设计1.docx》由会员分享,可在线阅读,更多相关《运筹课程设计1.docx(16页珍藏版)》请在冰豆网上搜索。
运筹课程设计1
运筹课程设计1
长春工业大学
课程设计报告
课程设计名称运筹课程设计
专业信息管理与信息系统
班级080505班
学生姓名王盛之
指导教师 王亚君
2011年7月8日
课程设计任务书
课程设计题目:
第一题
起止日期:
2011、6、27~2011、7、8
设计地点:
教室、电子商务中心
设计任务及日程安排:
1、设计任务
1.1通过课程设计可以增强学生解决实际运筹学问题的能力
1.2通过课程设计可以使学生巩固、拓展和深化所学的基础理论、专业理论和知识。
1.3通过课程设计可以使学生初步掌握用运筹学方法解决实际问题的过程和技巧,树立理论联系实际的工作作风。
1.4通过课程设计可以使学生初步建立正确的设计思想和方法,进一步提高运算、计算机应用技能和综合分析、解决问题的能力。
2、设计进度安排
本课程设计时间分为两周:
第一周(2011年6月27日----2011年7月1日):
建模阶段。
此阶段各小组根据给出的题目完成模型的建立。
主要环节包括:
1.16月27日上午:
发指导书;按组布置设计题目;说明进度安排。
1.26月27日下午至29日:
各小组审题,查阅资料,进行建模前的必要准备(包括求解程序的编写与查找)。
1.36月30日至7月1日:
各个小组进行建模,并根据题目及设计要求拟定设计提纲,指导教师审阅;同时阅读,理解求解程序,为上机求解做好准备。
第二周(2011年7月4日---7月8日):
上机求解,结果分析及答辩。
主要环节包括
1.17月4日至7月5日:
上机调试程序
1.27月6日:
完成计算机求解与结果分析。
1.37月7日:
撰写设计报告。
1.47月8日:
设计答辩及成绩评定。
(答辩时间:
7月8日上午8:
30~12:
00,下午2:
00~5:
00)
组别:
第八组
设计人员:
王盛之、王有琳、王泽旭
设计时间:
2007年6月27日---2007年7月8日
1.设计进度:
第一周(2011年6月27日----2011年7月1日):
建模阶段。
此阶段各小组根据给出的题目完成模型的建立。
主要环节包括:
1.16月27日上午:
发指导书;按组布置设计题目;说明进度安排。
1.26月27日下午至29日:
各小组审题,查阅资料,进行建模前的必要准备(包括求解程序的编写与查找)。
1.36月30日至7月1日:
各个小组进行建模,并根据题目及设计要求拟定设计提纲,指导教师审阅;同时阅读,理解求解程序,为上机求解做好准备。
第二周(2011年7月4日---7月8日):
上机求解,结果分析及答辩。
主要环节包括:
1.17月4日至7月5日:
上机调试程序
1.27月6日:
完成计算机求解与结果分析。
1.37月7日:
撰写设计报告。
1.47月8日:
设计答辩及成绩评定。
2.设计题目(第一题)
某工厂生产三种原料,用B1、B2、B3来表示.该工厂用这三种原料采用不同的配料方法还可以生产出三种不同的成品,其数量分别为E1、E2、E3.这三种不同的配料方法用A1.A2.A3表示.假定在每一种配料方法A1中,要求B1原料所占比例不低于1/3,要求B2原料所占比例不高于1/4,对B3原料没有要求;在第二种配料方法A2中,要求B1原料所占比例不低于1/4,要求B2原料所占比例不高于1/3,对B3原料仍没有要求;不符合前二种配料方法要求的即为第三种配料方法。
A1配料方法所产大品的价格为8(千克/吨),A2配料方法所产大品的价格为5(千克/吨),A3配料方法所产大品的价格为4(千克/吨)。
原料B1的价格为7(千克/吨),原料B2的价格为3(千克/吨),原料B3的价格为4(千克/吨)。
该工厂每月可以生产这三种原料的数量分别为B1=200吨,B2=200吨,B3=120吨。
上述情况如表1所示。
用所生产的B1,B2,B3三种原料再造成品,所获得的总产值一定比只生产B1、B2、B3三种原料所获得的总产值高,那么应该采用哪种配料方法,在所采用的各配料方法中,又应当使用多少原料,才可以使获得的总产值最大?
并按要求分别完成下列分析:
(1)A2成品的价格在何范围内变化时最优生产方案不变?
(2)B2原料的价格在何范围内变化时最优生产方案不变?
(3)B2原料的数量在何范围内变化时最优基不变?
(4)当成品数量E2为100时的最优生产方案。
表1
配料方法
原料
B1B2B3
成品
数量
成品价格
(千元/吨)
A1
≥1/3≤1/4不定
E1
8
A2
≥1/4≤1/3不定
E2
5
A3
不满足以上条件的配料
E3
4
原料数量(吨)
200200120
原料价格
(千元/吨)
734
3.建模过程:
设Xij表示采用Ai种配料方针时,使用Bj种原料的数量;Ei表示采用第Ai种配料方法时得到的数量;λi表示尚剩余Bj种原料的数量。
即X11+X12+X13=E1三种原料用第一种配料方法制成第一种成品的数量,
X21+X22+X23=E2三种原料用第二种配料方法制成第二种成品的数量,
X31+X32+X33=E3三种原料用第三种配料方法制成第三种成品的数量。
而此时的总产值为
Z=8E1+5E2+4E3+7λ1+3λ2+4λ3=X11+5X12+4X13-2X21+2X22+X23-3X31+X32+2480
此问题的LP模型如下
MaxZ=X11+5X12+4X13-2X21+2X22+X23-3X31+X32+2480
X11+X21+X31<=200B1原料的总库存量为200
X12+X22+X32<=200B2原料的总库存量为200
X13+X23+X33<=120B3原料的总库存量为120
-2/3X11+1/3X12+1/3X13<=0原料X11的数量要多于A1方法中总原料的1/3
-1/4X11+3/4X12-1/4X13<=0原料X12的数量要少于A1方法中总原料的1/4
-3/4X21+1/4X22+1/4X23<=0原料X21的数量要多于A2方法中总原料的1/4
-1/3X21+2/3X22-1/3X23<=0原料X22的数量要少于A2方法中总原料的1/3
Xij>=0(i=1,2,3,.j=1,2,3,)
为了使我们所编的程序在上机时能够计算出结果,根据程序要求,加上松弛变量,我们需输入如下的数据信息:
MaxZ=X11+5X12+4X13-2X21+2X22+X23-3X31+X32+2480
X11+X21+X31+X1=200
X12+X22+X32+X2=200
X13+X23+X33+X3=120
-2/3X11+1/3X12+1/3X13+X4=0
-1/4X11+3/4X12-1/4X13+X5=0
-3/4X21+1/4X22+1/4X23+X6=0
-1/3X21+2/3X22-1/3X23+X7=0
Xij>=0(i=1,2,3,.j=1,2,3,)Xi>=0(i=1,2,3,4,5,6,7)
4.程序功能介绍
4.1.程序及语言介绍
Java是一种简单的,跨平台的,面向对象的,分布式的,解释的,健壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。
能运行于不同的平台,对程序提供了安全管理器,防止程序的非法访问。
类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。
Java提供了众多的一般对象的类,通过继承即可使用父类的方法。
LINGO是一种专门用于求解数学规划问题的软件包。
LINGO可以用于求解非线性规划,也可以用于一些线性和非线性方程组的求解等,功能十分强大,是求解优化模型的最佳选择。
其特色在于内置建模语言,提供十几个内部函数,可以允许决策变量是整数,方便灵活,而且执行速度非常快。
Lingo是使建立和求解线性、非线性和整数最佳化模型更快更简单更有效率的综合工具,提供强大的语言和快速的求解引擎来阐述和求解最佳化模型
4.2.程序流程图
是否
否
是
是
否否
否
是
4.3.数据录入
输入方程组的系数矩阵A(7行16列):
1001001001000000
0100100100100000
0010010010010000
-2110000000001000
-13-10000000000100
000-3110000000010
000-12-10000000001
输入初始基变量的数字代码num矩阵:
10111213141516
输入方程组右边的值矩阵B:
2002001200000
输入目标函数各个变量的系数所构成的系数阵C:
154-221-3100000000
4.4.程序运行
用JAVA语言编程工具运行所编程序,在程序的各种指示下求得最优解、最优值,用LINGO对程序进行灵敏度分析分析。
5.结果分析
5.1.计算机运行结果
通过运行JAVA语言程序,经过5次迭代,在控制台得到了最优解。
显示结果如下:
X1=200.000X2=106.666X3=120.000X4=0.000X5=0.000X6=0.000X7=0.000
X8=93.333X9=0.000Z=3786.667
MaxZ=3786.667原问题有唯一最优解。
其中Xij>=0(i=1,2,3,.j=1,2,3,)为得到最优解的变量值。
5.2.运用LINGO计算结果
1.最优值的结果如下:
Globaloptimalsolutionfound.
Totalsolveriterations:
5(表示lingo在5次迭代或旋转后得到最优解。
)
Objectivevalue:
(给出目标函数的最优值)3786.667
Variable(变量)Value(变量值)ReducedCost(检验数所在行变量系数)
X11200.00000.000000
X12106.66670.000000
X13120.00000.000000
X210.0000003.833333
X220.0000000.000000
X230.0000003.833333
X310.0000005.333333
X3293.333330.000000
X330.0000005.333333
2.当目标函数的变量系数什么变化范围内时,最优基不变。
CurrentCoefficient:
初始目标函数的系数。
AllowableIncrease:
允许变量系数增加的范围。
AllowableDecrease:
允许变量系数减少的范围。
当目标函数的系数C在[初始目标函数的系数-允许变量系数减少的范围,初始目函数的系数+允许变量系数增加的范围]内变化时,最优基不变,最优解也不变,由于目标函数的系数发生改变了,则最优值有可能改变。
所以A2成品的价格在[4,8.833333]范围内变化时最优生产方案不变;B2原料的价格在[2,4]范围内变化时最优生产方案不变。
Rangesinwhichthebasisisunchanged:
ObjectiveCoefficientRanges:
CurrentAllowableAllowable
VariableCoefficientIncreaseDecrease
X111.000000INFINITY2.333333
X125.000000INFINITY4.000000
X134.000000INFINITY3.833333
X21-2.0000003.833333INFINITY
X222.0000007.6666671.000000
X231.0000003.833333INFINITY
X31-3.0000005.333333INFINITY
X321.0000001.0000001.000000
X330.0000005.333333INFINITY
3.约束条件右端项在什么范围内变化时,最优基不变:
CurrentRHS:
初始约束条件右端项的值,
AllowableIncrease:
允许b值增加的范围,
AllowableDecrease:
允许b值减少的范围。
当约束条件右端项的值在[初始约束条件右端项的值-允许b值减少的范围,初始约束条件右端项的值+允许b值增加的范围]内变化时最优基不变,最优解不变,最优值也可能不变。
所以B2原料的数量在[106.6667,+∞]范围内变化时最优基不变。
RighthandSideRanges:
CurrentAllowableAllowable
RowRHSIncreaseDecrease
2200.0000280.0000104.0000
3200.0000INFINITY93.33333
4120.0000130.0000120.0000
50.000000INFINITY57.77778
60.00000070.0000080.00000
70.000000INFINITY0.000000
80.0000000.0000000.000000
4.当成品数量E2为100时的最优方案:
Objectivevalue:
(给出目标函数的最优值)3531.111
Variable(变量)Value(变量值)ReducedCost(检验数所在行变量系数)
X11175.00000.000000
X1284.444440.000000
X1378.333330.000000
X2125.000000.000000
X2233.333330.000000
X2341.666670.000000
X310.0000005.333333
X3282.222220.000000
X330.0000005.333333
6.创新内容
问题1.A3成品的价格为8千元/吨时最优方案变不变化?
根据上述LINGO软件的灵敏度分析可得,A3成品的价格在[3,5]范围内变化时最优生产方案不变,此时A3=8不在此范围内,故最优生产方案发生变化。
问题2.B3原料的价格在何范围内变化时最优基不变化?
根据上述LINGO软件的灵敏度分析可得,B3原料的价格在[0.16667,7.83333]范围内变化时最优基不变。
问题3.B3原料的价格为6千元/吨时最优方案变不变化?
根据问题2分析可得,B3原料的价格在[0.16667,7.83333]范围内变化时最优基不变,此时B3=6在此范围内,所以最优方案不变化。
7.课程设计总结
运筹学课程设计的尘嚣渐渐远去,怀着对这次课程设计的些许不舍,怀着对当初课程设计开始时候的豪情万丈的决心的留恋,怀着通过这次课程设计积累的信心与斗志,写下我的总结,为自己的足迹留下哪怕是微不足道但是对自己弥足珍贵的痕迹并期望与大家共勉。
运筹学是管理类专业的一门重要专业基础课。
它是本世纪40年代初发展起来的一门新兴学科,其主要目的是在决策时为管理人员提供科学依据,是实现有效管理、正确决策和现代化管理的重要方法之一。
学会它,对于我们有着很重要的意义。
刚开始接触运筹学的时候,感觉挺难的,但是经过一段时间的学习,在同学和老师的帮助下,我逐渐学会了如何解决运筹学问题,这让我感到非常有成就感。
经过了此次运筹学课程设计,我收获很多!
本次的课程设计有三个人来共同完成,各有各的分工。
在此次课程设计开始的时候,拿到题目进行建模,由于基础知识的不扎实,导致看到题就有点迷茫,对于建模的思路有点模糊,但是在组员的帮助下,我们一起查阅书籍和各种资料,终于完成了题目的建模,并且对于运筹学有了更深刻的了解。
灵敏度分析一直是我比较短板的地方,通过这次课设,也对于这方面有了良好的查漏补缺,学到了很多有用的东西。
而程序设计的时候,我们从网上搜集了一些程序,运用我们的知识,三人合力,不断的调试,最终采取JAVA语言将程序设计出来。
从中我明白了遇到困难永不放弃的重要性,我知道了团队合作的重要性,我领悟了只有坚持不懈才会取得胜利。
通过此次的课程设计,我发现自己的很多不足之处,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。
回顾起此次课程设计,从拿到题目到完成整个设计,从理论到实践,我学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
本次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能提高自己的实际动手能力和独立思考的能力,这对我们是很有意义的。
本次课程设计顺利地完成了,我们的设计虽然不能达到非常完美的地步,但却是我们组员们共同努力的结果。
在设计中遇到了的问题也在同学们的帮助下解决了。
同时,我也学得到很多实用的知识,在此向给过我帮助的所有同学和指导老师表示忠心的感谢!
课程设计虽然结束了,但我们仍然会很努力的学习,不断地完善自己,使自己能够更好的完成大学的学习生活!