1、Lindo软件的基本使用方法Lindo软件的基本使用方法2.1 Lindo软件入门2.1.1 编写一个简单的Lindo程序下面通过一个简单的例子,说明如何编写、运行一个Lindo程序的完整过程.例2.1 求解下面的简单线性规划(LP)问题: 我们可以直接在这个新的、空白的模型窗口中输入这个LP模型:图2-1 输入一个简单的优化模型我们看到这段程序有以下特点:(1) 这个Lindo程序以“max”开头,表示目标是最大化问题(容易想到,对于最小化问题,自然以“min”开头),后面直接写出目标函数的表达式和约束的表达式(目标函数和约束之间用“ST”分开)程序以“end”结尾(end也可以省略);Li
2、ndo运行状态窗口名称含义Status(当前状态)显示当前求解状态:“optimal”表示已经达到最优解;其它可能的显示还有:feasible,infeasible,unboundedInterations(迭代次数)显示迭代次数,2表示已经迭代了两次Infeasible(不可行性)约束不满足的量(即各个约束条件不满足的“数量”的和;特别注意不是“不满足的约束的个数”):“0”表示这个解是可行的Objective(当前的目标值)目标函数显示的值为:7.45455Best IP(整数规划当前的最佳目标值)显示整数规划当前的最佳目标值:“N/A”(No anwser或Not Applicable)
3、表示无答案或无意义,因为整个模型中没有整数变量,不是整数规划IP bound(整数规划的界)显示整数规划的界(对最大化问题显示上界;对最小化问题显示下界):“N/A”含义同上Branches(分支数)显示分支定界算法已经计算的分支数:“N/A”含义同上Elapsed time(所用时间)显示计算所用时间(单位:s)“0.00”表示计算太快了,用时还不到0.05秒Update Interval(刷新本界面的时间间隔)显示和控制刷新本界面的时间间隔:“1”表示“1s”;用户可以在界面上修改该时间Interrupt Solver(中断求解程序)当模型规模比较大时(尤其对整数规划),可能求解时间会很长
4、,如果不想再等待下去,可以在程序运行时单击此按钮中断运行Close(关闭)该按钮只是关闭窗口,不终止计算.如果你关闭了状态窗口,可以在Window|open Staus Window菜单命令来打开它灵敏性分析对话框这个对话框询问你是否需要作灵敏性分析(DO RANGE(SENS-ITIVITY)ANALYSIS?) Lindo的结果报告窗口“LP OPTIMUM FOUND AT STEP 2”表示单纯形法在两次迭代(旋转)后得到最优解;“OBJECTIVE FUNCTION VALUE 1) 7.454545 表示最优目标值为7.454545(注意:Lindo中目标函数所在的行总是被认为是第
5、1行,这就是这里1)的含义).“VALUE”给出最优解中各变量(VARIABLE)的值: “REDUCED COST”给出最优的单纯形表中目标函数(第1行)中变量对应的系数(即各个变量的检验数(也称为判别数).其中,基变量的REDUCED COST值一定为0;对于非基变量(注意:非基变量本身取值一定为0),相应的REDUCED COST值表示当该非基变量增加一个单位(其他非基变量保持不变)时目标函数减少的量(对Max问题).“SLACK OR SURPLUS(松弛或剩余)”给出约束对应的松弛变量的值:第2,3行松弛变量均为0,说明对最优解来说。两个约束(第2、3行)均取等号,即都是紧约束.“D
6、UAL PRICES”给出对偶价格的值:第2、3行对偶价格分别为:0.090909,0.545455.“NO. ITERATIONS=2”表示用单纯形算法进行了两次迭代(旋转).2.1.2 一些注意事项(1) Lindo中的变量名由数字和字母组成,但必须以字母开头,且长度不能超过8个字符.Lindo中不区分大小写。包括LINDO中的关键字也不区分大小写.(2) 可以在模型的End后面用命令“SUB(即设置上界(set upper bound)的英文缩写)设置变量的上界,用命令“SLB”设置变量的下界,其用法是:sub vname value,将变量vname的上限设置为value. Sub x
7、1 10 !作用等价于x1=10但用SUB和SLB表示上下界约束不计入模型的约束,因此LINDO也不能给出其松紧约束和敏感性分析. (3)简单错误的检查和避免 当你将一个线性规划问题的数学模型输入LINDO系统时,如果有错误,可以使用如下命令:Report|Picture(Alt+5),它的功能是将目标函数和约束表达式中的非零系数通过列表或者图形显示出来.例2:输入如下语句,用Reports|picture 命令来检验错误. 输入中含有错误的例子 系数矩阵显示方式的控制对话框 系数矩阵的图形显示从图中很直观地发现,其实错误的原因只不过在于输入有空格,第5)行中的o和O弄混淆了.下面用一个例子来
8、说明三个变量范围限定命令(FREE,SUB,SLB).例3:求解下面的线性规划问题. 这个模型中对变量没有非负限制,对有上限限制,对有下限限制.用free、SUB、SLB可以实现这些功能 模型的LINDO输入语句 例3的输出结果从结果报告表中可以知道:最大值为122,最优解为.2.2 敏感性分析下面来看一个具体的例子.例4 某家具公司制造书桌、餐桌和椅子,所用的资源有三种:木材、木工和漆工.生成数据如下表.若要求桌子的生产量不超过5件,如何安排三种产品的生产使得利润最大? 家具公司生产数据 每个书桌 每个餐桌 每把椅子 现有资源总量木材 8单位 6单位 1单位 48单位漆工 4单位 2单位 1.5单位 20单位木工 2单位 1.5单位 0.5单位 8单位成品单价 60单位 30单位 20单位用desk、table和chair分别表示三种产品的生产量(决策变量),容易建立LP模型,在LINDO中输入如下:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1