数学建模软件lingo示例PPT课件.ppt

上传人:rrsccc 文档编号:9506805 上传时间:2021-03-01 格式:PPT 页数:31 大小:470KB
返回 下载 相关 举报
数学建模软件lingo示例PPT课件.ppt_第1页
第1页 / 共31页
数学建模软件lingo示例PPT课件.ppt_第2页
第2页 / 共31页
数学建模软件lingo示例PPT课件.ppt_第3页
第3页 / 共31页
数学建模软件lingo示例PPT课件.ppt_第4页
第4页 / 共31页
数学建模软件lingo示例PPT课件.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《数学建模软件lingo示例PPT课件.ppt》由会员分享,可在线阅读,更多相关《数学建模软件lingo示例PPT课件.ppt(31页珍藏版)》请在三一文库上搜索。

1、Module 00-1,LINDO /LINGO软件,LINGO: Linear INteractive General Optimizer (V10.0) 求解数学规划问题 Min Z = f (x) s.t x A ( Rn ) 需要掌握的几个重要方面 基本语法结构 掌握集合(SETS)的应用 正确阅读求解报告 正确理解求解状态窗口 学会设置基本的求解选项(OPTIONS),Module 00-2,一、Lingo基本语法,1、定义了目标函数为MIN=. 2、以一个分号“;”结尾 除SETS, ENDSETS, DATA , ENDDATA, END之外 3、可以放在约束条件的右端,同时数字

2、也可放在约束条件的左端。 4、假定各变量非负。 5、注释:“!” 6、为、,Module 00-3,建模时需要注意的几个基本问题,尽量使用实数优化,减少整数约束和整数变量 尽量使用光滑优化,减少非光滑约束的个数 尽量少使用绝对值、符号函数、多个变量求最大/最小值、四舍五入、取整函数等 尽量使用线性模型,减少非线性约束和非线性变量的个数 如x/y 5 改为x5y 合理设定变量上下界,尽可能给出变量初始值 模型中使用的参数数量级要适当 如小于103,Module 00-4,二、Lingo集合,某公司有6个建筑工地,位置坐标为(ai,bi) (单位:公里),水泥日用量di (单位:吨),例1 选址问

3、题,假设:料场和工地之间有直线道路 (1)现有2料场,位于A(5,1),B(2,7),记(xj,yj),j=1,2, 日储量ej各有20吨。 目标:制定每天的供应计划,即从A, B两料场分别向各工地运送多少吨水泥,使总的吨公里数最小。,Module 00-5,解:,决策变量:料场j到工地i的运量 cij 12维 线性规划模型 lingo表达式?,location,目标:吨公里,约束:需求 供应,Module 00-6,基本使用,1、Lingo建模语言,构成:4个段,目标与约束段 集合段(SETS ENDSETS) 数据段(DATA ENDDATA) 初始段(INIT ENDINIT) (计算段

4、 (CALC ENDCALC)),Module 00-7,目标与约束段,MODEL: Title Location Problem; sets: demand/1.6/:a,b,d; supply/1.2/:x,y,e; link(demand,supply):c; endsets data: a=1.25,8.75,0.5,5.75,3,7.25; b=1.25,0.75,4.75,5,6.5,7.75; d=3,5,4,7,6,11; e=20,20; x,y=5,1,2,7; enddata init: endinit min=sum(link(i,j):c(i,j)*(x(j)-a(i

5、)2+(y(j)-b(i)2)(1/2); for(demand(i):sum(supply(j):c(i,j)=d(i);); for(supply(i):sum(demand(j):c(j,i)=e(i);); for(supply: free(X); free(Y); ); END,集合段,数据段,初始段,location,供应约束,需求,需求点的位置,供需量,供应,初始点,目标,需求约束,连接,Module 00-8,2、Lingo的集合Set及其属性Attribute,例1 建筑工地位置坐标 (ai,bi) 、水泥日用量di : 对每个建筑工地(6个)都有一个对应的值 都是一个由6个

6、元素组成的数组是已知的 料场位置坐标 (xj,yj) 、日储量ej 对每个料场(2个)都有一个对应的值 都是一个由2个元素组成的数组目前是已知的 料场到建筑工地的供应计划 c i j 对每个料场与建筑工地之间(62)都有一个对应的值 是一个62 个元素组成的矩阵是未知数 LINDO无数组,每个变量输入麻烦,Lingo的集合Set下标集合,100个工地?,Module 00-9,集合Set及其属性Attribute,定义数组下标集合demand/1.6/表示6个建筑工地 a,b,d称为该集合的属性 表示坐标(ai,bi) 、水泥日用量di 定义数组下标集合supply/1.2/表示6个建筑工地

7、该集合的属性x,y,e 表示坐标(xj,yj) 、日储量ej 定义数组下标集合link(demand,supply)表示62个料场到建筑工地的连接 该集合的属性c 表示每个料场与建筑工地之间供应计划c i j,1到6的整数,Module 00-10,建立下标集合,Lingo 建模语言集合段 数据段,需求点的位置,供需量,sets: demand/1.6/:a,b,d; supply/1.2/:x,y,e; link(demand,supply):c; endsets,data: a=1.25,8.75,0.5,5.75,3,7.25; b=1.25,0.75,4.75,5,6.5,7.75;

8、d=3,5,4,7,6,11; e=20,20; x,y=5,1,2,7; enddata,赋值,需求,供应,连接,Module 00-11,3、定义集合Set,直接把元素列举出来 定义格式 集合名 元素列表 属性列表 setname /member_list/ : attribute_list; 可选项 元素列表 显式列举法列出全部元素, 用逗号或空格分开 隐式列举法 1.n 属性列表缺省集合可在程序中作为一循环变量使用,构造更复杂的派生集合 元素列表缺省必须在数据段给出元素列表赋值,基本集合primary set,Module 00-12,派生集合derived set,基于其它集合而派生

9、出来的二维或多维集合 定义格式 集合名 父集合列表 元素列表 属性列表 setname(parent_set_list) /member_list/ : attribute_list; 元素列表缺省 所有组合稠密集合、或数据段列表赋值 元素列表稀疏集合 元素列表法枚举 元素过滤法利用过滤条件 setname(parent_set_list) |filtrate_condition :attribute_list;,Module 00-13,建立 下标集合,例1,需求点的位置,供需量,sets: demand/1.6/:a,b,d; supply/1.2/:x,y,e; link(demand,

10、supply):c; endsets,data: a=1.25,8.75,0.5,5.75,3,7.25; b=1.25,0.75,4.75,5,6.5,7.75; d=3,5,4,7,6,11; e=20,20; x,y=5,1,2,7; enddata,赋值,需求,供应,连接,基本 集合,派生 集合,Module 00-14,集合的类型,集合 派生集合 基本集合 稀疏集合 稠密集合 元素列表法 元素过滤法 直接列举法 隐式列举法,setname /member_list/ : attribute_list;,setname(parent_set_list) /member_list/ :

11、attribute_list;,SETS: CITIES /A1,A2,A3,B1,B2/; ROADS(CITIES, CITIES)/ A1,B1 A1,B2 A2,B1 A3,B2/:D; ENDSETS,SETS: STUDENTS /S1.S8/; PAIRS( STUDENTS, STUDENTS) | ENDSETS,Module 00-15,三、Lingo运算符和函数,过滤条件使用结果:0 1,1、运算符及其优先级,Module 00-16,运算符的优先级,最高最低,先左后右 先括号内,后括号外,Module 00-17,Lingo内部函数”,2、Lingo基本数学函数,Mod

12、ule 00-18,3、Lingo集合循环函数,难点!重点!,循环操作函数集合上的元素下标:,集合函数名,function(setname (set_index_list)|condition:expression_list);,集合名,集合索引列表,过滤条件,表达式,FORMAXMINSUM PROD,Module 00-19,目标:吨公里,for(demand(i):sum(supply(j):c(i,j)=d(i);); for(supply(i):sum(demand(j):c(j,i)=e(i););,例1,约束:需求 供应,min=sum(link(i,j):c(i,j)*(x(j

13、)-a(i)2+(y(j)- b(i)2)(1/2);,Module 00-20,默认:?,4、Lingo变量定界函数,例1,约束:非负,for(supply: free(X); free(Y); );,Module 00-21,4、Lingo条件判断函数,分段函数,IF(logical_condition, true_result, false_result),OK 例1,Module 00-22,目标与约束段,MODEL: Title Location Problem; sets: demand/1.6/:a,b,d; supply/1.2/:x,y,e; link(demand,supp

14、ly):c; endsets data: a=1.25,8.75,0.5,5.75,3,7.25; b=1.25,0.75,4.75,5,6.5,7.75; d=3,5,4,7,6,11; e=20,20; x,y=5,1,2,7; enddata init: endinit min=sum(link(i,j):c(i,j)*(x(j)-a(i)2+(y(j)-b(i)2)(1/2); for(demand(i):sum(supply(j):c(i,j)=d(i);); for(supply(i):sum(demand(j):c(j,i)=e(i);); for(supply: free(X)

15、; free(Y); ); END,集合段,数据段,初始段,location,供应约束,需求,需求点的位置,供需量,供应,初始点,目标,需求约束,连接,结果:总吨公里数为136.2,Module 00-23,2)改建两个新料场,需要确定新料场位置(xj,yj)和运量cij ,在其它条件不变下使总吨公里数最小。,决策变量: ci j,(xj,yj)16维,非线性规划模型,例1 选址问题,目标:吨公里,约束:需求 供应,Module 00-24,LINGO,集合段,数据段,初始段,目标与 约束段,最优:89.8835(吨公里 ),LP:移到数据段,location,局部,Module 00-25,

16、边界,Module 00-26,例2 连续投资问题,设有一笔资金M=10万,未来5年内可以投资4个项目。其中项目1要到第二年末才可回收资金,本利为115%;项目2只能在第三年初投资,到第五年末回收本利125%,但不超过3万;项目3在第二年初投资,第五年末回收本利140%,但不超过4万;项目4每年初投资,年末回收本利106%;试确定5年内如何安排投资?,Module 00-27,目标,第五年末总资金 T 最大。 决策变量:各年用于各项目的投资额。记 xij 为第 i 年用于第 j 项目的投资额; 建立关系:T=1.15x41+1.25x32+1.4x23+1.06x54 第一年投资:x11+x14=10; 第二年投资:x21+x23+x24=1.06x14,x234 第三年投资:x31+x32+x34=1.15x11+1.06x24;x323 第四年:x41+x44=1.15x21+1.06x34 第五年投资:x54=1.15x31+1.06x44,Module 00-28,数学模型:,Module 00-29,求解:,解: X11 6.226415 X14 3.773585 X23 4.000000 X32 3.000000 X34 4.160377 X41 4.410000,lingo2,end,个人观点供参考,欢迎讨论,

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1