运筹学课程实验指导书
- 格式:doc
- 大小:2.53 MB
- 文档页数:37
运筹学实验指导书院系经济管理学院课程名称运筹学指导教师林向义、高翠娟专业市场营销班级 031-4班2006年4月实验一Excel求解规划问题一、实验题目揭开Excel规划求解的神秘面纱二、实验课时课内4学时三、实验目的从Excel中的规规求解加载开始,逐步熟悉问题描述、参数设置和求解过程,熟练掌握规划求解的实用。
四、实验内容和要求内容:(一)线性规划求解1.了解规划求解的原理“规划求解”是 Excel 中的一个加载宏,借助“规划求解”,可求得工作表上某个单元格(被称为目标单元格)中公式(公式:单元格中的一系列值、单元格引用、名称或运算符的组合,可生成新的值。
公式总是以等号(=)开始。
)的最优值。
“规划求解”将对直接或间接与目标单元格中公式相关联的一组单元格中的数值进行调整,最终在目标单元格公式中求得期望的结果。
“规划求解”通过调整所指定的可更改的单元格(可变单元格)中的值,从目标单元格公式中求得所需的结果。
2.规划求解的加载在安装Excel时,只有在选择[完全/定制安装]时才可选择装入这个模块。
(1)安装完成进入Excel后,在[工具]菜单(如下图所示)中点击加载宏选项之后,在弹出的对话框中的“可用加载宏”列表框中,选定待添加的加载宏“规划求解”选项旁的复选框,然后单击“确定”。
单击“确定”以后,“工具”菜单下就会出现一项“规划求解”。
如果需要其他功能,也可以用鼠标勾选(加载的宏越多,excel 启动的时候就会越慢,所以请根据自己的需要选择)。
3.规划求解工具的参数说明和设置用鼠标左键单击〔工具〕菜单中的〔规划求解〕选项,弹出〔规划求解参数〕对话框,对话框参数解释如下:目标值存放位置设置目标单元格:一些单元格、具体数值、运算符号的组合。
注意:目标单元格一定要是公式,即一定是以“=”开始。
类似于线性规划中的目标函数。
等于:最大值、最小值:在此指定是否希望目标单元格为最大值、最小值或某一特定数值。
如果需要指定数值,请在右侧编辑框中键入该值。
可变单元格:指决策变量(不含公式)所在的单元格.可以有多个单元格或区域。
推测:单击此按钮,自动推测“设置目标单元格”框中的公式所引用的所有非公式单元格,并在“可变单元格”框中定位这些单元格的引用。
约束:增加、修改、删除各个约束条件(等式或不等式),逐个的增加、修改或删除约束条件。
约束左端公式存放位置求解:对所设置的问题进行求解。
全部重设:清除所有当前条件,进行重新设置。
选项:在其中可加载或保存规划求解模型,并对求解过程的高级属性进行控制。
采用线性模型:当模型中的所有关系都是线性的,并且希望解决线性优化问题时,选中此复选框可加速求解进程。
如模型是非线性规划或不知道时不选该项,此项可不选。
显示迭代结果:如果选中此复选框,每进行一次迭代后都将中断“规划求解”,并显示当前的迭代结果。
假定非负:如果选中此复选框,则对于在“添加约束”对话框的“约束值”框中没有设置下限的所有可变单元格,假定其下限为 0(零)。
当所有参数都设置完使,点击求解按钮,将显示求解结果,同时可以根据求解结果显示相关敏感分析报告。
保存求解结果:将决策变量的值(可变单元格的取值存在可变单元格的位置)报告:根据选择的报告自动生成相应的报告,如下表4.规划求解步骤Max z=2x1+3x2-x32x1+2x2+2x3≥124x1+x2+2x3=162x1+3x2+x3≤5X1,x2,x3≥0(1)在工作表上建立模型(2)单击“工具”菜单下的“规划求解”,在弹出的“规划求解参数”对话框中输入各项参数。
在选项按钮中可以选择求解线性规划和假定非负,点击求解按钮出现下图,选中报告后并保存求解结果:然后根据报告分析解的情况。
练习一:将教材课后习题一第6大题,第7大题利用规划求解计算结果。
(二)整数规划求解如在上例中要求变量x1,x2,x3均取整数有:在原有参数设定前提下,增加一个约束如下:目标数值输入为“=B3*B10+C3*C10+D3*E10”变量值约束左端项表达式用公式,单元格引用,变量值绝对引用,然后拖动单元格右下角的点,后两个约束自动写出练习二:习题四第7题、第12题利用规划求解计算结果。
(三)运输问题求解1.建立运输问题模型2.设置参数(1)目标函数格 (2)约束条件 1)供应约束:ai xnj ij=∑=12)需求约束:j mi ijb x=∑=13)非负约束:xij ≥03.求解分析按求解结果,得到结果如下:练习三:1.习题三第1大题利用规划求解求出最优方案2.求下列分配问题求解指派问题B1 B2 B3 B4A1 2 10 9 7A2 15 4 14 8A3 13 14 16 11A4 4 15 13 9 注意:分配问题中,变量xij为0-1变量。
要求:1.严格依照实验指导书和教材内容进行操作;2.各项基本操作应多次练习,达到熟练掌握的程度。
3.课内完成的实验结果要及时存盘,并在软盘上备份,以备后续使用与检查。
注意事项:1.由于Office安装不完全,可能会出现规划求解无法加载;2.设置目标单元格和约束单元格中必须输入公式以=号开始,然后引用单元格;3.单元格的绝对引用和相对引用的区别:如引用B2单元格,绝对引用:$B$2,相对应用B2。
实验二lindo求解规划问题一、实验题目规划问题在lindo系统中的求解二、实验课时课内2课时三、实验目的通过实例练习,掌握lindo系统中求解线性规划、整数规划和二次规划问题的操作方法;并能通过求解结果的分析报告,来分析数学模型和采取措施解决实际问题。
四、实验内容和要求内容:1.线性规划的求解(1)启动lindo系统启动lindo系统后,出现如下界面:外面的标记有“LINDO”的窗口是主窗口。
所有其它窗口将包含在这个窗口内。
主窗口还包含所有的命令菜单和命令工具栏。
6个主要菜单类:File(文件)菜单、Edit(编辑)菜单、Solve(求解)菜单、Reports(报告)菜单、Window(窗口)菜单)、Help(帮助)菜单。
标记有“untitled”的较小的子窗口是一个新的、空白的模型窗口。
我们将在这个窗口直接输入示例模型。
(2)以实例1为例练习在空白模型窗口中输入待求解模型Max z=2x1+3x2St10x1+20x2<=804x1 <=166x2 <=18X1,x2>=01)确定决策变量并输入模标函数Lindo系统中目标函数只有两种选择:max(最大化)和min(最小化)根据要求解的问题确定是max还是min,然后利用决策变量(在LINDO中,当你在模型使用某个变量的那一刻,它就存在了,你除了在模型中输入它以外,不必做任何事情)表示目标函数表达式。
在空白窗口中输入max 2x1+3x2 后回车2)确定约束条件你在目标函数的下一行输入SUBJECT TO(或只是ST),然后回车,并且输入10x1+20x2<=804x1 <=166x2 <=18注意:(1)LINDO将“<”解释为“小于等于”而不是“严格小于”。
可以输入“<=”替代“<”字符。
(2)lindo中没有乘号*,如2x1不能写成2*x1。
(3)变量只能出现在不等号的左侧,常数只能出现在不等号的右侧。
(4)lindo默认所有变量非负。
最后,在其后的那一行上,指明约束条件的结束,输入:END以上内容输入后,你的屏幕看起来应该是这样:模型输入完备准备求解。
(3)求解模型要求解模型,可从Solve(求解)菜单中选择Solve(求解)命令,或按窗口顶部工具栏中的求解按钮(),LINDO将试着编译模型开始。
这意味着LINDO将测定模型是否具有数学意义,是否遵循语法的要求。
如果模型不通过这些检验,你将被告知如下信息:An error occurred during compilation on line: n(在编译期间一个错误发生在:n行)然后LINDO将跳到发生错误的那一行。
你应检查这一行的语法错误并改正它们。
如果在编译阶段期间没有发现模型错误,LINDO将开始实际求解模型。
当Lindo的内部求解器启动时,它将在屏幕上显示如下状态窗口(Status Window):这个状态窗口对于监视求解器的进展是有用的。
状态窗口内的各种区域和控制的描述如下。
区域/控制描述Status 给出当前解的状态。
可能值包括:最佳、可行、不可行、无界Iterations 求解器的迭代次数Infeasibility 约束条件被违背的数量(不可行性)Objective 目标函数的当前值Best IP 发现的最佳整数解的目标值,仅与整数规划模型相关IP Bound 对整数规划模型的目标函数的理论约束。
仅与整数规划相关Branches Lindo的整数规划求解器对整数变量分支的数量。
仅与整数规划模型相关Elapsed Time 从求解器被调用开始所经过的时间Update Interval 状态窗口被更新的频率(按秒)。
你可以将其设为所希望的任何非负值。
将间隔设为零将增加求解时间Interrupt Solver 在任何时候按此按钮中断求解器,返回其发现的当前最优解Close 按此按钮关闭状态窗口。
优化将继续。
从Window(窗口)菜单选择StatusWindow(状态窗口)命令,状态窗口可以重新打开当求解完成时,它将提示你是否进行敏感性和范围分析。
最后,你将能够使用这个信息,但对于现在,按“No”按钮关闭状态窗口。
(4)报告窗口解释结果1)解的分析:2)灵敏度分析报告在REPORT菜单中选择Range选项可以得到灵敏度分析报告,当其他参数不发生变化时,目标函数中变量系数和右端项在什么范围内变化时,最优基保持不变。
2.整数规划的求解LINDO 可用于求解整数规划(IP),模型的输入与LP 问题类似, 但在END标志后需定义整型变量。
0/1 型的变量可由INTEGER(可简写为INT)命令来标识INT vname 或INT n前者只将变量vname 标识为0/1 型, 后者将当前模型中前n 个变量标识为0/1 型一般的整数变量可用命令GIN(是GENERAL INTEGER 的意思),其使用方式及格式与INT 命令相似。
要求:1.对lindo窗口参数的认识;2.正确书写模型中目标函数、约束条件,尤其是整数规划和0/1规划;3.掌握阅读结果分析报告(尤其是灵敏度分析)。
注意事项:1.lindo默认所有变量非负若要去掉非负约束可采用free命令,具体介绍如下:FREE <Variable> 去掉<Variable>的所有界限,允许<Variable>取任何实数值,正数或负数。
GIN <Variable> 使<Variable>成为一般整数(即把它限定为非负的整数集合)。