运筹学实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《运筹学》实验指导书
课程代码:0900030
课程名称:运筹学/Operational Research
开课院实验室:管理学院实验中心
适用专业:工商管理、工程管理、管理信息、工业工程、工程造价等专业
教学用书:《运筹学》(《运筹学》编写组编写,清华大学出版社出版)
第一部分实验课简介
一、实验的地位、作用和目的及学生能力标准
运筹学是一门应用科学,在教学过程中通过案例分析与研究并与现代计算机技术相结合,力求实现理论与实践相结合,优化理论与经济管理专业理论相结合。实验,是《运筹学》课程中重要的实践环节。通过实验,可弥补课堂理论教学中的不足,增加学生的感性知识;要使学生能掌握系统的管理科学中的整体优化和定量分析的方法,熟练运用运筹学程序,对实际问题和研究对象进行系统模拟。
二、试验内容
应用Lindo6.1版运筹学软件包,解决实际问题。
三、实验方式与基本要求
1、实验方式:综合性实验
预习要求:复习编程方法及线性规划、整数规划的算法,对实际问题和研究对象,构造数学模型,确定优化技术方法,设计出原始数据表格。
实验设备:台式电脑
实验要求:按实验任务要求调试程序,程序执行结果应正确。
实验分组:1人/组
2、基本要求
(1)在实验室进行实验前,学生熟悉实验软件Lindo程序、操作方法等;
(2)将程序调好后,将程序结果记录,并由实验教师检查后签字;
(3)将数据及有关的参数等记录在已经设计好的原始数据表格中;
(4)在一周内完成实验报告。
四、考核方式与实验报告要求
学生进入实验室后签到,实验结束后,指导教师逐个检查并提问,根据学生操作、实验结果、回答问题情况及实验纪律及作风等方面给出学生成绩,再综合实验报告情况给出最后的成绩。报告格式如附录。
第二部分Lindo背景及功能菜单简介
一、Lindo简介
1.Lindo简介:LINDO(Linear Interactive and Discrete Optimizer)是一种专门用于求解数学规划问题的软件包。由于LINDO执行速度很快、易于方便输入、求解和分析数学规划问题。因此在数学、科研和工业界得到广泛应用。LINDO主要用于解线性规划、非线性规划、二次规划和整数规划等问题。也可以用于一些非线性和线性方程组的求解以及代数方程求根等。LINDO中包含了一种建模语言和许多常用的数学函数(包括大量概论函数),可供使用者建立规划问题时调用。
一般用LINDO解决线性规划(LP-Linear Programming)。整数规划(IP—Integer Programming)问题。其中LINDO 6.1学生版至多可求解多达300个变量和150个约束的规划问题。其正式版(标准版)则可求解的变量和约束在1量级以上。
2.特点:LINDO只要通过键盘输入就可以方便地实现交互性良好的操作与使用。另外,LINDO也可以对外建文件进行处理,只要这些文件里包含有必要的命令代码和输入数据,处理后就可以生成用于报告目的的文档。还可以自建子程序,然后直接与LINDO相结合形成一个包括你自己的代码和LINDO本身的优化库的综合程序。
二、LINDO的视窗
菜单:文件—编辑—求解—报告—窗口—帮助
工具栏:它包含所有的其他窗口以及所有命令菜单和工具栏。在里面的是一个新的空白的模型窗口。
第三部分LINDO常用功能与操作简介
一、LINDO数据输入与保存
1、打开一个空白工作表/项目
File—New,出现一个新的空白的模型窗口,在此窗口中输入需求解得模型。如图所示:
2、数据输入:在空白窗口输入模型,输入方式与我们的数学书写的形式基本一致。LINDO也不区分变量中的大小写字符,约束条件中的“<=”及“>=”可用“<”及“>”代替。
3、保存当前工作表:如果输入的问题模型已经不再需要改动,可用SA VE命令将它存入文件中,点File——Save,输入文件名,点“保存”。
二、求解
从Solve菜单选择Solve命令,或者在窗口顶部的工具栏里按Solve按钮,LINDO 就会开始对模型进行编译。首先,LINDO会检查模型是否具有数学意义以及是否符合语法要求。如果模型不能通过这一步检查,会看到以下报错信息:An error occurred during compilation on line: n(产生错误的行数),LINDO会自动跳转到发生错误的行。我们就可以检查该行的语法错误并改正过来。
通过这一检查阶段后,LINDO就会正式开始求解,这由一个叫LINDO solver 的处理器完成。当solver初始化时,会在屏幕上显示一个状态窗口,如下图所示:
这个状态窗口可以显示solver的进度,下表是对各项数据/控制按钮的说明:当solver完成优化过程后将会提示你是否要进行灵敏度和范围分析。如果想重新看到刚才的模型,可键入LOOK命令,LINDO会询问具体的行号。典型的应答可以是3,或1-2,或ALL,而结果,相应地会显示出第3行,第1-2行,或所有问题行。
数据项/控制说明
Status 给出当前解决方案的状态,可能的值包括:Optimal(最优的),Feasible (可行的),Infeasible(不可行的),Unbounded(未定的)
Iterations solver的重复次数Infeasibility 多余或错误约束条件数量Objective 目标函数的当前值
Best IP 标示得到最优整数解决方案值,该项只出现在IP(整数规划)模型。IP Bound IP模型中目标的理论范围
Branches 由LINDO IP solver分生出来的整型变量个数
Elapsed Time solver启动后所经过时间
Update Interval 状态窗口更新周期(秒)。你可以把这个值设成任何一个非负数,如果把它设成零的话很可能会增加求解时间。
Interrupt Solver 按下该按钮,solver将立刻停止并返回当前得到的最优解。
Close 按下该按钮关闭状态窗口,solver继续运行。状态窗口可以通过选取相应命令重新打开。
ROW: 3
或
:LOOK all
如果想修改问题,可键入ALTER命令,LINDO会询问行号、变量名、及新的系数。例如:如果要将上面问题中约束条件改为,再全部看一下,并求解新问题,那么键入ALTER 命令后相应的应答为2,X,和6,以下是演示过程:
:ALTER
ROW: 2
V AR: X
NEW COEFFICIENT: 6
或
:LOOK ALL
三、LINDO输出结果报告
在Reports Window窗口里,它可以显示64,000个字符的信息。如果有需要,LINDO会从顶部开始刷除部分输出以腾出空间来显示新的输出。如果你有一个很长的解决方案报告,需要完整地进行阅读使用,你可以把这些信息从Reports Window 写到另外一个磁盘文件里,方法是选取File|Log Output命令,快捷键是F10,然后你就可以找到该文件进行阅读使用。如下所示,Reports Window里显示的是模型的最优解决方案:
按照顺序,报告首先告诉我们LINDO进行了两次运算后求出该解;跟着是在约束条件的约束下我们可以得到的最大利润是145;这时X和Y分别取值10和3。
四、LINDO求解单纯的或混合型的整数规划(IP)问题
LINDO可用于求解单纯的或混合型的整数规划(IP)问题。但目前尚无相应完