收藏 分享(赏)

LINGO软件学习入门.ppt

上传人:精品资料 文档编号:10266020 上传时间:2019-10-25 格式:PPT 页数:59 大小:689KB
下载 相关 举报
LINGO软件学习入门.ppt_第1页
第1页 / 共59页
LINGO软件学习入门.ppt_第2页
第2页 / 共59页
LINGO软件学习入门.ppt_第3页
第3页 / 共59页
LINGO软件学习入门.ppt_第4页
第4页 / 共59页
LINGO软件学习入门.ppt_第5页
第5页 / 共59页
点击查看更多>>
资源描述

1、LINGO软件学习,一. 优化模型与优化软件简介,二. LINGO软件的基本使用方法,三. LINGO软件求解线性规划问题,一. 优化模型与优化软件简介,实际问题中 的优化模型,x决策变量,f(x)目标函数,gi(x)0约束条件,数学规划,线性规划(LP) 二次规划(QP) 非线性规划(NLP) 整数规划(IP),线性规划问题的标准形式,目标函数:,约束条件:,非线性规划,约束集或可行域,常用优化软件,LINDO/LINGO软件 MATLAB优化工具箱/mathematica优化程序包 EXCEL软件的优化功能 SAS(统计分析)软件的优化功能,建模时需要注意的几个基本问题,1、尽量使用实数优

2、化,减少整数约束和整数变量 2、尽量使用光滑优化,减少非光滑约束的个数 如:尽量少使用绝对值、符号函数、多个变量求最大/最小值、四舍五入、取整函数等 3、尽量使用线性模型,减少非线性约束和非线性变量的个数 (如x/y 5 改为x5y) 4、合理设定变量上下界,尽可能给出变量初始值 5、模型中使用的参数数量级要适当 (如小于103),二. LINGO软件的基本使用方法,1 LINGO入门,第一步:启动LINGO,屏幕显示如下: 标记LINGO的外窗口是主框架窗口,主框架窗口的上面包含所有的命令菜单和命令工具栏; 标记LINGO MODEL-LINGO1的子窗口是一个新的、空白的模型窗口。,第二步

3、:在模型窗口中输入模型,输入: model: max=2*x1+3*x2; 4*x1+3*x210; 3*x1+5*x212; end,第三步:求解模型,1、选择菜单 LINGO|Solve或者按工具栏的,2、LINGO开始编译模型,如有语法错误将返回一个错误的消息并指明错误出现的位置;如果通过编译, LINGO将激活 Solver运算器 寻求模型的最优解;,3、首先出现solver status 窗口,其作用是监控solver的进展和显示模型的维数等信息;,4、计算完成后出现Solution Report窗口显示模型解的详细信息;,运行状态窗口,Variables(变量数量):变量总数(To

4、tal)、非线性变量数(Nonlinear)、 整数变量数(Integer)。,Constraints(约束数量):约束总数(Total)、非线性约束个数(Nonlinear)。,Nonzeros(非零系数数量):总数(Total)、非线性项系数个数(Nonlinear)。,Generator Memory Used (K) (内存使用量),Elapsed Runtime (hh:mm:ss)(求解花费的时间),运行状态窗口,求解器(求解程序)状态框,当前模型的类型 :LP,QP,ILP,IQP,PILP, PIQP,NLP,INLP,PINLP (以I开头表示IP,以PI开头表示PIP),当

5、前解的状态 : “Global Optimum“, “Local Optimum“, “Feasible“, “Infeasible“(不可行), “Unbounded“(无界), “Interrupted“(中断), “Undetermined“(未确定),解的目标函数值,当前约束不满足的总量(不是不满足的约束的个数):实数(即使该值=0,当前解也可能不可行,因为这个量中没有考虑用上下界命令形式给出的约束),目前为止的迭代次数,运行状态窗口,扩展的求解器(求解程序)状态框,使用的特殊求解程序 : B-and-B (分枝定界算法) Global (全局最优求解程序) Multistart(用多

6、个初始点求解的程序),目前为止找到的可行解的最佳目标函数值,目标函数值的界,特殊求解程序当前运行步数: 分枝数(对B-and-B程序); 子问题数(对Global程序); 初始点数(对Multistart程序),有效步数,运行程序的LINGO报告窗口(如下图),注:LINGO不询问是否进行敏感性分析,敏感性分析需要将来通过修改系统选项启动敏感性分析后,再调用“REPORT|RANGE”菜单命令来实现。现在同样可以把模型和结果报告保存在文件中。,解释,Objective value: 最优目标值 Infeasibilities:不可行性 Total solver iterations:单纯形法的

7、迭代次数 Variable:变量 Value:给出最优解中各变量的值 Reduced Cost:各个变量的检验数 Slack or Surplus:约束条件的松驰变量或剩余变量的值 Dual Price:对偶价格或影子价格,2 Lingo的基本用法注意事项,1、每一个模型都以model:开始, 又以end结束,也可省略此结构; 2、目标函数必须由 “min =”或“max =”开头。 3、可以用表示=; 4、LINGO的每一语句 ; 结束; 5、注释以 !开始,以 ; 结束; 6、变量名:不区分大小写;由字母数字下划线组成;第一个字符 必须是字母;变量名最长为32个字符 7、变量和数字放在约束

8、条件的左、右端均可;但最好变量在 左,数字在右。 8、Lingo 变量默认域为非负实数,可以改变默认域.,程序语句输入的备注:,LINGO总是根据“MAX=”或“MIN=”寻找目标函数,而除注释语句和TITLE语句外的其他语句都是约束条件,因此语句的顺序并不重要 。 限定变量取整数值的语句为“GIN(X1)”和“GIN(X2)”,不可以写成“GIN(2)”,否则LINGO将把这个模型看成没有整数变量。 LINGO中函数一律需要以“”开头,其中整型变量函数(BIN、GIN)和上下界限定函数(FREE、SUB、SLB)与LINDO中的命令类似。而且0/1变量函数是BIN函数。,数学函数 LINGO

9、提供了大量的标准数学函数: abs(x) 返回x的绝对值 sin(x) 返回x的正弦值,x采用弧度制 cos(x) 返回x的余弦值 tan(x) 返回x的正切值 exp(x) 返回常数e的x次方 log(x) 返回x的自然对数 lgm(x) 返回x的gamma函数的自然对数 sign(x) 如果x=0时,返回不超过x的最大整数; 当x0时,返回不低于x的最大整数。 smax(x1,x2,xn) 返回x1,x2,xn中的最大值 smin(x1,x2,xn) 返回x1,x2,xn中的最小值,三. LINGO软件求解线性规划问题,熟悉LINGO软件的使用方法、功能; 利用LINGO软件求解一般线性规

10、划问题。,熟悉LINGO软件的启动步骤。 熟悉LINGO软件的各菜单、命令按钮的作用。 学会如何使用LINGO的帮助文件。 学会输入线性规划模型的基本格式。,1、求解线性规划:,model: max=x1+2*x2; 2*x1+5*x212; x1+2*x28; End 注意:乘法一定用*,2、求解线性规划:,model: max=20*x1+10*x2; 5*x1+4*x25; end,1、解线性规划,练习,2、求解问题,3 、求解,4 、 解下列规划,返回,5 、求解问题,6 、求解问题,返回,7、 求下述整数规划问题的最优解,8、如何在LINGO中求解如下的IQP问题:,LINGO代码:

11、 max=98*x1+277*x2-x12-0.3*x1*x2-2*x22; x1+x2=100; x12*x2; gin(x1);gin(x2);,50桶牛奶,时间480小时,至多加工100公斤A1,制订生产计划,使每天获利最大,35元可买到1桶牛奶,买吗?若买,每天最多买多少?,可聘用临时工人,付出的工资最多是每小时几元?,A1的获利增加到 30元/公斤,应否改变生产计划?,每天:,例1:加工奶制品的生产计划,x1桶牛奶生产A1,x2桶牛奶生产A2,获利 243x1,获利 164 x2,原料供应,劳动时间,加工能力,决策变量,目标函数,每天获利,约束条件,非负约束,线性规划模型(LP),时

12、间480小时,至多加工100公斤A1,模型求解,OBJECTIVE FUNCTION VALUE1) 3360.000VARIABLE VALUE REDUCED COSTX1 20.000000 0.000000X2 30.000000 0.000000ROW SLACK OR SURPLUS DUAL PRICES2) 0.000000 48.0000003) 0.000000 2.0000004) 40.000000 0.000000NO. ITERATIONS= 2,20桶牛奶生产A1, 30桶生产A2,利润3360元。,Max=72*x1+64*x2; x1+x250; 12*x1+

13、8*x2480; 3*x1100;,模型求解,reduced cost值表示当该非基变量增加一个单位时(其他非基变量保持不变)目标函数减少的量(对max型问题),OBJECTIVE FUNCTION VALUE1) 3360.000VARIABLE VALUE REDUCED COSTX1 20.000000 0.000000X2 30.000000 0.000000ROW SLACK OR SURPLUS DUAL PRICES2) 0.000000 48.0000003) 0.000000 2.0000004) 40.000000 0.000000NO. ITERATIONS= 2,也可理

14、解为: 为了使该非基变量变成基变量,目标函数中对应系数应增加的量,OBJECTIVE FUNCTION VALUE1) 3360.000VARIABLE VALUE REDUCED COSTX1 20.000000 0.000000X2 30.000000 0.000000ROW SLACK OR SURPLUS DUAL PRICES2) 0.000000 48.0000003) 0.000000 2.0000004) 40.000000 0.000000,原料无剩余,时间无剩余,加工能力剩余40,三种资源,“资源” 剩余为零的约束为紧约束(有效约束),结果解释,Max=72*x1+64*x

15、2; x1+x250; 12*x1+8*x2480; 3*x1100;,OBJECTIVE FUNCTION VALUE1) 3360.000VARIABLE VALUE REDUCED COSTX1 20.000000 0.000000X2 30.000000 0.000000ROW SLACK OR SURPLUS DUAL PRICES2) 0.000000 48.0000003) 0.000000 2.0000004) 40.000000 0.000000,结果解释,最优解下“资源”增加1单位时“效益”的增量,原料增1单位, 利润增48,时间加1单位, 利润增2,能力增减不影响利润,影

16、子价格Shadow price,35元可买到1桶牛奶,要买吗?,35 48, 应该买!,聘用临时工人付出的工资最多每小时几元?,2元!,对偶计算,包括对偶 价格和敏感性分析,LINGOOptionsGeneral Solver(通用求解程序)选项卡,要使用敏感性分析必须要在这选择使用敏感性分析,RANGES IN WHICH THE BASIS IS UNCHANGED:OBJ COEFFICIENT RANGESVARIABLE CURRENT ALLOWABLE ALLOWABLECOEF INCREASE DECREASEX1 72.000000 24.000000 8.000000X2

17、 64.000000 8.000000 16.000000RIGHTHAND SIDE RANGESROW CURRENT ALLOWABLE ALLOWABLERHS INCREASE DECREASE2 50.000000 10.000000 6.6666673 480.000000 53.333332 80.0000004 100.000000 INFINITY 40.000000,最优解不变时目标系数允许变化范围,x1系数范围(64,96),x2系数范围(48,72),A1获利增加到 30元/千克,应否改变生产计划,x1系数由243= 72 增加为303= 90,在允许范围内,不变!,

18、(约束条件不变),结果解释,LINGORange,结果解释,RANGES IN WHICH THE BASIS IS UNCHANGED:OBJ COEFFICIENT RANGESVARIABLE CURRENT ALLOWABLE ALLOWABLECOEF INCREASE DECREASEX1 72.000000 24.000000 8.000000X2 64.000000 8.000000 16.000000RIGHTHAND SIDE RANGESROW CURRENT ALLOWABLE ALLOWABLERHS INCREASE DECREASE2 50.000000 10.0

19、00000 6.6666673 480.000000 53.333332 80.0000004 100.000000 INFINITY 40.000000,影子价格有意义时约束右端的允许变化范围,原料最多增加10,时间最多增加53,35元可买到1桶牛奶,每天最多买多少?,最多买10桶?,(目标函数不变),注意: 充分但可能不必要,30元可增加1桶牛奶,3元可增加1小时时间,应否投资?现投资150元,可赚回多少?,B1,B2的获利经常有10%的波动,对计划有无影响?,每天50桶牛奶,时间480小时至多加工100公斤A1 。制订生产计划,使每天获利最大 。,【问题】,决策变量,目标函数,约束条件,

20、非负约束,利润,原料供应,劳动时间,加工能力,附加约束,【模型分析与假设】,【模型求解 】,软件实现,LINDO 6.1,OBJECTIVE FUNCTION VALUE1) 3460.800VARIABLE VALUE REDUCED COSTX1 0.000000 1.680000X2 168.000000 0.000000X3 19.200001 0.000000X4 0.000000 0.000000X5 24.000000 0.000000X6 0.000000 1.520000 ROW SLACK OR SURPLUS DUAL PRICES2) 0.000000 3.160000

21、3) 0.000000 3.2600004) 76.000000 0.0000005) 0.000000 44.0000006) 0.000000 32.000000NO. ITERATIONS= 2,OBJECTIVE FUNCTION VALUE1) 3460.800VARIABLE VALUE REDUCED COSTX1 0.000000 1.680000X2 168.000000 0.000000X3 19.200001 0.000000X4 0.000000 0.000000X5 24.000000 0.000000X6 0.000000 1.520000 ROW SLACK OR

22、 SURPLUS DUAL PRICES2) 0.000000 3.1600003) 0.000000 3.2600004) 76.000000 0.0000005) 0.000000 44.0000006) 0.000000 32.000000NO. ITERATIONS= 2,【结果解释】,每天销售168 千克A2和19.2 千克B1, 利润3460.8(元),8桶牛奶加工成A1,42桶牛奶加工成A2, 将得到的24千克A1全部加工成B1,除加工能力外均为紧约束,OBJECTIVE FUNCTION VALUE1) 3460.800VARIABLE VALUE REDUCED COSTX1

23、 0.000000 1.680000X2 168.000000 0.000000X3 19.200001 0.000000X4 0.000000 0.000000X5 24.000000 0.000000X6 0.000000 1.520000 ROW SLACK OR SURPLUS DUAL PRICES2) 0.000000 3.1600003) 0.000000 3.2600004) 76.000000 0.0000005) 0.000000 44.0000006) 0.000000 32.000000,增加1桶牛奶使利润增长3.1612=37.92,增加1小时时间使利润增长3.26,

24、30元可增加1桶牛奶,3元可增加1小时时间,应否投资?现投资150元,可赚回多少?,投资150元增加5桶牛奶,可赚回189.6元。(大于增加时间的利润增长),【结果解释】,B1,B2的获利有10%的波动,对计划有无影响,RANGES IN WHICH THE BASIS IS UNCHANGED:OBJ COEFFICIENT RANGESVARIABLE CURRENT ALLOWABLE ALLOWABLECOEF INCREASE DECREASEX1 24.000000 1.680000 INFINITYX2 16.000000 8.150000 2.100000 X3 44.0000

25、00 19.750002 3.166667 X4 32.000000 2.026667 INFINITYX5 -3.000000 15.800000 2.533334X6 -3.000000 1.520000 INFINITY ,B1获利下降10%,超出X3 系数允许范围,B2获利上升10%,超出X4 系数允许范围,波动对计划有影响,生产计划应重新制订:如将x3的系数改为39.6计算,会发现结果有很大变化。,【结果解释】,问题1. 如何下料最节省 ?,例3 钢管下料,问题2. 客户增加需求:,节省的标准是什么?,由于采用不同切割模式太多,会增加生产和管理成本,规定切割模式不能超过3种。如何下料

26、最节省?,按照客户需要在一根原料钢管上安排切割的一种组合。,切割模式,合理切割模式的余料应小于客户需要钢管的最小尺寸,钢管下料,为满足客户需要,按照哪些种合理模式,每种模式切割多少根原料钢管,最为节省?,合理切割模式,2. 所用原料钢管总根数最少,钢管下料问题1,两种标准,1. 原料钢管剩余总余量最小,xi 按第i 种模式切割的原料钢管根数(i=1,2,7),约束,满足需求,决策变量,目标1(总余量),按模式2切割12根,按模式5切割15根,余料27米,最优解:x2=12, x5=15, 其余为0; 最优值:27。,整数约束: xi 为整数,当余料没有用处时,通常以总根数最少为目标,目标2(总

27、根数),钢管下料问题1,约束条件不变,最优解:x2=15, x5=5, x7=5, 其余为0; 最优值:25。,xi 为整数,按模式2切割15根,按模式5切割5根,按模式7切割5根,共25根,余料35米,虽余料增加8米,但减少了2根,与目标1的结果“共切割27根,余料27米” 相比,例3(生产计划问题)某工厂计划安排生产I II两种产品,已知每种单位产品的利润,生产单位产品所需设备台时及A,B两种原材料的消耗,现有原材料和设备台时的定额见下表所示:,求:(1)怎么样安排生产使得工厂利润最大?(2)产品I的单位利润降低到1.8万元,要不要改变生产计划,如果降低到1万元呢?(3)产品II的单位利润

28、增大到5万元,要不要改变生产计划?(4)如果产品I,II的单位利润同时降低了1万元,要不要改变生产计划?,建立模型:用x1,x2分别表示计划生产产品I II的数量,可建立如下模型,编写lingo程序如下:,程序执行结果:,通过执行结果对问题进行分析:,问题1:安排生产产品I为4个单位,II为2个单位,最大利润为14万元。 灵敏性分析:打开LINGO中的灵敏性分析开关,LINGO|Options | General Solver | Dual Computations | Prices and Ranges 分析结果 通过点击Lingo | Range命令获得,说明1、 (1)红框内的部分是对目

29、标函数进行的灵敏性分析,第一列是变量,第二列是对应的系数,第三列是允许增加量,第四列是允许减少量,允许增加和允许减少都是在当前系数基础上改变的。,在其他变量系数都不变的情况下有: 当x1的系数在(2-0.5,2+)=(1.5, )之间变化时,最优解不变; 当x2的系数在(3-3,3+1)=(0,4)之间变化时,最优解不变。,问题2: 产品I的单位利润降低到1.8万元,在(1.5, )之间,所以不改变生产计划;而降低到1万元,则需要重新制定生产计划;,问题3: 5万不在(0,4)范围内,故要重新制定生产计划。修改程序之后运行结果如下:,问题4: 因为两个系数同时发生变化,所以只能更改程序的数据,重新运行。运行结果和灵敏性分析结果如下:,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报