《数学建模软件lingo示例.ppt》由会员分享,可在线阅读,更多相关《数学建模软件lingo示例.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件LINDO/LINGO软件软件vLINGO:Linear INteractive General Optimizer (V10.0)v求解数学规划问题 Min Z=f(x)s.t x A(Rn)v需要掌握的几个重要方面基本语法结构掌握集合(SETS)的应用正确阅读求解报告正确理解求解状态窗口学会设置基本的求解选项(OPTIONS)主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件一、一、Lingo基本语法基本语法1、定义了目标函数为MIN
2、=.2、以一个分号“;”结尾 除SETS,ENDSETS,DATA,ENDDATA,END之外3、可以放在约束条件的右端,同时数字也可放在约束条件的左端。4、假定各变量非负。5、注释:“!”6、为、主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件建模时需要注意的几个基本问题建模时需要注意的几个基本问题 v尽量使用实数优化,减少整数约束和整数变量v尽量使用光滑优化,减少非光滑约束的个数 v尽量少使用绝对值、符号函数、多个变量求最大/最小值、四舍五入、取整函数等v尽量使用线性模型,减少非线性约束和非线性变量的个数如x/y 5 改为x5yv合理
3、设定变量上下界,尽可能给出变量初始值 v模型中使用的参数数量级要适当如小于103主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件二、二、Lingo集合集合v某公司有6个建筑工地,位置坐标为(ai,bi)(单位:公里),水泥日用量di(单位:吨)例1 选址问题v假设:料场和工地之间有直线道路v(1)现有2料场,位于A(5,1),B(2,7),记(xj,yj),j=1,2,日储量ej各有20吨。v目标:制定每天的供应计划,即从A,B两料场分别向各工地运送多少吨水泥,使总的吨公里数最小。ia8.750.55.7537.25b0.754.7556
4、.57.75d1.25547611主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件解:v决策变量:料场j到工地i的运量 cij 12维v线性规划模型vlingo表达式?location目标:吨公里约束:需求 供应主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件基本使用1 1、LingoLingo建模语言建模语言建模语言建模语言构成:构成:4个段个段v目标与约束段v集合段(SETS ENDSETS)v数据段(DATA ENDDATA)v初始段(INIT ENDINIT)v(计算段(CA
5、LC ENDCALC))主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件目标与约束段目标与约束段MODEL:Title Location Problem;sets:demand/1.6/:a,b,d;supply/1.2/:x,y,e;link(demand,supply):c;endsetsdata: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;enddatainit:endinitmin=sum(li
6、nk(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);free(Y););END集合段集合段数据段数据段初始段初始段location供应约束供应约束供应约束供应约束需求需求需求需求需求点的位置需求点的位置需求点的位置需求点的位置供需量供需量供需量供需量供应供应供应供应初始点初始点初始点初始点目标目标目标目标需求约束需求约束需求约束需求约束连接连接连接连接主
7、讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件2 2、LingoLingo的集合的集合的集合的集合SetSet及其属性及其属性及其属性及其属性AttributeAttributev例1v建筑工地位置坐标(ai,bi)、水泥日用量di:对每个建筑工地(6个)都有一个对应的值都是一个由6个元素组成的数组是已知的v料场位置坐标(xj,yj)、日储量ej对每个料场(2个)都有一个对应的值都是一个由2个元素组成的数组目前是已知的v料场到建筑工地的供应计划 c i j 对每个料场与建筑工地之间(62)都有一个对应的值是一个62 个元素组成的矩阵是未知
8、数vLINDO无数组,每个变量输入麻烦Lingo的集合Set下标集合100个工地?主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件集合Set及其属性Attributev定义数组下标集合demand/1.6/表示6个建筑工地a,b,d称为该集合的属性表示坐标(ai,bi)、水泥日用量div定义数组下标集合supply/1.2/表示6个建筑工地该集合的属性x,y,e表示坐标(xj,yj)、日储量ej v定义数组下标集合link(demand,supply)表示62个料场到建筑工地的连接该集合的属性c表示每个料场与建筑工地之间供应计划c i j
9、1到6的整数主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件v建立下标集合Lingo 建模语言集合段 数据段需求点的位置需求点的位置需求点的位置需求点的位置供需量供需量供需量供需量sets:demand/1.6/:a,b,d;supply/1.2/:x,y,e;link(demand,supply):c;endsetsdata: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;enddatav赋值需求需求需求
10、需求供应供应供应供应连接连接连接连接主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件3 3、定义集合定义集合定义集合定义集合SetSetv直接把元素列举出来v定义格式 集合名 元素列表 属性列表 setname/member_list/:attribute_list;可选项v元素列表显式列举法列出全部元素,用逗号或空格分开隐式列举法 1.nv属性列表缺省集合可在程序中作为一循环变量使用,构造更复杂的派生集合v元素列表缺省必须在数据段给出元素列表赋值基本集合基本集合primary set主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云
11、龙数学建模课件数学建模课件数学建模课件数学建模课件派生集合派生集合derived setv基于其它集合而派生出来的二维或多维集合v定义格式 集合名 父集合列表 元素列表 属性列表 setname(parent_set_list)/member_list/:attribute_list;v元素列表缺省所有组合稠密集合稠密集合、或数据段列表赋值v元素列表稀疏集合稀疏集合元素列表法枚举元素过滤法利用过滤条件setname(parent_set_list)|filtrate_condition:attribute_list;主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课
12、件数学建模课件数学建模课件v建立 下标集合例1需求点的位置需求点的位置需求点的位置需求点的位置供需量供需量供需量供需量sets:demand/1.6/:a,b,d;supply/1.2/:x,y,e;link(demand,supply):c;endsetsdata: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;enddatav赋值需求需求需求需求供应供应供应供应连接连接连接连接基本基本集合集合派生派生集合集合主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:
13、孙云龙数学建模课件数学建模课件数学建模课件数学建模课件集合的类型 集合集合 派生集合派生集合 基本集合基本集合 稀疏集合稀疏集合 稠密集合稠密集合 元素列表法元素列表法 元素过滤法元素过滤法 直接列举法直接列举法 隐式列举法隐式列举法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;ENDSETSSETS:STUDEN
14、TS/S1.S8/;PAIRS(STUDENTS,STUDENTS)|&2#GT#&1:BENEFIT,MATCH;ENDSETS主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件三、三、Lingo运算符和函数运算符和函数v过滤条件使用结果:0 11 1、运算符及其优先级、运算符及其优先级、运算符及其优先级、运算符及其优先级逻辑运算符#NOT#否定#EQ#相等#NE#不等#AND#并且#OR#或者#GT#大于#GE#大于等于#LT#小于#LE#小于等于算术运算符+-*/关系运算符(=)主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙
15、数学建模课件数学建模课件数学建模课件数学建模课件v运算符的优先级最高最低#NOT#(负号)*/+(减法)#EQ#NE#GT#GE#LT#LE#AND#OR#v先左后右v先括号内,后括号外主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件vLingo内部函数”2 2、LingoLingo基本数学函数基本数学函数基本数学函数基本数学函数ABS(X)SIN(X)COS(X)TAN(X)LOG(X)EXP(X)SMAX(list)SMIN(list)SIGN(X)FLOOR(X)主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数
16、学建模课件数学建模课件数学建模课件3 3、LingoLingo集合循环函数集合循环函数集合循环函数集合循环函数v难点!重点!v循环操作函数集合上的元素下标:集合函数名function(setname(set_index_list)|condition:expression_list);集合名集合索引列表过滤条件表达式FORMAXMINSUM PROD主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件v目标:吨公里for(demand(i):sum(supply(j):c(i,j)=d(i););for(supply(i):sum(deman
17、d(j):c(j,i)=e(i););例1v约束:需求 供应min=sum(link(i,j):c(i,j)*(x(j)-a(i)2+(y(j)-b(i)2)(1/2);主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件v默认:?4 4、LingoLingo变量定界函数变量定界函数变量定界函数变量定界函数BND(L,X,N)L,UFREE(X)自由变量BIN(X)0-1变量GIN(X)整数变量例1v约束:非负for(supply:free(X);free(Y););主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模
18、课件数学建模课件数学建模课件4 4、LingoLingo条件判断函数条件判断函数条件判断函数条件判断函数v分段函数IF(logical_condition,true_result,false_result)vOKv例1主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件目标与约束段目标与约束段MODEL:Title Location Problem;sets:demand/1.6/:a,b,d;supply/1.2/:x,y,e;link(demand,supply):c;endsetsdata:a=1.25,8.75,0.5,5.75,3,
19、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;enddatainit:endinitmin=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);free(Y););END集合段集合段数据段数据段初始段初始段location供应约束供应约束供应约束供应约束
20、需求需求需求需求需求点的位置需求点的位置需求点的位置需求点的位置供需量供需量供需量供需量供应供应供应供应初始点初始点初始点初始点目标目标目标目标需求约束需求约束需求约束需求约束连接连接连接连接结果:总吨公里数为结果:总吨公里数为结果:总吨公里数为结果:总吨公里数为136.2136.2主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件v2)改建两个新料场,需要确定新料场位置(xj,yj)和运量cij,在其它条件不变下使总吨公里数最小。决策变量:决策变量:ci j,(xj,yj)16维维非线性规划模型非线性规划模型例1 选址问题目标:吨公里约束
21、:需求 供应主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件LINGO集合段集合段数据段数据段初始段初始段目标与目标与约束段约束段 最优:最优:89.8835(吨公里吨公里)LP:移到数据段移到数据段location局部局部主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件边界边界边界边界主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件例2 连续投资问题v设有一笔资金M=10万,未来5年内可以投资4个项目。其中项目1要到第二年末才
22、可回收资金,本利为115%;项目2只能在第三年初投资,到第五年末回收本利125%,但不超过3万;项目3在第二年初投资,第五年末回收本利140%,但不超过4万;项目4每年初投资,年末回收本利106%;试确定5年内如何安排投资?年一二三四五限额回收时间本利项目1第二年末115%项目23万第五年末125%项目34万第五年末140%项目4年末106%主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件v目标v 第五年末总资金 T 最大。决策变量:各年用于各项目的投资额。记 xij 为第 i 年用于第 j 项目的投资额;建立关系:T=1.15x41+1
23、.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年一二三四五限额回收时间本利项目1第二年末115%项目23万第五年末125%项目34万第五年末140%项目4年末106%主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件v数学模型:主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件v求解:v解:X11 6.226415X14 3.773585 X23 4.000000 X32 3.000000 X34 4.160377 X41 4.410000 lingo2SUN主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙主讲人:孙云龙数学建模课件数学建模课件数学建模课件数学建模课件endend
限制150内