运筹学课设某企业和用户签订了设备交货合同
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告
课程设计名称运筹课程设计专业电子商务
班级130511班学生姓名雷涵博第四组指导教师王亚君
2016年6月24日
课程设计任务书
运筹学课程设计报告
组别:第四组
题号:28题
设计人员:黄灵洁黄晓娜雷涵博
设计时间:2016年6月13日至2016年6月24日
1.设计进度计划
第一周(2016年6月13日----2016年6月17日):建模阶段。
此阶段各小组根据给出的题目完成模型的建立。
主要环节包括:
6月13日上午:发指导书;按组布置设计题目;说明进度安排。
6月13日下午至6月15日:各小组审题,查阅资料,进行建模前的必要准备(包括求解程序的编写与查找)。
6月16日至6月17日:各个小组进行建模,并根据题目及设计要求拟定设计提纲,指导教师审阅;同时阅读,理解求解程序,为上机求解做好准备。
第二周(2016年6月20日---6月24日):上机求解,结果分析及答辩。
主要环节包括
6月20日至6月21日:上机调试程序
6月22日:完成计算机求解与结果分析。
6月23日:撰写设计报告。
6月24日:设计答辩及成绩评定。
2.设计题目
二十八、某企业和用户签订了设备交货合同,已知该企业各季度的生产能力、每台设备的生产成本和每季度末的交货量(见下表),若生产出的设备当季度不交货,每台设备每季度需支付保管维护费万元,试问在遵守合同的条件下,企业应如何安排生产计划,才能使年消耗费用最低并按要求分别完成下列分析:
(1)2季度每台设备的生产成本在何范围内变化时最有生产计划不变
(2)每台设备每季度需支付保管维护费在何范围内变化时最优生产计划不变(3)1季度生产能力在何范围变化内变化时最优基不变
(4)4季度交货量在何范围内变化时最优基不变
3.建模
题目分析,变量设定
这个优化问题的目标是使年消耗费用最低,因此此问题需要做的是有关生产决策的灵敏度分析问题,其受到三个约束条件的限制:第1、2、3、4季度工厂生产能力;各个季度工厂交货量与要求的交货量相等;生产的产品个数应该为非负整数。
所以变量设定如下:
Z:年消耗费用
决策变量X ij:表示第i季度生产第j季度交货的设备数量
建模分析
目标函数分析:第1季度生产的消耗费用+第2季度的消耗费用+第3季度的消耗费用+第3季度的消耗费用+第4季度的消耗费用
由生产能力所限列出下列式子:
第一季度生产能力所限:X11+X12+X13+X14≤25
第二季度生产能力所限:X22+X23+X24≤35
第三季度生产能力所限:X33+X34≤30
第四季度生产能力所限:X44≤20
得到前四个约束变量
由交货量所限列出下列式子:
第一季度交货量:X11=15
第二季度交货量:X12+X22=20
第三季度交货量:X13+X23+X33=25
第四季度交货量:X14+X24+X34+X44=20
得到后四个约束变量
第i季度生产第j季度交货的每台设备所消耗的费用C ij应等于生产成本加上保管维护费
用之和其值如下表
数学模型
用A i表示该企业第i季度的生产能力,B j表示第j季度的交货量,则可将这一问题的数学模型写成:
Min Z = + + + + + + + + +
X11+X12+X13+X14≤25
X22+X23+X24≤35
X33+X34≤30
X44≤20
X11=15
X12+X22=20
X13+X23+X33=25
X14+X24+X34+X44=20
X11 ,X12 ,X13 ,X14 ,X22 ,X23 ,X24 ,X33 ,X34 ,X44≥0
4.程序
Java是一种简单的,跨平台的,面向对象的,分布式的,解释的,健壮的,安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。
我们用java语言设计编辑了一个解题程序来解答这个问题,运用eclipse环境运行的,我们首先程序要求输入目标函数类型以确定使用哪种程序解决当前问题,然后函数要求输入约束条件的个数和变量个数,以用来确定所创建的数组,然后函数要求小于等于、大于等于、和等于的条件个数,同样用来创建数组和确定解题程序,然后函数要求输入题的系数矩阵,函数记录下来用于解题,当输入结束时函数会输出刚刚所录入的系数矩阵,以便让输入者确定所输入的矩阵是否正确,避免错误的产生,此时进行到程序的最后一步,函数要求输入目标函数系数,输入者正确输入后函数就会运算然后输出结果
LINGO的注意事项:
1. Lingo中不能省略乘号*以及结束符分号;
2.目标函数在Lingo写成max=2*x+3*y;
3. Lingo中所用的符号均必须是英文状态下的,使用中文状态下的这些符号,运行会报错的。
4. Lingo默认变量非负。
5. 即有约束条件X≥0,Y ij≥0之类的,在Lingo中都可以省略不写。
6. 有需要变量取负值的话,可以用@free();函数,令变量取全体实数。
7. Lingo中没有π这个常数。
在要求不是那么精确的话可以用PI=(取几位小数自行估计)。
通过三角函数来得到精确的π值,如PI=@acos(-1);
中没有严格大或严格小的概念(除集下标约束或条件判断中的#gt#,#lt#)。
在Lingo中使用>(<)号跟使用>=(<=)的效果是相同的,都是表示“大于等于”(小于等于)。
9 在合理的情况下,可以考虑附加一个极小值来达到严格小的目的,例如X>5,在Lingo 中可以写成X>=5+;
10. 变量为某几个不连续的数值之一,例如x为0或3或7,可表示为x*(x-3)*(x-7)=0;
手工数据准备
Java程序的录入界面:
Lingo录入界面:
5.结果分析
结果分析思路
2季度每台设备的生产成本在何范围内变化时最优生产计划不变
此问题为目标函数系数C i的变化范围的处理:
如果变化的系数为非基变量系数,确定非基变量系数变化范围,非基变量系数变化只影响自身的检验数,因此,设Ci为非基变量Xi的系数,令它在当前最优表中的检验数δi=C B B-1P i-C i≥0,当C i发生了△C i变化后,要保证当前最优表中相应的检验数仍大于或等于0,即当△C i<δi均满足时,最优生产计划不变。
如果变化的系数为基变量的系数,则要确定基变量系数的变化范围,基变量系数的变化影响所有非基变量的检验数和目标函数值。
C i的变化范围在基变量C i增量的变化范围之内,则其最优解、最优值均不变,即要求基变量系数满足一定的条件,即当max{-δi/b ri|b ri>0}≤△C i≤min{-δi/ b ri|b ri<0},其中δi取非基变量检验数,此时,最优生产计划不变。
每台设备每季度需支付保管维护费在何范围内变化时最优生产计划不变
此问题为目标函数系数C i的变化范围的处理:
如果变化的系数为非基变量系数,确定非基变量系数变化范围,非基变量系数变化只影响自身的检验数,因此,设C i为非基变量X i的系数,令它在当前最优表中的检验数δi=C B B-1P i-C i≥0,当C i发生了△C i变化后,要保证当前最优表中相应的检验数仍大于或等于0,即当△C i<δi均满足时,最优生产计划不变。
如果变化的系数为基变量的系数,则要确定基变量系数的变化范围,基变量系数的变化影响所有非基变量的检验数和目标函数值。
C i的变化范围在基变量C i增量的变化范围之内,则其最优解、最优值均不变,即要求基变量系数满足一定的条件,即当max{-δi/b ri|b ri>0}≤△C i≤min{-δi/ b ri|b ri<0},其中δi取非基变量检验数,此时,最优生产计划不变。
1季度生产能力在何范围变化内变化时最优基不变
此问题为约束条件常数项系数b变化范围的处理:
根据公式max{-b i/βir|βir>0}≤△b≤min{-b i/βir|βir<0},确定b的变化范围,如果b的变化在该范围之内最优基不变最优解变化,最优解由公式X B=B-1b求得;如果b的变化超出该范围最优基最优解均发生变化,重新计算C B B-1b、B-1b代入最优表中重新迭代。
4季度交货量在何范围内变化时最优基不变
此问题为约束条件常数项系数b变化范围的处理:
根据公式max{-b i/βir|βir>0}≤△b≤min{-b i/βir|βir<0},确定b的变化范围,如果b的变化在该范围之内最优基不变最优解变化,最优解由公式X B=B-1b求得;如果b 的变化超出该范围最优基最优解均发生变化,重新计算C B B-1b、B-1b代入最优表中重新迭代。
求解结果
截图
结果
Global optimal solution found.
Objective value:
Infeasibilities:
Total solver iterations: 4
Elapsed runtime seconds:
Model Class: LP
Total variables: 9
Nonlinear variables: 0
Integer variables: 0
Total constraints: 8
Nonlinear constraints: 0
Total nonzeros: 27
Nonlinear nonzeros: 0
Variable Value Reduced Cost
X11
X12
X13
X14
X22
X23
X24
X33
X34
X44
Row Slack or Surplus Dual Price
1
2
3
4
5
6
7
8
9
灵敏度分析结果
Ranges in which the basis is unchanged:
Objective Coefficient Ranges:
Current Allowable Allowable
Variable Coefficient Increase Decrease X12 INFINITY
X13 INFINITY
X14 INFINITY
X23
X24 INFINITY
X33
X34 INFINITY
X44 INFINITY
Righthand Side Ranges:
Current Allowable Allowable
Row RHS Increase Decrease
2 INFINITY
3
4 INFINITY
5 INFINITY
7
8
9
结果分析
2季度每台设备的生产成本在何范围内变化时最有生产计划不变
即X22、X23、X24的系数变化时最优生产计划不变时的系数变化范围:Variable Coefficient Increase Decrease
X22 INFINITY
X23
X24 INFINITY
由lingo灵敏度分析表得:2季度每台设备的生产成本在[,]范围内变化时最优生产计划不变。
每台设备每季度需支付保管维护费在何范围内变化时最优生产计划不变
根据lingo灵敏度分析表
Variable Coefficient Increase Decrease
X12 INFINITY
X13 INFINITY
X14 INFINITY
X22 INFINITY
X23
X33
X34 INFINITY
X44 INFINITY
C12变化范围[,+∞]
C13变化范围[,+∞]
C14变化范围[,+∞]
C22变化范围[-∞,]
C23变化范围[,+∞]
C24变化范围[,+∞]
C33变化范围[,]
C34变化范围[-∞,]
C44变化范围[,+∞]
1季度生产能力在何范围变化内变化时最优基不变
即约束条件右端常数项的变化对最优解的变化,第一个约束条件右端常数项的变化对最有基的影响。
Row RHS Increase Decrease
2 INFINITY
由分析结果得:[0,+∞]。
4季度交货量在何范围内变化时最优基不变
即约束条件右端常数项的变化对最优解的变化,第八个约束条件右端常数项的变化对最有基的影响。
Row RHS Increase Decrease
9
由分析结果得:4季度交货量在[0,20]的范围内变化时最优基不变。
6.创新内容
2季度交货量为30时的最优生产计划
由灵敏度表分析可得:
Row RHS Increase Decrease
7
第五个约束条件右端常数项的变化范围为10到20,超出范围,输入程序重新计算得:
最优方案如上图所示。
第3季度生产第4季度交货的每台设备所消耗的费用C34在什么范围内变化时最优生产计划不变
目标函数X34的系数C34的变化范围,由lingo灵敏度分析可得:
Variable Coefficient Increase Decrease
X34 INFINITY
C34的变化范围为:[-∞,]。
2季度生产能力在何范围变化内变化时最优基不变
Row RHS Increase Decrease
3
根据第二约束条件可知2季度生产能力在[35,45]之内最优基不变。
7.课程设计总结
学习理论的目的就是为了解决实际问题。
通过两周的课程设计,让我对运筹学的
认识更加深刻,也知道了运筹学的在实践中的重要作用。
在之前的运筹学课程学习中,
一直都很认真的在学习每个算法,掌握了解体的方法。
运筹学的学习的最终目的是运
用量化和模型化方法,针对有有关管理问题最优化配置的现实需求,来寻找系统的优
化的解决方案,系统求得一个合理应用人力,节省财力的最佳方案,为决策者提供科
学的决策依据,而不是平时学习中的简单的数据计算和公式运用。
而在实际问题的解
决中,建立一个合理实际的模型尤为困难,也是解决问题的关键。
只有建立了正确的
模型,解决问题才能水到渠成。
在开始看到这道题目时,大家的首要任务就是讨论如
何建立正确的数学模型,找到正确的方法来解决问题。
建立了正确的数学模型之后,才能快速的编程。
作为科学的数学方法,它与计算机技术结合解决实际问题。
在这次实践中我意识到,我们应该尽可能多的将先进的管理中的科学方法与先进的计算机技术结合起来,切实提高我们适应当代社会信息、运用运筹学解决实际问题的能力,我想这才是我们这次课程设计所要达到的最终目的。
在现实生活中,我们如果能运用科学的方法和最简单的办法来处理遇到的问题,那就会大大提高效率。
运筹学就是这样一个为我们提供简便的算法来分析一些生活中的问题,使我们获得最大的效益。
但是由于一些问题通过我们人工来算是非常麻烦的,所以在这样高科技的生活环境里,我们要运用科技来帮我们解决问题。
运筹学的课程设计就是让我们将所学的编程知识与运筹学的问题结合起来,通过计算机快速的找到最优方案。
这次课程设计是分小组进行的,不仅对所学的知识进行了巩固,而且对同学也增加了了解,这样的小组协作的方式让我对团队协作有了新的认识,不论一个人怎样聪明都抵不过一个配合默契的团队,团队合作可以集思广益,将复杂的问题分成小部分。
正所谓“没有完美的个人,只有完美的团队。
”每个人完成自己的一小部分,这一小部分对个人来说要比完成整个问题的一整套求解过程要容易得多,而且小组成员互相之间可以取长补短,这样整个小组的力量就强大了许多,问题也就相对变得渺小了。
大家在一起讨论商量,这样不管什么问题都会很快解决。
在两周的实验过程中,不仅对运筹学的有关知识有了进一步的掌握,同时对在自己的计算机操作水准也有了很大的提高。
在实验的过程中,对应用的软件掌握也受益颇深。
总而言之,这次运筹学的课程设计,是我们每个人都受益匪浅。
不管是在运用运筹的思想来解决现实中问题的能力,还是用计算机来快速计算,都是我们解决问题的能力大大提升。
这样学习和实践相结合的方法的确可以大大加深我们对知识的掌握和理解,以及运用。
课程设计成绩考核表
学院经济管理专业电子商务班级130511班学生姓名雷涵博课程名称:运筹学课程设计
课程设计题目:
第二十八题
考核项目满分值得分
1.独立完成设计任务20
2.设计方案、说明书、图纸、程序、计算等完成质量30
3.创新与发挥10
4.答辩(口试)40
合计得分
成绩
指导教师签字
几点说明
1.此表由指导教师进行课程设计成绩评定时填写。
2.课程设计成绩根据学生各项考核最后得分,按“优”、“良”、“中”、
“及格”、“不及格”五级评定。
其中,90分以上为“优”;80~89分为“良”;70~79分为“中”;60~69分为“及格”;60分以下为“不及格”。
3.课程设计结束后,此表由指导教师放入课程设计资料袋,送承担课程的
教研室存档。