运筹学课程设计- 题目是《某投资公司有100万元资金用于投资,投资方案有六种》

发布时间:2020-05-26 14:52:07   来源:文档文库   
字号:

工 业 大 学

课程设计名称 运筹课程设计

专 业

生 姓

导 教  

201178

课程设计题目:

起止日期:2011、6、27201178

设计地点:教室、电子商务中心

设计任务及日程安排:

1、设计任务

1.1通过课程设计可以增强学生解决实际运筹学问题的能力

1.2通过课程设计可以使学生巩固、拓展和深化所学的基础理论、专业理论和知识。

1.3通过课程设计可以使学生初步掌握用运筹学方法解决实际问题的过程和技巧,树立理论联系实际的工作作风。

1.4通过课程设计可以使学生初步建立正确的设计思想和方法,进一步提高运算、计算机应用技能和综合分析、解决问题的能力。

2、设计进度安排

本课程设计时间分为两周:

第一周(2011627----201171):建模阶段。此阶段各小组根据给出的题目完成模型的建立。主要环节包括 :

1.1 6月27上午:发指导书;按组布置设计题目;说明进度安排。

1.2 6月27下午至29日:各小组审题,查阅资料,进行建模前的必要准备(包括求解程序的编写与查找)。

1.3 6307月1:各个小组进行建模,并根据题目及设计要求拟定设计提纲,指导教师审阅;同时阅读,理解求解程序,为上机求解做好准备。

第二周(201174---78):上机求解,结果分析及答辩。主要环节包括

1.1 7475:上机调试程序

1.2 76:完成计算机求解与结果分析。

1.3 77:撰写设计报告。

1.4 78:设计答辩及成绩评定。

(答辩时间:78日上午8:30~12:00,下午2:00~5:00

:第九组

设计人员

设计时间:2011年6月27日---2011年7月8日

1、 设计进度

本课程设计时间分为两周:

第一周(2011年6月27日----2011年6月29日):建模阶段。此阶段各小组根据给出的题目完成模型的建立。

主要环节包括:

(1) 6月27日上午:发指导书;按组布置设计题目;说明进度安排。

(2) 6月27日下午至29日:各小组审题,查阅资料,进行建模前的必要准备(包括求解程序的编写与查找)。

(3) 6月30日至7月1日:各个小组进行建模,并根据题目及设计要求拟定设计提纲,指导教师审阅;同时阅读,理解求解程序,为上机求解做好准备。

第二周(2011年7月4日---7月6日):上机求解,结果分析及答辩。

主要环节包括:

(1)7月4日至5日:上机调试程序

(2)7月6日:完成计算机求解与结果分析。

(3)7月7日:撰写设计报告。

(4)7月8日:设计答辩及成绩评定。

2设计题目

某投资公司有100万元资金用于投资,投资方案有六种,现要做一个5年期的投资计划,具体可选择的投资方案如下:

方案A5年内每年年初均可投资,且金额不限,投资期限一年,年投资回报率7%

方案B5年内每年年初均可投资,且金额不限,投资期限两年,年投资回报率10%(不计复利);

方案C5年内每年年初均可投资,且金额不限,投资期限三年,年投资回报率12%(不计复利);

方案D:只在第一年初有一次投资机会,最大投资金额为50万元,投资期限四年,年投资回报率20%(不计复利);

方案E:在第二年和第四年初有一次投资机会,最大投资额为30万元,投资期限一年,年投资回报率30%

方案F:在第四年年初有一次投资机会,金额不限,投资期限两年,年投资回报率25%

假设当年的投资金额及其收益均可用于下一年投资,问公司应如何投资才能使第五年末收回的资金最多?并按要求分别完成下列分析:

(1) 方案C的年投资回报率在何范围内变化时最优投资方案不变?

(2) 方案E的最大资金金额在何范围内变化时最优投资方案不变?

(3) 最初投资额为200万元时的最优投资方案。

3模过程

3.1 定义变量:

第一年:方案A投资额为x11,方案B投资额为x12,方案C投资额为x13,方案D投资额为x14

第二年:方案A投资额为x21,方案B投资额为x22,方案C投资额为x23,方案E投资额为x25

第三年:方案A投资额为x31,方案B投资额为x32,方案C投资额为x33

第四年:方案A投资额为x41,方案B投资额为x42,方案E投资额为x45

第五年:方案A投资额为x51,方案F投资额为x46

3.2 约束条件

第一年,方案ABCD均可以投资,投资总额为最大100万元,方案A的投资期限为一年,方案B为二年,方案C为三年,方案D为四年,且只能在第一年年初投资。所以有x11+x12+x13+x14=100

方案D 的最大投资额不能超过50万元所以有x1450

第二年,方案ABCE均可以投资,方案E的投资期限为一年,投资总额为方案A在第一年的收益,所以有x21+x22+x23+x25-1.07x11=0

方案E的最大投资额不的超过30万元,所以有x2530

第三年,方案ABC均可以投资,且投资总额为方案A在第二年的收益,方案B在前两年的收益和方案E在第二年的收益的总和,所以有

x31+x32+x33-1.07x21-1.2x12-1.3x25=0

第四年,方案ABEF均可以投资,方案F的投资期限为两年,且投资总额为方案A在第三年的收益,方案B在第二和第三年的收益,方案C在前三年的收益的总和,所以有x41+x42+x45+x46-1.07x31-1.2x22-1.36x13=0

方案E的最大投资额不得超过30万元,所以有x4530

第五年,只有方案A可以投资,且投资总额为方案A在第四年的收益,方案B在第三和第四年的收益,方案C在第二、三、四年的收益,方案D在前四年的收益,方案E在第四年的收益的总和,所以有x51-1.07x41-1.2x22-1.8x14-1.3x45-1.36x23=0

3.3 目标函数:

maxz=1.07x51+1.2x42+1.36x33+1.5x46

第五年末收回的资金额为所有投资可在第五年收回的投资之和,即方案A在第五年的收益,方案B在第四和第五年的收益,方案C在第三、四、五年的收益,方案F在在第四和第五年的收益的总和,求其最大值即为最有投资方案。

3.4 模型

maxz=1.07x51+1.2x42+1.36x33+1.5x46

x11+x12+x13+x14=100

  x1450

x21+x22+x23+x25-1.07x11=0

x2530

x31+x32+x33-1.07x21-1.2x12-1.3x25=0

x41+x42+x45+x46-1.07x31-1.2x22-1.36x13=0

x4530

x51-1.07x41-1.2x32-1.8x14-1.3x45-1.36x23=0

xi,j0 i={1,2,3,4,5} j={1,2,3,4,5,6}

4、程序功能介绍

4.1求解程序功能简介

4.1.1概述:

软件由本小组(熊众威、吴维、于菲菲)专门为运筹学课程设计开发!

该软件是所有较简单线性规划问题设计的,运用通用的单纯形法的解题思路,经过反复迭代而得最终解。

4.1.2功能简介:

开发所用语言为Java,程序包括两个类,即:LP类和LP_Test类。其中LP_Test类中有main()方法为程序入口,负责基础数据的接收如:

* @param minmax 表示:求函数的最大值或最小值

* @param m 表示:约束条件的个数

* @param n 表示:变量个数

* @param m1 表示:<=的约束条件个数

* @param m2 表示:=的约束条件个数

* @param m3 表示:>=的约束条件个数

* @param a 表示:约束条件的系数矩阵

* @param x 表示:目标函数的价值系数

接收方式为从键盘接收。在接收到这些数据后,在LP_Test类中实例化LP类,再通过得到类的对象lp来调用LP类的的入口方法solve()方法,由此进入LP类,进行求解。

程序在接收到了以上参数后,首先会反馈完整的系数矩阵到控制台上;然后进行反复的迭代,并将迭代过程全部显示到控制台上,最终的一个迭代表为最终表,表的最左边标明了所有的基变量,最上面一行为Z和检验数值,求解完成,

如下图(运行截图):

程序运行截图

最后程序给出最优解和最优值,程序结束。

4.1.3 功能总结:

这是一个经典的用单纯形法解线性规划问题的程序,运行程序时只需按照程序的友好提示就可以很容易地得到模型结果,简单易用!

4.2程序流程图

5、结果分析

5.1计算机求解前的手工数据准备

将原问题添加松弛变量人工变量化成标准形式。

目标函数:

maxz=1.07x51+1.2x42+1.36x33+1.5x46

约束条件:

x11+x12+x13+x14+y4=100

  x14+y1 =50

x21+x22+x23+x25-1.07x11+y5 =0

x25+y2=30

x31+x32+x33-1.07x21-1.2x12-1.3x25+y6 =0

x41+x42+x45+x46-1.07x31-1.2x22-1.36x13+y7 =0

x45+y3=30

x51-1.07x41-1.2x22-1.8x14-1.3x45-1.36x23+y8=0

5.2计算机求解结果

过程如下:

第一步:录入数据,包括目标函数类型、约束条件个数、变量个数、的约束条件个数、的约束条件个数、目标函数系数,约束条件系数。程序运行截图如下:

数据录入过程截图1

数据录入过程截图2

数据录入过程截图3

通过录入的数据,程序反馈完整的系数矩阵如下,前8行表示按程序提示要求输入的增广矩阵,结合此题为3个“的约束条件系数、5个“=的约束条件系数,共17列,前16列为约束条件系数,第17列为约束条件右端项。最后一行是目标函数系数矩阵。程序运行截图如下:

反馈系数矩阵截图

第二步:二阶段法求解

第一阶段反复迭代过程如下:

迭代运算过程截图1

第二阶段反复迭代过程如下

迭代运算过程截图2

第三步:求得最优解及最优值。程序运行截图如下:

程序运行结果截图

由以上解题过程截图可知,最优解为:x11=100,x22=107,x46=128.4,x51=128.4,即在第一年方案A投资100万元,第二年方案B投资107万元,第四年方案F投资128.4万元,第五年方案A投资128.4万元最优值是329.988,即在第五年年末可收回最大资金金额是329.988万元。

5.3结果分析思路

5.3.1问题分析

通过对问题的理解和分析,根据题意可得到一个最大投资收益的模型,以这个模型为基础可以快速的求解各个年度的投资额以及投资收益,使在第五年年末可以得到最大的收益;然后通过做灵敏度分析,判断方案C的投资回报率方案E的最大资金金额在何范围内变化时,使得最优投资方案不变,以及在最初投入资金额为200万元时的最优投资方案。

5.3.2结果分析

最优解如下:x11=100,x22=107,x46=128.4,x51=128.4其他变量取值为零,即在第一年方案A投资100万元,第二年方案B投资107万元,第四年方案F投资 128万元,第五年方案A投资128.4万元。最优值是329.988,即第五年年末可收回的最大资金329.988万元。

5.3.3灵敏度分析

通过lindo得到的灵敏度分析结果如下图

方案C的投资回报率的变化属于目标函数中x33的系数的变化,其变化范围通过lindo分析结果可知,要使最优投资方案保持不变,其投资回报率的变化范围是:(0,20.17%]

方案E的最大资金金额的变化属于约束条件右端项b的变化,其变化范围通过lindo分析结果可知,要使最优基保持不变其最大资金金额的变化范围如下:[0,107]

最初投资金额是200万元时,应属于约束条件右端项b的变化,其变化范围通过lindo分析结果可知,要使最优基保持不变其最大资金金额的变化范围如下:[28.04,100]。当最初投资金额是200万元时,其最优投资方案已经改变,结果如下

最优解是x11=28.04,x13=171.96,x25=30,x31=39, x46=275.6其他变量取值为零,即在第一年方案A投资200万元,方案C投资171.96万元,第二年方案E投资30万元,第三年方案A投资39万元,第四年方案F投资275.6万元最优值是413.3987万元,即第五年年末可收回的最大资金金额是413.3987万元。

lindo运行结果截图

6综合题目创新的分析内容

1假设方案A的投资回报率是10%时,最优投资方案如何变化?

A的投资回报率的变化属于目标函数中x51的系数以及约束条件系数矩阵a的变化变化后的模型如下:

maxz=1.1x51+1.2x42+1.36x33+1.5x46

x11+x12+x13+x14=100

  x1450

x21+x22+x23+x25-1.1x11=0

x2530

x31+x32+x33-1.1x21-1.2x12-1.3x25=0

x41+x42+x45+x46-1.1x31-1.2x22-1.36x13=0

x4530

x51-1.1x41-1.2x32-1.8x14-1.3x45-1.36x23=0

xi,j0 i={1,2,3,4,5} j={1,2,3,4,5,6}

lindo运行求解结果如下

最优解如下:x11=27.27,x13=72.73, x25=30,x31=39,x46=141.8,其他变量取值为零,即在第一年方案A投资27.27万元,方案C投资72.73万元,第二年方案E投资30万元,第三年方案A投资39万元,第四年方案F投资141.8万元。最优值是212.7136,即第五年年末可收回的最大资金金额212.7136万元。

2)假设所有投入资金在第六年收回,公司应如何投资才能使第六年末收回的资金最多?

投资收回期在第六年收回,属于灵敏度分析中增加一个约束条件的情况,其模型如下:

maxz=1.07x61+1.2x52+1.36x43

x11+x12+x13+x14=100

  x1450

x21+x22+x23+x25-1.07x11=0

x2530

x31+x32+x33-1.07x21-1.2x12-1.3x25=0

x41+x42+x43+x45+x46-1.07x31-1.2x22-1.36x13=0

x4530

x51+x52-1.07x41-1.2x32-1.8x14-1.3x45-1.36x23=0

x61-1.07x51-1.2x42-1.36x33-1.5x46=0

xi,j0 i={1,2,3,4,5,6} j={1,2,3,4,5,6}

lindo运行求解结果如下

最优解如下:x11=28.04,x13=71.96,x25=30,x31=39,x46=139.6, x61=209.4其他变量取值为零即在第一年方案A投资28.04万元,方案C投资71.96万元,第二年方案E投资30万元,第三年方案A投资39万元,第四年方案F投资139.6万元,第六年方案A投资209.4万元最优值是224.06,即第五年年末可收回的最大资金金额是224.06万元。

3假设方案E最大投资金额为20万元时,最优投资方案如何变化?

假设方案E的投资期限为五年属于灵敏度分析中约束条件右端项b的变化,变化后的模型如下:

maxz=1.07x51+1.2x42+1.36x33+1.5x46

x11+x12+x13+x14=100

 x1450

x21+x22+x23+x25-1.07x11=0

x2520

x31+x32+x33-1.07x21-1.2x12-1.3x25=0

x41+x42+x45+x46-1.07x31-1.2x22-1.36x13=0

x4520

x51-1.07x41-1.2x32-1.3x45-1.36x23=0

xi,j0 i={1,2,3,4,5} j={1,2,3,4,5,6}

lindo运行求解结果如下

最优解如下:x11= 18.7,x13=81.3,x25=20,x31=26, x46=138.4,其他变量取值为零,即在第一年方案A投资18.7万元,方案C投资81.3万元,第二年方案E投资20万元,第年方案A投资26万元,第年方案F投资138.4万元。最优值是207.6,即第五年年末可收回的最大资金金额207.6万元。

4增加一个方案G,可以在第二年年初投资,投资期限是一年,投资回报率是30%,最优投资方案如何变化?

增加一个方案G属于灵敏度分析中增加一个新变量,变化后的模型如下:

maxz=1.07x51+1.2x42+1.36x33+1.5x46+1.3x57

x11+x12+x13+x14+x17=100

x1450

x21+x22+x23+x25+x27-1.07x11=0

x2530

x31+x32+x33+x37-1.07x21-1.2x12-1.3x25-1.3x27=0

x41+x42+x45+x46+x47-1.07x31-1.2x22-1.36x13-2.2x17-1.3x37=0

x4530

x51+x57-1.07x41-1.2x32-1.8x14-1.3x45-1.36x23-1.3x47=0

xi,j0 i={1,2,3,4,5} j={1,2,3,4,5,6}

lindo运行求解结果如下:

最优解如下:x17=100,x47=220,x57=286,其他变量取值为零,即在第一年方案G投资100万元,第四年方案G投资220万元,第五年方案G投资286万元。最优值为371.8,即在第五年年末可收回最大资金金额是371.8万元。

7课程设计的总结

运筹学理论的学习让我认识到它是求解最优性问题的一种工具,例如:最大最小值,最短路问题,最大流问题,合理分配问题等。我们这次运筹课程设计的题目属于投资最大化问题,有多种不同的投资方案,固定初始可用资金,在资金限额、回收期限等限制条件下,寻找一个最优的投资方案使得第五年末收回的资金额最大。

这个类型的题目在课堂上老师曾经做过一定介绍,关键是要分析投资与收益的关联性,每一种投资方案可以投资的初始时间以及它的回收年限是列出约束条件不可或缺的因素。这个题目的最终模型还是挺好理解的,但是用计算机实现问题的快速求解对我们来说还是有一定难度的。求解方法是两阶段法,网上有delphi语言编写的通用的求解程序,程序运行后的第一个界面按要求输入约束系数矩阵,之后就可以清晰地看到第一阶段迭代最优表,第二阶段迭代最优表,以及最终的最优性求解结果。但是我们组是自己用java语言编写的两阶段法求解,数据录入时总该出现错误,但是后来找到了快捷方法,程序界面很人性化,求解过程清晰易懂,结果显示也很有条理在程序设计报告中都一一截图进行了解释说明。同时还可以使用lindo来求解线性规划问题,这个就更容易实现了,只需要在自己所建模型的基础上进行一些改动(去掉“z=”、在目标函数后加“st”、在约束条件最后加“end”),就可以运行出结果,结果包含最优解、最优值、灵敏度分析结果,可以使用它验证结果的正确性以及进行灵敏度分析。

我们对题目的结果分析就是先运用java程序求解最优投资方案,再用lindo进行灵敏度分析。针对这个题目我还设置了一些创新变化,改变一些限制条件,再根据创新内容调整模型,根据最初的灵敏度分析先确定结果是否会改变,若改变可在lindo里运行新的模型,这样可看出运筹学线性规划的深层命理。

从这次的课程设计中,我发现了许多学习中的不足之处,对于运筹学的学习还远远谈不上融会贯通,明明在理论上是很理解了,要把它变成现实的东西就不容易了。同时也认识到了运筹学的应用范围真的非常广泛,我们在课堂上学习的都是每个领域的最简单的问题,如果我们对运筹学有浓厚的乐趣,在以后的学习中更深一步地去研究,那时我们便会发现日常生活中的很多问题,都能用运筹学来解决

本文来源:https://www.2haoxitong.net/k/doc/66609267ecfdc8d376eeaeaad1f34693daef10c9.html

《运筹学课程设计- 题目是《某投资公司有100万元资金用于投资,投资方案有六种》.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式