文档库 最新最全的文档下载
当前位置:文档库 › lingo编程例子

lingo编程例子

lingo编程例子
lingo编程例子

电力优化模型的编程:七个时段四种机型

sets:

sd/1..7/:sj,xq;

xhj/1..4/:ky,zx,zd,gd,bj,qd;

links(sd,xhj):x,y;

endsets

data:

sj=6,3,3,2,4,4,2;

xq=12000,32000,25000,36000,25000,30000,18000;

ky=10,4,8,3;

zx=750,1000,1200,1800;

zd=1750,1500,2000,3500;

gd=2250,1800,3750,4800;

bj=2.7,2.2,1.8,3.8;

qd=5000,1600,2400,1200;

enddata

min=@sum(links(i,j)|i#gt#1:qd(j)*@if(x(i-1,j)-x(i,j)#ge#0,0,x(i,j)-x(i-1 ,j))+gd(j)*sj(i)*x(i,j)+(y(i,j)-zx(j))*sj(i)*bj(j)*x(i,j))+@sum(links(i, j)|i#eq#1:qd(j)*x(i,j)+gd(j)*sj(i)*x(i,j)+y(i,j)*sj(i)*bj(j)*x(i,j)-zx(j )*sj(i)*bj(j)*x(i,j));

@for(sd(i):@sum(xhj(j):x(i,j)*y(i,j))>=xq(i));

@for(links(i,j):@bnd(0,x(i,j),ky(j)));

@for(links(i,j):@bnd(zx(j),y(i,j),zd(j)));

@for(links(i,j):@gin(x(i,j)));

end

直接的线性规划例子:

min=2*x1+3*x2;

x1+x2>=350;

x1>=100;

2*x1+x2<=600;

将同维数组的元素变为统一相同:

sets:

days /MO,TU,WE,TH,FR,SA,SU/:needs,cost;

endsets

data:

needs cost = 20 100;

enddata

#not# 否定该操作数的逻辑值,#not#是一个一元运算符

#eq# 若两个运算数相等,则为true;否则为flase

#ne# 若两个运算符不相等,则为true;否则为flase

#gt# 若左边的运算符严格大于右边的运算符,则为true;否则为flase

#ge# 若左边的运算符大于或等于右边的运算符,则为true;否则为flase

#lt# 若左边的运算符严格小于右边的运算符,则为true;否则为flase

#le# 若左边的运算符小于或等于右边的运算符,则为true;否则为flase

#and# 仅当两个参数都为true时,结果为true;否则为flase

给定一个直角三角形,求包含该三角形的最小正方形。(已知边长分别为:3 4 5)

sets:

object/1..3/: f;

endsets

data:

a, b = 3, 4; !两个直角边长,修改很方便;

enddata

f(1) = a * @sin(x);

f(2) = b * @cos(x);

f(3) = a * @cos(x) + b * @sin(x);

min = @smax(f(1),f(2),f(3));

@bnd(0,x,1.57);

end

求s=x^2*y,利用了数组乘数组的模型:

sets:

number/1..5/:x;

jq/1..5/:y;

endsets

data:

y=2;

enddata

@for(number(I): x(I)=I^2);

s=@sum(number(I):x(I)*y(I));

end

@qrand(seed)

产生服从(0,1)区间的拟随机数。@qrand只允许在模型的数据部分使用,它将用拟随机数填满集属性。通常,声明一个m×n的二维表,m表示运行实验的次数,n表示每次实验所需的随机数的个数。在行内,随机数是独立分布的;在行间,随机数是非常均匀的。这些随机数是用“分层取样”的方法产生的。

data:

M=4; N=2; seed=1234567;

enddata

sets:

rows/1..M/;

cols/1..N/;

table(rows,cols): x;

endsets

data:

X=@qrand(seed);

enddata

end

如果没有为函数指定种子,那么LINGO将用系统时间构造种子。6个发点8个收点的最小费用运输:

sets:

xl/1..8/:B;

cl/1..6/:A;

links(cl,xl):x,y;

endsets

data:

B=35 37 22 32 41 32 43 38;

A=60 55 51 43 41 52;

y=

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 2 2 8 1 4 3;

enddata

min=@sum(links:x*y);

@for(xl(j):@sum(cl(i):x(i,j))=B(j));

@for(cl(i):@sum(xl(j):x(i,j))<=A(i));

End

利用@rand产生15个标准正态分布的随机数和自由度为2的t分布的随机数:model:

!产生一列正态分布和t分布的随机数;

sets:

series/1..15/: u, znorm, zt;

endsets

!第一个均匀分布随机数是任意的;

u( 1) = @rand( .1234);

!产生其余的均匀分布的随机数;

@for(series( I)| I #GT# 1:

u( I) = @rand( u( I - 1))

);

@for( series( I):

!正态分布随机数;

@psn( znorm( I)) = u( I);

!和自由度为2的t分布随机数;

@ptd( 2, zt( I)) = u( I);

!ZNORM 和 ZT 可以是负数;

@free( znorm( I)); @free( zt( I));

);

end

@bin(x) 限制x为0或1

@bnd(L,x,U) 限制L≤x≤U

@free(x) 取消对变量x的默认下界为0的限制,即x可以取任意实数@gin(x) 限制x为整数

好的初始点会减少模型的求解时间:

init:

X, Y = 0, .1; !初始点;

endinit

Y=@log(X);

X^2+Y^2<=1;

lingo用法总结

ji例程1、 model: sets: quarters/1..4/:dem,rp,op,inv; endsets min=@sum(quarters:400*rp+450*op+20*inv); @for(quarters(i):rp<=40); @for(quarters(i)|i#gt#1: inv(i)=inv(i-1)+rp(i)+op(i)-dem(i);); inv(1)=10+rp(1)+op(1)-dem(1); data: dem=40 60 75 25; enddata end 例程2、 model: sets: quarters/1..4/:dem,rp,op,inv; endsets min=@sum(quarters:400*rp+450*op+20*inv); @for(quarters(i):rp<=40); @for(quarters(i)|i#gt#1: inv(i)=inv(i-1)+rp(i)+op(i)-dem(i);); inv(1)=a+rp(1)+op(1)-dem(1); data: dem=40 60 75 25; a=? enddata end ?LINGO总是根据“MAX=”或“MIN=”寻找目标函数,而除注释语句和TITLE语句外的其他语句都是约束条件,因此语句的顺序并不重要。 ?LINGO中函数一律需要以“@”开头 ?Lingo中的每个语句都以分号结尾 ?用LINGO解优化模型时已假定所有变量非负(除非用限定变量取值范围的函数@free或@sub或@slb另行说明)。 ?以感叹号开始的是说明语句(说明语句也需要以分号结束)) ?理解LINGO建模语言最重要的是理解集合(Set)及其属性(Attribute)的概念。 ?一般来说,LINGO中建立的优化模型可以由5个部分组成,或称为5“段” (SECTION): (1)集合段(SETS):以“ SETS:” 开始,“ENDSETS”结束,定义

lingo操作介绍

1.2 菜单介绍 1.2.1 File 1 New 新建一个窗口, 当你执行这个命令时, 会出现如下对话框: 你可以在对话框中选择你想要建立的类型. 类型如下: 1)扩展名为(*.lg4) LG4格式是LINGO4.0的版本,是在Windows下最主要的储存文件格式, 这种格式支持字体格式, 自定义格式以及动态连接, LG4以二进制格式存储, 所以不能被其它的应用软件直接读取. 2)扩展名为(*.lng) LNG是捷便的存储方式,是4.0版本前的标准文件格式,为了与前版本的兼容,所以还一直在用,LNG文件是以ASCII形式存储的,所以能被支持文本文件的应用程序读取.该格式不支持多种字体. 3)扩展名为(*.ltd) LTD是数据文件, 可以从@FILE函数导入数据,@FILE函数只能读取文本文件,所以所有的LTD文件是以ASCII形式存储, 也不支持多种字体. 4)扩展名为(*.ltf) LTF是LINGO的调试文件格式, 也是以ASCII格式存储,能直接被LINGO的File|Take command执行. 2 Log Output 输出文本文件,可以将随后原输出到报告窗口的内容输出到文本中. 该命令与Maple 中的writeto命令非常相似. 在Maple中输入如下: > x:=sin(5.); writeto("c://maple.txt"); y:=x+1: print(x,y); print(x); > y; > writeto(terminal);

> y; 执行菜单中的Edit|Excute|Worksheet, 按钮,窗口重新显示如下: > x:=sin(5.); writeto("c://maple.txt"); y:=x+1: print(x,y); print(x); x:=-.9589242747 > y; > writeto(terminal); > y; 0.4010757253 而在C盘的maple.txt文件的内容为: -.9589242747, .0410757253 -.9589242747 .0410757253 从中可以知道,用了writeto(filename)命令以后把结果输出到filename 中. 直到碰到writeto(terminal)命令时,才重新在工作窗口中显示. 当你点击菜单File|Log Output时,系统出现保存对话框,系统就会将命令窗口中的输出结果保存到指定的文件中. 3 Import LINDO File 该命令是用来导入LINDO软件保存的LINDO文件(*.LTX)格式. 只要在LINGO中导入LINDO文件格式, LINGO系统自动将该文件转化为LINGO可执行语句. 1.2.2 Edit 1 Paste Function 用该命令可以在当前点插入LINGO的内部函数, 2 Select Fonts 设置字体类型, 字体大小,字体颜色. 1.2.3 LINGO 1 Solve 用solve命令对当前窗口中的模型求解, 该命令只对report script窗口起作用, 不能对数据窗口求解.

LINGO使用说明比较简单

Lingo介绍 Lingo是美国LINDO系统公司(Lindo Symtem Inc)开发的求解数学规划系列软件中的一个(其他软件为LINGDO,GINO,What’s Best等),它的主要功能是求解大型线性、非线性和整数规划问题,目前的版本是lingo11.0。 lingo分为Demo、solve suite、hyper、industrial、extended等六类不同版本,只有Demo版本是免费的,其他版本需要向LINDO系统公司(在中国的代理商)购买,Lingo的不同版本对模型的变量总数、非线性变量个数、整型变量个数和约束条件的数量做出不同的限制(其中extended版本无限制)。 Lingo的主要功能特色为: (1)既能求解线性规划,也有较强的求解非线性规划的能力; (2)输入模型简练直观; (3)运行速度快、计算能力强; (4)内置建模语言,提供几十种内部函数,从而能以较少语句,较直观的方式描述较大规模的优化模型; (5)将集合的概念引入编程语言,很容易将实际问题转换为Lingo语言; (6)能方便地与excel、数据库等其他软件交换数据。 学校图书馆40本《lingo和excel在数学建模中的应用》,袁新生、邵大宏、郁时炼主编,科学出版社

Lingo 程序设计简要说明 在数学建模中会遇到如规划类的题型,在这种模型中总存在着一个目标,并希望这个目标的取值尽可能的大或小,同时与这个目标有关的一系列变量之间存在一些约束。在构造出目标函数和约束条件的表达式后,我们需要对求出这个最值和各变量的取值。一般我们用LINGO 来对模型进行求解,本文将通过举一个简单的例子,围绕这个例子逐步学习LINGO 的使用。LINGO 只是一个求解工具,我们主要的任务还是模型的建立! 当你在windows 下开始运行LINGO 系统时,会得到类似下面的一个窗口: 外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO 的默认模型窗口,建立的模型都都要在该窗口内编码实现。 示例:求解线性规划问题: max z=x1+x2+x3+x4+x5+x6+x7+x8 ???????????????≤≤≤≤≤≤269 + x88 + x72 + x66 + x55 + x47 + x38 + x28 + x1 6 15 6 + x8 7 + x7+ x65 + x54 + x44 + x34 + x25 + x15 444 + x86 + x77 + x68 + x58 + x45 + x32 + x27 + x14278 + x85 + x74 + x64 + x55 + x49 + x36 + x25 + x13389 + x84 + x75 + x62 + x57 + x46 + x35 + x28 + x1 2 154 + x8 3 + x79 + x66 + x55 + x45 + x3 4 + x27 + x1 求解这个模型的相应LINGO 程序代码如下: 程序一: max= x1+x2+x3+x4+x5+x6+x7+x8; x1 + 7*x2 + 4*x3 + 5*x4 + 5*x5 + 6*x6 + 9*x7 + 3*x8 + 415<=; 2*x1 + 8*x2 + 5*x3 + 6*x4 + 7*x5 + 2*x6 + 5*x7 + 4*x8 + 938<=; 3*x1 + 5*x2 + 6*x3 + 9*x4 + 5*x5 + 4*x6 + 4*x7 + 5*x8 + 827<=; 4*x1 + 7*x2 + 2*x3 + 5*x4 + 8*x5 + 8*x6 + 7*x7 + 6*x8 + 444<=; 5*x1 + 5*x2 + 4*x3 + 4*x4 + 4*x5 + 5*x6 + x7 + 7*x8 + 6 15<=; 6*x1 + 8*x2 + 8*x3 + 7*x4 + 5*x5 + 6*x6 + 2*x7 + 8*x8 + 926<=; 注:然后点击工具条上的按钮 即可。本模型的最优解为2.636364

LINGO的使用方法说明大全

LINGO的使用简介 LINGO软件是美国的LINGO系统公司开发的一套专门用于求解最优化问题的软件包.LINGO除了能够用于求解线性规划和二次规划外,还可以用于非线性规划求解、以及一些线性和非线性方程(组)的求解等.LINGO软件的最大特色在于它允许优化模型中的决策变量为整数,即可以求解整数规划,而且执行速度快.LINGO是用来求解线性和非线性优化问题的简易工具.LINGO置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果.在这里仅简单介绍LINGO的使用方法. LINGO(Linear INteractive and General Optimizer )的基本含义是交互式的线性和通过优化求解器.它是美国芝加哥大学的 Linus Schrage 教授于1980年开发了一套用于求解最优化问题的工具包,后来经过完善成何扩充,并成立了LINDO系统公司.这套软件主要产品有:LINDO,LINGO,LINDO API和What’sBest.它们在求解最优化问题上,与同类软件相比有着绝对的优势.软件有演示版和正式版.正式版包括:求解包(solver suite)、高级版(super)、超级版(hyper)、工业版(industrial)、扩展版(extended).不同版本的LINGO对求解问题的规模有限制,如附表3-1所示. 附表3-1 不同版本LINGO对求解规模的限制 版本类型总变量数整数变量数非线性变量数约束数 演示版 300 30 30 150 求解包 500 50 50 250 高级版 2000 200 200 1000 超级版 8000 800 800 4000 工业版 32000 3200 32000 16000 扩展版无限无限无限无限 3.1 LINGO程序框架 LINGO可以求解线性规划、二次规划、非线性规划、整数规划、图论及网络最优化问题和最大最小求解问题,以及排队论模型中最优化等问题. 一个LINGO程序一般会包括以下几个部分: (1) 集合段:集部分是LINGO模型的一个可选部分.在LINGO模型中使用集之前,必须在集部分事先定义.集部分以关键字“sets:”开始,以“endsets”结束.一个模型可以没有集部分,或有一个简单的集部分,或有多个集部分.一个集部分可以放置于模型的任何地方,但是一个集及其属性在模型约束中被引用之前必须先定义. (2) 数据段:在处理模型的数据时,需要为集部分定义的某些元素在LINGO求解模型之前为其指定

LINGO软件的使用

第十八章LINGO软件的使用 18.1 LINGO入门 18.1.1 LINGO软件的安装过程 点击LINGO9.0 for Windows安装文件,出现 点击“Next”按钮,出现 此时需要接受安装协议。系统安装时默认的目录是C:\LINGO9。安装完成前,会出现下图所示的对话框:

这个对话框询问你希望采用的默认的建模(即编程)语言,系统推荐的是采用LINGO语法,也就是选项“LINGO(recommended)”;你也可以选择“LINDO”将LINDO语法作为默认的设置。当然,安装后你也可以通过“LINGO|Options|File Format命令来修改默认的建模(即编程)语言。在上图中按下“OK”按钮,系统就会完成LINGO的安装过程。 18.1.2 LINGO基础知识 LINGO有两种命令格式:一种是常用的Windows模式,通过下拉式菜单命令驱动LINGO 运行,界面是图形式的,使用起来也比较方便;另一种是命令行(Command-Line)模式,仅在命令窗口(Command Window)下操作,通过输入行命令驱动LINGO运行。由于其使用字符方式输入,初学者往往不太容易掌握。在这里,我们主要介绍在菜单驱动模式下LINGO的使用方法。 LINGO 9.0软件比以前的版本有了很大的改进,功能大大增强,性能更加稳定,计算的结果更加可靠。LINGO软件不仅可用于求解非线性规划问题,还可以用以求解非线性整数规划问题;LINGO包含了内置的建模语言,模型中所需的数据可以以一定格式保存在独立的文件中;LINGO允许以简练、直观的方式描述较大规模的优化问题。 注:LIGDO公司目前已将LINDO软件从其产品中删除了。事实上,LINDO软件的所有功能(包括LINDO语法格式)都在LINGO中得到了支持。 当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口: 外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。状态行最左边显示的是“Ready”表示“准备就绪”;右下角显示的是当前时间,时间前面是当前光标的位置“Ln1,Col1”(即1行1列)。将来,用户可以用选项命令(LINGO|Options菜单命令)决定是否需要显示工具栏和状态行。在LINGO 模型窗口中,选择菜单命令“File|Open(F3)”,可以看到下图所示的标准的“打开文件”对话框,我们看到有各种不同的“文件类型”:

Lingo的基本应用

第十五章Lingo的基本应用1、LINDO和LINGO软件能求解的模型: 2、Lingo初级语法: 语句分行书写,顺序与数学模型一致; 每一条语句都要以“;”结尾; 语句不区分大小写,书写方式与代数函数相近; 目标函数以“min=”或者“max=”表示; 注释语句用“!”开头; “>”和“>=”以及“<”和“<=”没有区别; 如果不写明决策变量的取值范围,则默认为非负实数。 3、线性规划案例:生产计划 每天:50桶牛奶时间480小时至多加工100公斤A1 要求:制订生产计划,使每天获利最大 1)奶制品生产的Lingo模型 2)Lingo求解 2)Lingo求解报告

//结果报告(Solution Report) 4)开启灵敏度分析(Range)功能 5)查看灵敏度分析(Range) 必须先求解才能得到灵敏度分析报告 //目标函数系数范围分析 当目标函数中x1的系数(产品A1的收益)增加不超过8个单位或者减少不超过2.66667个单位时(x2系数维持不变),不需改变生产计划。 //约束条件右边值灵敏度分析

如果牛奶资源的数量增加不超过10桶或者减少不超过6.666667桶(其他模型参数不变),则它将仍然作为紧缺资源; 如果A1生产资源减少超过40个单位(其他模型参数不变),则它将转化为紧缺资源。 4、城市垃圾处理问题(最小吨*公里) 小区供水问题(最大供水收益) 代数式线性规划模型(垃圾运输) 代数式线性规划模型(小区供水)

5、如何表示具有下标的变量: 1)从C语言的类比来理解: 2)具有下标的变量可以看作某种数组变量中的元素; 3)除去下标后的符号可以看作是数组变量的名称; 4)下标可以看作是在数组中的索引值; 5)单下标变量对应于一个一维数组,称为“简单集合”; 6)多下标变量对应于一个多维数组,而多维数组可以看作是多个一维数组的笛卡尔积,称为“派生集合”。 6、Lingo中如何定义具有下标的变量? 1)在Lingo中使用“集合变量”的形式表达规划模型中具有下标的变量 2)定义集合变量需要三个基本要素: 集合的名称 集合的形式(简单集合还是派生集合?集合的元素个数是多少?) 集合变量的名称 7、定义简单集合的语法: 集合名称/下标范围/: 变量列表;(变量之间用“,”分隔) 例:brand/1..6/: a, b;(集合的名称是brand,/1..6/表示这种集合包含6个元素,下标的范围是从1到6,并且定义了两个这种集合形式的变量分别用a、b表示,该语句相当于定义了a1~a6以及b1~b6两组变量) 例:type/1..4/;(也可以只定义集合形式不定义集合变量) 8、定义派生集合的语法: 集合名称(分量集合列表): 变量列表; 1)分量集合列表分别对应于派生集合的每一个维度,定义了每一个维度分别属于哪一种简单集合 2)例:product(brand, type): p, x;(集合的名称是product,该集合的第一个维度与brand集合的类型相同,第二个维度与type 集合的类型相同,并且定义了两个集合变量p和x。如果根据前面对brand和type的定义,product集合是一个6*4的二维派生集合,该语句相当于定义了p11~p64和x11~x64两组变量) 3)例:address(country, state, city)。 9、调用集合变量的语法: 1)变量名称(下标值)”的形式调用集合变量的指定元素:pi→p(i);xij→x(i,j); 例:p(4)、x(2,3)

lingo基础操作

LINGO 使用教程 LINGO 是用来求解线性和非线性优化问题的简易工具。LINGO 内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO 高效的求解器可快速求解并分析结果。 §1 LINGO 快速入门 当你在windows 下开始运行LINGO 系统时,会得到类似下面的一个窗口: 外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO 的默认模型窗口,建立的模型都要在该窗口内编码实现。下面举两个例子。 例1.1 如何在LINGO 中求解如下的LP 问题: ,6002100 350. .32min 21211 2121≥≤+≥≥++x x x x x x x t s x x 在模型窗口中输入如下代码: min =2*x1+3*x2; x1+x2>=350; x1>=100; 2*x1+x2<=600; 然后点击工具条上的按钮 即可。 例1.2 使用LINGO 软件计算6个发点8个收点的最小费用运输问题。产销单位运价如下表。

单 位销地 运 B1B2B3B4B5B6B7B8产量价 产地 A1 6 2 6 7 4 2 5 9 60 A2 4 9 5 3 8 5 8 2 55 A3 5 2 1 9 7 4 3 3 51 A4 7 6 7 3 9 2 7 1 43 A5 2 3 9 5 7 2 6 5 41 A6 5 5 2 2 8 1 4 3 52 销量35 37 22 32 41 32 43 38 model: !6发点8收点运输问题; sets: warehouses/wh1..wh6/: capacity; vendors/v1..v8/: demand; links(warehouses,vendors): cost, volume; endsets !目标函数; min=@sum(links: cost*volume); !需求约束; @for(vendors(J): @sum(warehouses(I): volume(I,J))=demand(J)); !产量约束; @for(warehouses(I): @sum(vendors(J): volume(I,J))<=capacity(I)); !这里是数据; data: capacity=60 55 51 43 41 52; demand=35 37 22 32 41 32 43 38; cost=6 2 6 7 4 2 9 5 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 2 2 8 1 4 3; enddata end 然后点击工具条上的按钮即可。 为了能够使用LINGO的强大功能,接着第二节的学习吧。 §2 LINGO中的集

LINGO软件的使用

第三章 LINGO软件使用入门 LINGO是美国LINDO系统公司开发的一套专门用于求解最优化问题的软件.它为求解最优化问题提供了一个平台,主要用于求解线性规划、非线性规划、整数规划、二次规划、线性及非线性方程组等问题.它是最优化问题的一种建模语言,包含有许多常用的函数供使用者编写程序时调用,并提供了与其他数据文件的接口,易于方便地输入,求解和分析大规模最优化问题,且执行速度快.由于它的功能较强,所以在教学、科研、工业、商业、服务等许多领域得到了广泛的应用. §3.1 LINGO操作界面简介 在Windows操作系统下启动LINGO软件,屏幕上首先显示如图1.1所示的窗口. 图1.1 图1.1中最外层的窗口是LINGO软件的主窗口(LINGO软件的用户界面),所有其他窗口都在这个窗口之内.主窗口有:标题栏、菜单栏、工具栏和状态栏.目前,状态栏最左边显示的是“Ready”,表示准备就绪,右下角显示的是当前时间,时间前面是当前光标的位置“Ln 1,Col 1”(即1行1列).将来用户可以用选项命令(LINGO|Options|Interface菜单命令)决定是否需要显示工具栏和状态栏. LINGO有5个主菜单: ●File(文件) ●Edit(编辑) ●LINGO(LINGO系统) ●Windows(窗口) ●Help(帮助) 这些菜单的用法与Windows下其他应用程序的标准用法类似,下面只对主菜单中LINGO

系统的主要命令进行简要介绍. LINGO系统(LINGO)的主菜单 ●LINGO|Solve(Ctrl-S) LINGO|Solve(Ctrl-S)(求解)命令对当前模型进行编译并求解.如果当前模型输入有错误,编译时将报告错误.求解时会显示一个求解器运行状态窗口. ●LINGO|Solution(Ctrl-O) LINGO|Solution(Ctrl-O)(解答)命令显示当前解. ●LINGO|Range(Ctrl-R) LINGO|Range(Ctrl-R)(灵敏度分析)命令显示当前解的灵敏度分析结果.(你必须在此之前求解过当前模型) ●LINGO|Options(Ctrl-I) LINGO|Options(Ctrl-I)(选项)命令将打开一个含有7个选项卡的对话框窗口,你可以通过它修改LINGO系统的各种控制参数和选项.修改完以后,你如果单击“应用”按钮,则新的设置马上生效;如果单击“OK”按钮,则新的设置马上生效,并且同时关闭该窗口;如果单击“Save”按钮,则将当前设置变为默认设置,下次启动LINGO时这些设置仍然有效;如果单击“Default”按钮,则恢复LINGO系统定义的原始默认设置;如果单击“Cancel”按钮将废弃本次操作,退出对话框;单击“Help”按钮将显示本对话框的帮助信息. ●LINGO|Generate和LINGO|Picture LINGO|Generate和LINGO|Picture命令都是在模型窗口下才能使用,他们的功能是按照LINGO模型的完整形式分别以代数表达式形式和矩阵图形形式显示目标函数和约束. ●LINGO|Debug(Ctrl+D) LINGO|Debug(Ctrl+D)命令分析线性规划无解或无界的原因,建议如何修改 ●LINGO|Model Statistics(Ctrl+E) LINGO|Model Statistics(Ctrl+E)命令显示当前模型的统计信息. ●LINGO|Look(Ctrl+L) LINGO|Look(Ctrl+L)命令显示当前模型的文本形式,显示时对所有行按顺序编号.图1.2给出了工具栏的简要功能说明. 图1.2

Lingo教程

LINGO教程 LINGO是用来求解线性和非线性优化问题的简易工具。LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果。 §1 LINGO快速入门 ●安装:实验室的所有电脑都已经事先安装好了Lingo 8(或者9, 10, 11)。 如果要在自己的电脑上安装这个软件,建议从网上下载一个破解版的,按照提示一步一步地安装完毕。 ●简单例子:当你在windows系统下开始运行LINGO时,会得到类似于下面的 一个窗口: 外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model –LINGO1的窗口是LINGO的默认模型窗口,建立的模型都要在该窗口内编码实现。下面举两个例子。 例 1某工厂在计划期内要安排生产I、II两种产品,已知生产单位产品所需的设备台时及A、B两种原材料的消耗,如表所示。

该工厂每生产一件产品I可获利2元,每生产一件产品II可获利3元,问应该如何安排生产计划使该厂获利最多? 我们用下面的数学模型来描述这个问题。 设x_1、x_2分别表示在计划期内产品I、II的产量。因为设备的有效台时是8,这是一个限制产量的条件,所以在确定产品I、II的产量时,要考虑不超过设备的有效台时数,即可用不等式表示为 x_1 + 2x_2 <=8 同理,因原材料A、B的限量,可以得到以下不等式 4x_1 <=16 4x_2 <=12 该工厂的目标是在不超过所有资源限量的条件下,如何确定产量x_1、x_2以得到最大的利润。若用z表示利润,这时z=2x_1+3x_2.综合上述,该计划问题可用数学模型表示为: 目标函数 max z=2x_1+3x_2 约束条件 x_1 + 2x_2 <=8 4x_1 <=16 4x_2 <=12 x_1、x_2 >=0 一般来说,一个优化模型将由以下三部分组成: 1.目标函数(Objective Function):要达到的目标。 2.决策变量(Decision variables):每组决策变量的值代表一种方案。在优化模 型中需要确定决策变量的最优值,优化的目标就是找到决策变量的最优值使得目标函数取得最优。 3.约束条件(Constraints):对于决策变量的一些约束,它限定决策变量可以取 的值。 在写数学模型时,一般第一行是目标函数,接下来是约束条件,再接着是一些非负限制等。 在模型窗口输入如下代码: Max = 2*x1+3*x2; !This is a linear program. X1+2*x2<=8;

LINGO的使用方法说明大全

LINGO的使用简介 LINGO软件就是美国的LINGO系统公司开发的一套专门用于求解最优化问题的软件包.LINGO除了能够用于求解线性规划与二次规划外,还可以用于非线性规划求解、以及一些线性与非线性方程(组)的求解等.LINGO软件的最大特色在于它允许优化模型中的决策变量为整数,即可以求解整数规划,而且执行速度快.LINGO就是用来求解线性与非线性优化问题的简易工具.LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果.在这里仅简单介绍LINGO的使用方法. LINGO(Linear INteractive and General Optimizer )的基本含义就是交互式的线性与通过优化求解器.它就是美国芝加哥大学的 Linus Schrage 教授于1980年开发了一套用于求解最优化问题的工具包,后来经过完善成何扩充,并成立了LINDO系统公司.这套软件主要产品有:LINDO,LINGO,LINDO API与What’sBest.它们在求解最优化问题上,与同类软件相比有着绝对的优势.软件有演示版与正式版.正式版包括:求解包(solver suite)、高级版(super)、超级版(hyper)、工业版(industrial)、扩展版(extended).不同版本的LINGO对求解问题的规模有限制,如附表3-1所示. 附表3-1 不同版本LINGO对求解规模的限制 版本类型总变量数整数变量数非线性变量数约束数 演示版 300 30 30 150 求解包 500 50 50 250 高级版 2000 200 200 1000 超级版 8000 800 800 4000 工业版 32000 3200 32000 16000 扩展版无限无限无限无限 3、1 LINGO程序框架 LINGO可以求解线性规划、二次规划、非线性规划、整数规划、图论及网络最优化问题与最大最小求解问题,以及排队论模型中最优化等问题. 一个LINGO程序一般会包括以下几个部分: (1) 集合段:集部分就是LINGO模型的一个可选部分.在LINGO模型中使用集之前,必须在集部分事先定义.集部分以关键字“sets:”开始,以“endsets”结束.一个模型可以没有集部分,或有一个简单的集部分,或有多个集部分.一个集部分可以放置于模型的任何地方,但就是一个集及其属性在模型约束中被引用之前必须先定义. (2) 数据段:在处理模型的数据时,需要为集部分定义的某些元素在LINGO求解模型之前为其指定值.

LINDO-LINGO简介及使用方法

欢迎访问华中数学建模网 https://www.wendangku.net/doc/5217037437.html, 1.LINDO、LINGO 一、软件简介 LINDO是一种专门用于求解数学规划问题的软件包。由于LINDO执行速度很快、易于方便输入、求解和分析数学规划问题。因此在数学、科研和工业界得到广泛应用。LINDO主要用于解线性规划、非线性规划、二次规划和整数规划等问题。也可以用于一些非线性和线性方程组的求解以及代数方程求根等。LINDO中包含了一种建模语言和许多常用的数学函数(包括大量概论函数),可供使用者建立规划问题时调用。 一般用LINDO(Linear Interactive and Discrete Optimizer)解决线性规划(LP—Linear Programming)。整数规划(IP—Integer Programming)问题。其中LINDO 6 .1 学生版至多可求解多达300个变量和150个约束的规划问题。其正式版(标准版)则可求解的变量和约束在1量级以上。 LINDO则用于求解非线性规划(NLP—NON—LINEAR PROGRAMMING)和二次规则(QP —QUARATIC PROGRAMING)其中LINGO 6.0学生版最多可版最多达300个变量和150个约束的规则问题,其标准版的求解能力亦再10^4量级以上。虽然LINDO 和LINGO不能直接求解目标规划问题,但用序贯式算法可分解成一个个LINDO和LINGO能解决的规划问题。 要学好用这两个软件最好的办法就是学习他们自带的HELP文件。 下面拟举数例以说明这两个软件的最基本用法。(例子均选自张莹《运筹学基础》) 例1.(选自《运筹学基础》P54.汽油混合问题,线性规划问题) 一种汽油的特性可用两个指标描述:其点火性用“辛烷数”描述,其挥发性用“蒸汽压力”描述。某炼油厂有四种标准汽油,设其标号分别为1,2,3,4,其特性及库存量列于下表1中,将上述标准汽油适量混合,可得两种飞机汽油,某标号为1,2,这两种飞机汽油的性能指标及产量需求列于表2中。 问应如何根据库存情况适量混合各种标准汽油,使既满足飞机汽油的性能指标,而产量又为最高。 表1 标准汽油辛烷数 蒸汽压力(g/cm^2) 库存量 1107.57.11*10^(-2)380000 293.011.38*10^(-2)262200 387.0 5.69*10^(-2)408100 4108.028.45*10^(-2)130100

相关文档