lingo自学笔记课件_第1页
lingo自学笔记课件_第2页
lingo自学笔记课件_第3页
lingo自学笔记课件_第4页
lingo自学笔记课件_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、LINGO学习笔记(注意:MATLABdijkstra算法在最后一例写出,在真正比赛中不要完整的复制粘贴,否则我会害了你们的!)一、逻辑运算符LINGO 中的辑运符有9 种,可以分为两类: (1)#AND#(与),#OR#(或),#NOD#(非),这3个运算是逻辑值之间的运算,也就是它们操作的对象本身必须已经是逻辑值或逻辑表达式.计算结果也是逻辑值;(2)#EQ#(等于).#NE#(不等于),#GT#(大于),#GE#(大于等于),#LT#(小于).#LE#(小于等于): 这6 个操作实际上是"数与数之间"的比较,也就是它们操作的对象本身必须是两个数。表1-1 运算符的优先

2、级 优先级 运算符 最高 #NOT# -(负号) * / + - (减法) #EQ# #NE# #GT# #GE# #LT# #LE# #AND# #OR# 最低 < = > 二、基本的数学函数 在LINGO 中建立优化模型时引用大量的内部函数这些函数以""负号打头. LINGO 中包括相当丰富的数学函数,这些函数的用法非常简单,我们直接在下一一列出 ABS(X);绝对值函数,返回X的绝对值 COS(X);余弦函数,返回X的余弦值(X 的单位是弧度) EXP(X)指数函数,返回的值(其中e为自然对数值的底,即2.718281) FLOOR(X);取整函数,返回X

3、的整数部分(向最靠近0的方向取整). LGM(X):返回X 的伽马(Gamma)函数的自然对数值(当X为整数时LGM(X)=LOG(X-1)!; 当X不为整数时,采用线性插值得到结果) LOG(X):自然对数函数,返回自然对数值 MOD(X,Y): 模函数,返回X对Y的取模的结果,即X除以Y的余数,这里X余Y应是整数 POW(X,Y):指数函数,返回的值.SIGN(X):符号函数,返回X的符号值(X<0是返回-1,X>=0时返回+1) SIN(X):正弦函数,返回X的正弦值(X的单位是弧度)SMAX(list):最大值函数,返回一列数(list)的:最大值 SMIN.(list):

4、最小值函数,返回一列数(list)的:最小值 SQR(X) :平方函数,返回X的 平方即(X*X)的值 SQRT(X):平方根函数,返回X的平方根的值 TAN(X);正切函数,返回X的正切值(X的单位是弧度)。 三、集合循环函数 集合循环函数是指对集合上的元素(下标)进行循环操作的函数,如前我们用过的FOR和SUM等,一般用法如下: function(setname(set_index_list)| condition:expression_list); 其中: function是集合函数名,是FOR,MAX,PROD,SUM五种之一; setname是集合名; set_index_list是

5、集合索引列表(不需使用索引时可以省略); condition是逻辑表达式描述的过虑条件(通常含有索引,无条件时可省略); expression_list是一个表达式(对FOR函数,可以是一组表达式)。 五个集合函数名的含义如下: FOR(集合元素循环函数):对集合setname的每个元素独立地生成表达式,表达式由expression_list描述(通常是优化问题的约束)。 MAX(集合属性的最大值函数):返回集合setname上的表达式的最大值。 MIN(集合属性的最小值函数):返回集合setname上的表达式的最小值。 PROD(集合属性的乘积函数):返回集合setname上的表达式的积。

6、SUM(集合属性的求和函数):返回集合setname上的表达式的和。 四、变量定界函数 变量定界函数对变量的取值范围附加限制,共有以下四种函数: BND(L,X,U):限制L<=X<=U;BIN(X):即限制X为0或1;FREE(X):取消对X的符号限制(即可取负数、0后正数);GIN(X):限制X为整数.例1.连续函数的最值问题求下列函数的最大值和最小值max=(x-x3+y3-y5)*exp(-(x2+y2);bnd(-2,x,2);bnd(-3,y,3); Local optimal solution found. Objective value: 0.5186037 Inf

7、easibilities: 0.000000 Extended solver steps: 5 Total solver iterations: 102 Model Class: NLP Total variables: 3 Nonlinear variables: 2 Integer variables: 0 Total constraints: 2 Nonlinear constraints: 1 Total nonzeros: 3 Nonlinear nonzeros: 2Variable Value Reduced CostX 0.4809119E-01 0.000000Y -1.72

8、8829 0.2356938E-08Row Slack or Surplus Dual Price1 0.5186037 1.000000 min=(x-x3+y3-y5)*exp(-(x2+y2);bnd(-2,x,2);bnd(-3,y,3); Local optimal solution found. Objective value: -0.5186037 Infeasibilities: 0.000000 Extended solver steps: 5 Total solver iterations: 78 Model Class: NLP Total variables: 3 No

9、nlinear variables: 2 Integer variables: 0 Total constraints: 2 Nonlinear constraints: 1 Total nonzeros: 3 Nonlinear nonzeros: 2Variable Value Reduced CostX -0.4809120E-01 -0.1040013E-07Y 1.728829 0.5431772E-07Row Slack or Surplus Dual Price1 -0.5186037 -1.000000例2.纯整数线性规划问题(PILP)某架货机有三个货舱:前仓、中仓、后仓。三

10、个货舱所能装载的货物的最大重量和体积都有限制,如表1-7 所示。为了保持飞机的平衡,三个货舱中实际装载货物的重量必须与其最大容许重量成比例。现有四类货物供该货机本次飞行装运,其有关信息如表1-8 所示,最后一列指装运后所获得的利润。应如何安排装运,使该获机本次飞行获利最大?请建立该问题的优化模型。 表2-1 三个货舱装载货物的最大容许重量和体积前仓中仓后仓重量限制/t10168体积限制/ m³680087005300表2-2 四类装运货物的信息 重量/t空间/( m³/t)利润/(元/t)货物1 184803100货物2 156503800货物3 235803500货物4

11、123902850设货物i的重量为Mi,空间大小为Vi,利润为Ci,i=1,2,3,4;设前仓,中仓,后仓分别为j仓,其对重量的限制分别为LIMITMj,对体积的限制分别为LIMITVj,将货物i装载在j仓的数量为Xij,j=1,2,3;则优化模型为:其lingo程序为:sets:A/1.4/:M,V,C;B/1.3/:LIMITM,LIMITV;LINK(A,B):X;ENDSETSDATA:LIMITM=10 16 8;LIMITV=6800 8700 5300;M=18 15 23 12;V=480 650 580 390;C=3100 3800 3500 2850;ENDDATAMAX

12、=SUM(A(I):SUM(B(J):C(I)*X(I,J);FOR(B(J):SUM(A(I):M(I)*X(I,J)<=LIMITM(J);FOR(B(J):SUM(A(I):V(I)*X(I,J)<=LIMITV(J);运行结果: Global optimal solution found. Objective value: 8613.333 Infeasibilities: 0.000000 Total solver iterations: 3 Model Class: LP Total variables: 12 Nonlinear variables: 0 Intege

13、r variables: 0 Total constraints: 7 Nonlinear constraints: 0 Total nonzeros: 36 Nonlinear nonzeros: 0 Variable Value Reduced Cost M( 1) 18.00000 0.000000 M( 2) 15.00000 0.000000 M( 3) 23.00000 0.000000 M( 4) 12.00000 0.000000 V( 1) 480.0000 0.000000 V( 2) 650.0000 0.000000 V( 3) 580.0000 0.000000 V(

14、 4) 390.0000 0.000000 C( 1) 3100.000 0.000000 C( 2) 3800.000 0.000000 C( 3) 3500.000 0.000000 C( 4) 2850.000 0.000000 LIMITM( 1) 10.00000 0.000000 LIMITM( 2) 16.00000 0.000000 LIMITM( 3) 8.000000 0.000000 LIMITV( 1) 6800.000 0.000000 LIMITV( 2) 8700.000 0.000000 LIMITV( 3) 5300.000 0.000000 X( 1, 1)

15、 0.000000 1460.000 X( 1, 2) 0.000000 1460.000 X( 1, 3) 0.000000 1460.000 X( 2, 1) 0.6666667 0.000000 X( 2, 2) 1.066667 0.000000 X( 2, 3) 0.5333333 0.000000 X( 3, 1) 0.000000 2326.667 X( 3, 2) 0.000000 2326.667 X( 3, 3) 0.000000 2326.667 X( 4, 1) 0.000000 190.0000 X( 4, 2) 0.000000 190.0000 X( 4, 3)

16、0.000000 190.0000 Row Slack or Surplus Dual Price 1 8613.333 1.000000 2 0.000000 253.3333 3 0.000000 253.3333 4 0.000000 253.3333 5 6366.667 0.000000 6 8006.667 0.000000 7 4953.333 0.000000所以最优分配方案是装载0.667吨货物2到前仓,装载1.067吨货物2到中仓,装载0.533吨货物2到后仓,可获得最大利润,最大利润为8613.33元例3.非线性优化问题(NLP)建筑工地的位置(用平面坐标a,b表示,距离

17、单位:km)及水泥日用量d(单位:t)由表3-1给出。目前有两个临时料场位于P(5,1),Q(2,7),日储量各有20t。请回答以下两个问题: (1)假设从料场到工地之间句均有直线道路相连,试制定每天的供应计划,即从A,B 两料场分别向各工地运送多少吨水泥,使总的吨公里数最小。(2)为了进一步减少吨公里数,打算舍弃目前的两个料场,改建两个新的料场,日储量仍各为20 t ,问应建在何处,与目前相比节省的吨公里数有多大。 表3-1 工地的位置(a b)及水泥日用量d 1 2 3 4 5 6 a 1.25 8.75 0.5 5.75 3 7.25 b 1.25 0.75 4.75 5 6.5 7.7

18、5 d 3 5 4 7 6 11 记工地的位置为(ai,bi), 水泥日用量为di,i=1,2,L,6;料场位置为(xi,yi),日储量为ej, j=1,2;从料场j向工地i的运送量为.cij决策变量:在问题(1)中,决策变量就是料场j向工地i的运送量cij;在问题(2)中,决策变量除了料场j向工地i的运送量cij外,新建料场位置(xj,yj)也是决策变量。目标函数:这个优化问题的目标函数f是总吨公里数(运量乘以运输距离),所以优化目标可表为 (1)约束条件:各工地的日用量必须满足,所以 (2)各料场的运送量不能超过日用量,所以 (3)问题归结为在约束条件(3)、(2)及决策变量cij非负的情

19、况下,使目标(1)达到最小。(1)编写lingo程序:sets:a/1.6/:horizontal,vertical,distance;b/1,2/:positionx,positiony;link(a,b):c;endsetsdata:horizontal=1.25 8.75 0.5 5.75 3 7.25;vertical=1.25 0.75 4.75 5 6.5 7.75;distance=3 5 4 7 6 11;positionx=5 2;!分别为P,Q的横坐标;positiony=1 7;!分别为P,Q的纵坐标;enddatamin=sum(b(j):sum(a(i):c(i,j)

20、*sqrt(positionx(j)-horizontal(i)2+(positiony(j)-vertical(i)2);for(a(i):sum(b(j):c(i,j)=distance(i);for(b(j):sum(a(i):c(i,j)<=20);运行结果: Global optimal solution found. Objective value: 136.2275 Infeasibilities: 0.000000 Total solver iterations: 1 Model Class: LP Total variables: 12 Nonlinear variab

21、les: 0 Integer variables: 0 Total constraints: 9 Nonlinear constraints: 0 Total nonzeros: 36 Nonlinear nonzeros: 0 Variable Value Reduced Cost HORIZONTAL( 1) 1.250000 0.000000 HORIZONTAL( 2) 8.750000 0.000000 HORIZONTAL( 3) 0.5000000 0.000000 HORIZONTAL( 4) 5.750000 0.000000 HORIZONTAL( 5) 3.000000

22、0.000000 HORIZONTAL( 6) 7.250000 0.000000 VERTICAL( 1) 1.250000 0.000000 VERTICAL( 2) 0.7500000 0.000000 VERTICAL( 3) 4.750000 0.000000 VERTICAL( 4) 5.000000 0.000000 VERTICAL( 5) 6.500000 0.000000 VERTICAL( 6) 7.750000 0.000000 DISTANCE( 1) 3.000000 0.000000 DISTANCE( 2) 5.000000 0.000000 DISTANCE(

23、 3) 4.000000 0.000000 DISTANCE( 4) 7.000000 0.000000 DISTANCE( 5) 6.000000 0.000000 DISTANCE( 6) 11.00000 0.000000 POSITIONX( 1) 5.000000 0.000000 POSITIONX( 2) 2.000000 0.000000 POSITIONY( 1) 1.000000 0.000000 POSITIONY( 2) 7.000000 0.000000 C( 1, 1) 3.000000 0.000000 C( 1, 2) 0.000000 3.852207 C(

24、2, 1) 5.000000 0.000000 C( 2, 2) 0.000000 7.252685 C( 3, 1) 0.000000 1.341700 C( 3, 2) 4.000000 0.000000 C( 4, 1) 7.000000 0.000000 C( 4, 2) 0.000000 1.992119 C( 5, 1) 0.000000 2.922492 C( 5, 2) 6.000000 0.000000 C( 6, 1) 1.000000 0.000000 C( 6, 2) 10.00000 0.000000 Row Slack or Surplus Dual Price 1

25、 136.2275 -1.000000 2 0.000000 -3.758324 3 0.000000 -3.758324 4 0.000000 -4.515987 5 0.000000 -4.069705 6 0.000000 -2.929858 7 0.000000 -7.115125 8 4.000000 0.000000 9 0.000000 1.811824最优方案:(单位:吨)123456运送量A35070116B004061020需求量354761136最小的总吨公里数为:136.2275示意图:(2)编写lingo程序:sets:a/1.6/:horizontal,vertic

26、al,distance;b/1,2/:positionx,positiony;link(a,b):c;endsetsdata:horizontal=1.25 8.75 0.5 5.75 3 7.25;vertical=1.25 0.75 4.75 5 6.5 7.75;distance=3 5 4 7 6 11;enddatainit:positionx=3.254882,7.250000;positiony=5.652333,7.750000;endinitmin=sum(b(j):sum(a(i):c(i,j)*(positionx(j)-horizontal(i)2+(positiony

27、(j)-vertical(i)2)(1/2);for(a(i):sum(b(j):c(i,j)=distance(i);for(b(j):sum(a(i):c(i,j)<=20);for(b:free(positionx);free(positiony);运行结果: Local optimal solution found. Objective value: 85.26604 Infeasibilities: 0.000000 Total solver iterations: 124 Model Class: NLP Total variables: 16 Nonlinear varia

28、bles: 16 Integer variables: 0 Total constraints: 9 Nonlinear constraints: 1 Total nonzeros: 40 Nonlinear nonzeros: 16 Variable Value Reduced Cost HORIZONTAL( 1) 1.250000 0.000000 HORIZONTAL( 2) 8.750000 0.000000 HORIZONTAL( 3) 0.5000000 0.000000 HORIZONTAL( 4) 5.750000 0.000000 HORIZONTAL( 5) 3.0000

29、00 0.000000 HORIZONTAL( 6) 7.250000 0.000000 VERTICAL( 1) 1.250000 0.000000 VERTICAL( 2) 0.7500000 0.000000 VERTICAL( 3) 4.750000 0.000000 VERTICAL( 4) 5.000000 0.000000 VERTICAL( 5) 6.500000 0.000000 VERTICAL( 6) 7.750000 0.000000 DISTANCE( 1) 3.000000 0.000000 DISTANCE( 2) 5.000000 0.000000 DISTAN

30、CE( 3) 4.000000 0.000000 DISTANCE( 4) 7.000000 0.000000 DISTANCE( 5) 6.000000 0.000000 DISTANCE( 6) 11.00000 0.000000 POSITIONX( 1) 3.254883 0.000000 POSITIONX( 2) 7.250000 -0.7481680E-06 POSITIONY( 1) 5.652332 0.000000 POSITIONY( 2) 7.750000 0.5438639E-06 C( 1, 1) 3.000000 0.000000 C( 1, 2) 0.000000 4.008540 C( 2, 1) 0.000000 0.2051358 C( 2, 2) 5.000000 0.000000 C( 3, 1) 4.000000 0.000000 C( 3, 2) 0.000000 4.487750 C( 4, 1) 7.000000 0.000000 C( 4, 2) 0.000000 0.5535090 C( 5, 1) 6.000000 0.000000 C( 5, 2) 0.000000 3.544853 C( 6, 1) 0.000000 4.512336 C( 6, 2) 11.00000 0.000000 Row

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论