第二讲最优化建模与Lingo导引课件

上传人:E**** 文档编号:91689682 上传时间:2019-07-01 格式:PPT 页数:61 大小:1.75MB
返回 下载 相关 举报
第二讲最优化建模与Lingo导引课件_第1页
第1页 / 共61页
第二讲最优化建模与Lingo导引课件_第2页
第2页 / 共61页
第二讲最优化建模与Lingo导引课件_第3页
第3页 / 共61页
第二讲最优化建模与Lingo导引课件_第4页
第4页 / 共61页
第二讲最优化建模与Lingo导引课件_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《第二讲最优化建模与Lingo导引课件》由会员分享,可在线阅读,更多相关《第二讲最优化建模与Lingo导引课件(61页珍藏版)》请在金锄头文库上搜索。

1、最优化建模与 LINGO软件的应用,Go !,最优化建模,x决策变量,f(x)目标函数,gi(x)0约束条件,数学规划,线性规划(LP) 二次规划(QP) 非线性规划(NLP),纯整数规划(PIP) 混合整数规划(MIP),整数规划(IP),0-1整数规划 一般整数规划,连续规划,数学规划,线性规划(LP) 二次规划(QP) 非线性规划(NLP),连续规划,数学规划,线性规划(LP) 二次规划(QP) 非线性规划(NLP),连续规划,数学规划,线性规划(LP) 二次规划(QP) 非线性规划(NLP),LINGO导引,LINGO的主要功能和特点 1.求解线性规划和非线性规划问题 2.模型输入简练

2、直观 3.运行速度快 计算能力强 4.内置建模语言 提供内部函数 较少语句直观描述大规模优化模型 5.引入集合 容易建模 6.数据交换方便(与EXCEL和数据库),需要掌握的几个重要方面,掌握集合(SETS)的应用; 正确阅读求解报告; 正确理解求解状态窗口; 学会设置基本的求解选项(OPTIONS) ; 掌握与外部文件的基本接口方法,LINGO软件使用导引,LINGO的基本用法,模型窗口”LINGO Model-LINGO1”用于输入模型 可用基本类似数学公式的形式输入小模型,LINGO的语法规则,最大值MAX=,最小值MIN=,不需要写“ST” 语句必须以分号”;”结束 每行可多个语句 语

3、句可跨行 变量名由字母、数字和下划线组成 以字母开头 长度 不超32个字符 不区分大小写 默认决策变量非负 其他要求需要说明 模型以MODEL:开头,以END结束,“”(或“=”(或“=”)功能相同; 变量与系数间有乘号运算符“* ”; 语句的顺序不重要;行号自动产生或人为定义。 行中注有“!”符号的后面部分为注释; 在模型的开头可以用“title”对模型命名; 每行(目标,约束,说明语句)后增加“;”; 开头都是函数调用; 模型由一系列语句组成,适当缩进,增强可读性,例 工厂有两条生产线,分别生产M和P两种型号的产品,利润分别为200元/个和300元/个,生产能力分别为100和120,生产一

4、个产品分别需1个和2个劳动日,工厂每天能提供160个劳动日。假设原材料不受限制,如何安排生产计划,利润最大。 设生产计划为生产x1个M和x2个P,数学模型为,LINGO求解,1.输入模型 MODEL: MAX=200*X1+300*X2; X1=100;X2=120; X1+2*X2=160; END 2.模型存盘 选File|Save As 3.模型求解 选Lingo|Solve(Ctrl+s),LINGO求解,4.求解结果 Lingo Solver Status 变量个数 约束条件个数 优化状态 非零变量个数 耗费内存 所用时间 Solition Report 计算步数 目标函数值 变量值

5、 Golbal optimal solution found at iteration:2 Objective value: 29000.00 Variable value Reduced cost (缩减成本系数) X1 100.000 0.000000 X2 30.000 0.000000 Row Slack (松池) or Surplus (剩余) Dual Price(影子价格) 29000.00 1 0.000000 50.00000 90.00000 0.000000 4 0.000000 150.0000 注 Row 模型中行号 Slack=右-左(=),LINGO编程,LING

6、O模型的基本组成 1.集合定义部分 集合是一组相关对象构成的组合,代表模型中的实际事物,并与数学变量和常量联系起来,实际问题到数学问题的抽象,集合使用前应定义,内容为:集合名称、集合内的成员、集合的属性(命名规则同变量) 原始集:集合名称/集合内的成员/:集合的属性 如:WH/W1W6/:AI;VD/V1V8/:Dj 派生集:集合名称 对应的初始集合 集合成员 集合的属性 集合名称( 对应的初始集合,对应的初始集合): 集合的属性 如:LINKS(WH,VD):C,X; 集合定义部分以语句SETS:开头,以语句ENDSETS结束,集合的类型,集合 派生集合 原始集合 稀疏集合 稠密集合 元素列

7、表法 元素过滤法 直接列举法 隐式列举法,setname /member_list/ : attribute_list;,setname(parent_set_list) /member_list/ : attribute_list;,SETS: CITIES /A1,A2,A3,B1,B2/; ROADS(CITIES, CITIES)/ A1,B1 A1,B2 A2,B1 A3,B2/:D; ENDSETS,SETS: STUDENTS /S1S8/; PAIRS( STUDENTS, STUDENTS) | ENDSETS,集合元素的隐式列举,LINGO模型的基本组成 2.数据初始化部分

8、(数据段) LINGO建模语言通过数据初始化部分来实现对已知属性赋予初始值 数据初始化部分以语句DATA:开始,以语句 ENDDATA结束 如:DATA: AI=60,55,51,43,41,52;DJ=35,37,22,32,41,32,43,38; C=6,2,6,7,4,2,5,9 4,9,5,3,8,5,8,2 ENDDATA,LINGO模型的基本组成 3.目标函数和约束条件 内部函数:SUM,FOR SUM是LINGO的内部函数,功能是对某个集合的所有成员求指定表达式的和,有两个参数,其一是集合名称,指定对该集合的所有成员求和,其二是一个表达式,表示求和运算对该表达式进行. FOR是

9、LINGO的内部函数,功能是对某个集合的所有成员分别派生一个约束表达式有两个参数,其一是集合名称,表示对该集合的所有成员分别派生一个约束表达式,其二是约束表达式的具体内容. 注: :SUM和FOR可以嵌套使用,例 运输问题 某公司有6个供货栈(仓库),库存货物总数分别为AI=60,55,51,43,41,52,现有8个客户各要一批货,数量分别为35,37,22,32,41,32,43,38,各供货栈到8个客户的单位运价如表1. 如何确定各供货栈到8个客户的货物调运量,使总的运费最小?,表1 各供货栈到8个客户的单位运价,数学模型的建立,MODEL: SETS: WH/W1W6/:AI;VD/V

10、1V8/:Dj; LINKS(WH,VD):C,X; ENDSETS DATA: AI=60,55,51,43,41,52; DJ=35,37,22,32,41,32,43,38; C=6,2,6,7,4,2,5,9 4,9,5,3,8,5,8,2 5,2,1,9,7,4,3,3 7,6,7,3,9,2,7,1 2,3,9,5,7,2,6,5 5,5,5,5,8,1,4,3 ENDDATA,LINGO程序,求解Lingo|Solve Solition Report Golbal optimal solution found at step:17 Objective value: 664.000

11、0 Variable value Reduced cost (缩减成本系数) X(w1,v1) 0.000 5.000000 X(w1,v2) 19.000 0.000000 ,MIN=SUM(LINKS(I,J):C(I,J)*X(I,J); FOR(WH(I):SUM(VD(J):X(I,J)=AI(I); FOR(VD(J):SUM(WH(I):X(I,J)=DJ(J); END,LINGO的菜单,1.File(文件菜单) Export file(输出特殊格式文件) Database User Info(用户基本信息) 2.Edit Menu(编辑菜单) Paste Special(选择

12、性粘贴) Go to Line(光标移到某一行) Match Parenthesis(匹配括号) Insert New Object(插入新对象),LINGO的菜单,3.LINGO Solution(求解结果) 打开求解结果对话框,文本或图表方式查看结果 Range(灵敏性分析) 产生当前模型的灵敏性分析报告:最优解不变目标函数系 数的变化范围;影子价格和缩减系数不变,约束条件右端常数的变化范围(用时需激活) Options(选项设置) Generate(生成模型展开式) Picture(生成图形),LINGO的菜单,3.LINGO Debug(调试) Model Statistics(模型资

13、料统计) Look(查看),LINGO的菜单,4.Window Command Window(命令行窗口) Status Window(状态窗口) 5.Help Help Topics(帮助主题) Register(在线注册) Auto Update(自动更新) About Lingo(关于Lingo),Lingo运算,1.算术运算 乘方,*乘,/除,+加,-减,2.逻辑运算,Lingo运算,3.关系运算 = 表达式左右相等 = 表达式左边大于或等于右边 注:Lingo没有单独的 AB,是一个小的正数,Lingo函数,Lingo提供了五十几个内部函数,所有函数都以字符开头 数学函数 ABS(x

14、),SIN(X),COS(x),TAN(X), LOG(X),EXP(X),SIGN(X), SMAX(X1,Xn),SMIN(X1,Xn) FLOOR(X),LGM(X),Lingo函数,集合函数 集合是Lingo中最重要的概念,使用集合函数,用简单的语句可表达目标函数和约束条件 FOR(S|TJ:E) 常用在约束条件中,表示对满足TJ的S中的成员都生成一个表达式E; SUM(S|TJ:E) 对集合S中的每个成员,分别得到E的值,返回所有这些值的和; MAX(S|TJ:E)对集合S中的每个成员,分别得到E的值, 返回所有这些值中的最大值; SIZE(S)返回集合S中的成员个数,集合函数,四个

15、集合循环函数:FOR、SUM 、 MAX、MIN function( setname ( set_index_list) | condition : expression_list);,objective MAX = SUM( PAIRS( I, J): BENEFIT( I, J) * MATCH( I, J); FOR(STUDENTS( I): constraints SUM( PAIRS( J, K) | J #EQ# I #OR# K #EQ# I: MATCH( J, K) =1); FOR(PAIRS( I, J): BIN( MATCH( I, J); MAXB=MAX(PAIRS( I, J): BENEFIT( I, J); MINB=MIN(PAIRS( I, J): BENEFIT( I, J);,Example:,Lingo函数,变量定界函数 该函数可以改变变量的值或界 BIN(X) 限制X为0或1,用于0-1规划; BND(L,X,U) 限制L=X=U; GIN(X) 限制X为整数,用于整数规划 FREE(X) 取消对变量的默认为非负数的限制,即X可取任意实数值 注:用BND(L,X,U)代替约束条件

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号