预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共11页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

LINGO 一、如何编写、运行一个LINGO 程序 1 双击LINGO图标,启动软件,屏幕上显示 LINGO的初始用户界面。光标所在的窗口称为模 型窗口(modelwindow),用来供用户输入优化 模型(LINGO程序)。 输入结束后,从莱单中选择File/Save(F5)命 令把它保存在一个文件中,默认的后缀名为lg4, 即LINGO程序的二进制文件。 保存的文件将来可以用File/Open(F3)重新打 开进行修改。 2 从莱单中选择LINGO/Solve(Ctrl+S)命令运行 程序。 用鼠标选择主莱单中Window/ReportsWindow, 这就是最终结果的报告窗口。 二、如何编写一个简单的LINGO 程序 说明: (1)在模型窗口中输入一个LINGO程序,以 “MODEL:”开始,以“END”结束。对简单 的模型,这两个语句也可以省略。 (2)目标函数的表达方式是“MAX=”或 “MIN=”,约束条件的S.T不要写出。 (3)决策变量的变量名由字母和数字组成,但 必须以字母开头,且长度不超过32个字符。不 区分大小写字母(包括LINGO本身的关键字, 如MAX、MIN、END)。 (4)每行可以用行号(行名)进行标识,行名写 法和变量名一样,行号用数字前带下划线表示, 以方括号“[]”为行号(行名)的首尾,位于目标 函数或每一个约束条件的开头。如果用户没有指 定行号(行名),系统会自动产生行号,将目标 函数所在行作为第一行,从第二行起为约束条件。 (5)注释语句用“!”开头,单独一个语句。 (6)变量与其系数间用“*”连接。 (7)每个语句(目标函数、约束条件和说明语句) 结束用“;”,允许一行写多个语句,但最好一 行只写一个语句。 (8)LINGO假定所有变量非负,可以用命令 “@FREE(变量名)”取消变量的非负假定。 (9)用命令“@BND(下界,变量名,上界)”设 置变量的上界和下界。 (10)一般整数变量可用“@GIN(变量名)”来标 识,0-1型变量可用“@BIN(变量名)”来标识。 (11)可以在模型的任何地方用TITLE语句对输 入的模型命名。 例1、求解线性规划(LP)问题 MAXf=2x1-3x2+4x3 S.T 4x1+3x2+2x3≤10 -3x1+5x2-x3≤12 x1+x2+5x3≥8 -5x1-x2-x3>2 0≤x2≤20 x3≥30 程序如下: MODEL: TITLE例1的模型; MAX=2*x1-3*x2+4*x3; 4*x1+3*x2+2*x3=8; -5*x1-x2-x3>2; x3>=30; !取消变量x1的非负限制; @free(x1); @BND(0,x2,20); END 例2求解整数线性规划(ILP)问题 MAXf=20x1+10x2 S.T 5x1+4x2≤24 2x1+5x2≤13 xi≥0,i=1,2 x1,x2为整数 程序如下: MODEL: MAX=20*x1+10*x2; 5*x1+4*x280*y1; x2>80*y2; x3>80*y3; @BIN(y1); @BIN(y2); @BIN(y3); end 例5求解二次规划(QP)问题 max 2 221 2 121 23.027798xxxxxxf S.T 100 21 xx 21 2xx 0, 21 xx 为整数 程序如下: MODEL: MAX=98*x1+277*x2-x1^2-0.3*x1*x2-2*x2^2; X1+x21,称为 过滤条件 @for(pp(i)|I#GT#1:z(i)=z(i-1)+x(i)+y(i)-r(i);); z(1)=10+x(1)+y(1)-r(1);END 2 可以利用两个集合,定义一个由二元对组 成的新集合,它的功效就相当于一个二维数组。 格式是: link(集合名1,集合名2):集合名3; 这里的集合名1,集合名2当然应该是之前定义 了的基本集合。 例8、求解非线性规划(NLP)问题 min    6 1 2 1 22 )()( ij ijijij byaxcf S.T )6,,1( 2 1    idc j iij )2,1( 6 1    jec i jij 其中 20