LINGO教程(数据输入输出)
- 格式:ppt
- 大小:419.50 KB
- 文档页数:23
LINGO 是用来求解线性和非线性优化问题的简易工具。
LINGO 内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO 高效的求解器可快速求解并分析结果。
§1 LINGO 快速入门当你在windows 下开始运行LINGO 系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。
在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO 的默认模型窗口,建立的模型都都要在该窗口内编码实现。
下面举两个例子。
例1.1 如何在LINGO 中求解如下的LP 问题:,6002100350..32min 212112121≥≤+≥≥++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;然后点击工具条上的按钮 即可。
设从第i 个产地(A i )运往第j 个销地(B j )的单位运价为cost (i,j );从第i 个产地(A i )运往第j 个销地(B j )的运送量为valume (i ,j );i=1,...,6;j=1, (8)第j 个销地(B j )的销量为demand (j ); 第i 个产地(A i )的产量为capacity (i );目标函数(object function ) 6811mincos ()()i j t ij volume ij ==∑∑需求约束 61()()i volume ij demand j =<=∑ j=1,…,8产量约束 81()()j volume ij capacity i =<=∑ i=1,…,6(注:14个约束条件,48个变量,采用集合的概念)使用LINGO 软件,编制程序如下:model :!6发点8收点运输问题; sets : !集合定义warehouses/wh1..wh6/: capacity; !capacity 为集合属性 vendors/v1..v8/: demand;links(warehouses,vendors): cost, volume;!由两个集合构成新的集合 endsets !集合定义结束!目标函数; min =@sum (links: cost*volume); !或min =@sum (links (i,j ): cost(i)*volume(j));在数组links 上去求和!需求约束; @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 是用来求解线性和非线性优化问题的简易工具。
LINGO 内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO 高效的求解器可快速求解并分析结果。
§1 LINGO 快速入门当你在windows 下开始运行LINGO 系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。
在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO 的默认模型窗口,建立的模型都都要在该窗口内编码实现。
下面举两个例子。
例1.1 如何在LINGO 中求解如下的LP 问题:0,6002100350..32min 212112121≥≤+≥≥++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个收点的最小费用运输问题。
产销单位运价如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 54 95 3 8 5 8 25 2 1 9 7 4 3 37 6 7 3 9 2 7 12 3 9 5 7 2 6 55 5 2 2 8 1 4 3;enddataend然后点击工具条上的按钮即可。
LINGO 是用来求解线性和非线性优化问题的简易工具。
LINGO 内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO 高效的求解器可快速求解并分析结果。
§1 LINGO 快速入门当你在windows 下开始运行LINGO 系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。
在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO 的默认模型窗口,建立的模型都都要在该窗口内编码实现。
下面举两个例子。
例1.1 如何在LINGO 中求解如下的LP 问题:,6002100350..32min 212112121≥≤+≥≥++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;然后点击工具条上的按钮 即可。
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 54 95 3 8 5 8 25 2 1 9 7 4 3 37 6 7 3 9 2 7 12 3 9 5 7 2 6 55 5 2 2 8 1 4 3;enddataend然后点击工具条上的按钮即可。
LINGO是美国LINDO系统公司专门开发的用于解决优化问题的软件包,包括表达优化模型的强大语言,构建和编辑问题的全功能环境,以及可以高效求解大多数优化模型的快速内置求解器。
该软件提供了强大的语言和快速的求解引擎来解释和求解优化模型。
他有函数强、计算结果好的优点,但他最大的特点是可以让优化模型中的决策变量为整数(即整数规划),执行速度非常快。
它是一个综合的工具,使线性、非线性和整数优化模型的建立和求解更快、更简单、更有效。
LINGO可应用于生产线规划、交通运输、财务财务、投资分配、资金预算、混合调度、库存管理、资源配置等领域,在国外运筹学教材中也被广泛用作教学软件。
LINGO的优点:(1)模型表示简单,(2)数据输入和输出选择方便,(3)强大的解决方案引擎,(4)交互式模型或交钥匙应用,(5)丰富的文件和帮助功能。
LINGO是数学建模的必备工具。
在这个炎热的夏天,许多学生都在为9月份的数学建模比赛做准备。
教程1。
1个行话快速入门。
2种行话套装。
2.1为什么使用集合。
2.2什么是套装。
2.3设置部分模型。
3模型的数据部分和初始部分。
3.1模型的数据部分。
3.2模型的初始部分。
4个行话功能。
4.1基本操作员。
4.2数学函数。
4.3财务职能。
4.4概率函数。
4.5变量定义函数。
4.6设置操作功能。
4.7集循环函数。
4.8输入输出功能。
4.9辅助功能。
5 LINGO WINDOWS命令。
5.1文件菜单(文件菜单)。
5.2编辑菜单(编辑菜单)。
5.3行话菜单。
5.4窗口菜单(Windows菜单)。
5.5帮助菜单(帮助菜单)。
LINGO 是用来求解线性和非线性优化问题的简易工具。
LINGO 内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO 高效的求解器可快速求解并分析结果。
LINGO 快速入门当你在windows 下开始运行LINGO 系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。
在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO 的默认模型窗口,建立的模型都都要在该窗口内编码实现。
下面举两个例子。
例1.1 如何在LINGO 中求解如下的LP 问题:0,6002100350..32min 212112121≥≤+≥≥++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个收点的最小费用运输问题。
产销单位运价如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 54 95 3 8 5 8 25 2 1 9 7 4 3 37 6 7 3 9 2 7 12 3 9 5 7 2 6 55 5 2 2 8 1 4 3;enddataend然后点击工具条上的按钮即可。
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的默认模型窗口,建立的模型都都要在该窗口内编码实现。
Lingo软件使用指南摘要:本文介绍了Lingo软件的基本使用方法。
从最基本的使用到复杂问题的解决,本文给出了比较详细的介绍。
Lingo软件是美国Lindo公司的产品,主要用来求解优化问题。
它是一个非常强大的软件,可以求解大部分优化问题,包括线性规划、二次规划、整数规划、运输问题等,是目前全球应用最广泛的优化软件之一。
这里我们简单介绍它的使用方法。
一进入Lingo如果你的计算机已经安装了Lingo,只需要在桌面上双击Lingo的快捷方式,就可以进入Lingo。
为了使自己的程序易于阅读,经常需要有一些注释,因此在编写程序中,每一行前面有感叹号的表示这一行是注释行,在程序运行中不起作用,希望初学者养成注释的好习惯。
二建立数学模型和 Lingo模型语言例1 在Lingo的命令窗口中输入下面的线性规划模型!目标函数;MAX = 100 * x1 + 150 * x2;!第一个约束;X1<= 100;!第二个约束;X2 <= 120;!第三个约束;X1 + 2 * x2<= 160;!end可有可无;end求解可得全局最优解:Objective value: 14500.00Variable ValueX1 100.0000X2 30.00000从这个例子可以看出,用Lingo软件求解一个简单的优化问题是非常容易的。
我们只需要输入优化问题的两个主要部分:目标函数和约束,就可以直接求解。
对于比较简单的问题,我们可以采取这种直接的方式去求解,但是,对于比较复杂的问题,用这种方式就不现实。
比如下面的例2,这就必须要使用Lingo的模型语言。
例2 一个运输问题假设WWW公司有6个仓库,储存着8个分厂生产所需要的原材料。
要求每一个仓库的供应量不能超过储存量,而且每一个分厂的需求必须得到满足。
问:如何组织运输,使总运输费用最小?已知从6个仓库到8个分厂的运输费用表。
表1 供应表2 需求表3 运输费用Wh5 2 3 9 5 7 2 6 5Wh6 5 5 2 2 8 1 4 3 这个问题是一个典型的优化问题,通常称为运输问题。
Lingo是使用线性规划和非线性规划来解释,解决和分析复杂问题的简单工具。
Lingo因其执行速度快,易于输入,修改,求解和分析数学程序设计问题而被广泛用于教育,科学研究和工业中。
Lingo 软件包有很多版本,但是其软件内核和用法相似。
教学版本和分发版本之间的主要区别在于,对优化问题的规模(变量和约束的数量)存在不同的限制。
有关详细信息,请访问lingo软件网站:本课程的部分内容选自用于Windows软件和应用程序(编译)(WAN Baocheng)的lingo 8.0和[2]。
推荐的参考书[1]优化建模和Lindo / Lingo软件,谢金星等编辑,2005 [2] lingo和excel在数学建模中的应用,袁新胜等人编辑。
科学出版社,2007年2月,华南农业大学数学建模训练的内容,第2.1节为何使用集合2.2集合2.3模型的一部分2.3.1定义原始集合2.3.2定义导出的集合数据部分和模型的初始部分3.1模型的数据部分3.1.1数据部分的介绍3.1.2参数3.1.3实时数据处理3.1.4将属性指定为值3.1.5数据部分的未知值3.2模型的初始部分4.1语言功能4.1基本运算符4.1.1算术运算符4.1.2逻辑运算符4.1.3关系运算符4.2数学函数4.3金融函数4.4概率函数4.5变量定义函数4.6设置运算函数4.7设置循环函数4.8输入和输出函数4.9辅助函数﹤5 lingo windows命令5.1文件菜单5.2编辑菜单5.3语言菜单5.4窗口菜单5.5帮助菜单﹤6 lingo命令行命令﹤7综合示例comprehensive 8 lingo和外部文件之间的数据传输8.1通过Windows剪贴板进行数据传输注意:可通过单击本章后面的超链接来访问本章的内容。
3华南农业大学数学建模训练第一节lingo快速启动在Windows下运行lingo系统时,您会得到一个类似于以下的窗口:外层是主框架窗口,包括所有菜单命令和工具栏,以及所有其他窗口将包含在主窗口下。
lingo入门教程Lingo是一种广泛应用于计算机编程和计算机科学领域的编程语言。
它是用于Adobe Director(一种多媒体应用程序)中的脚本语言,用于控制多媒体元素和动画。
Lingo的语法比较简单易懂,有助于创建交互式和多媒体项目。
下面是一些Lingo的基本概念和用法。
1. 变量(Variables): 在Lingo中,变量用于存储数据值。
变量可以是数字、文本或其他数据类型。
要创建变量,可以使用关键字`global`或`local`,后跟变量名和初始值(可选)。
例如:```global myVariable = 10local myText = "Hello World"```2. 条件语句(Conditional statements): 条件语句用于根据条件执行特定的代码块。
常用的条件语句有`if-then`和`if-then-else`。
例如:```if myVariable > 5 thenalert "Value is greater than 5"elsealert "Value is less than or equal to 5"end if```3. 循环(Loops): 循环用于重复执行一段代码块,直到满足指定条件为止。
Lingo提供了`repeat`和`repeat while`循环语句。
例如:```repeat with i = 1 to 5put iend repeat```4. 函数(Functions): 函数是一组预定义的代码,用于执行特定的任务。
Lingo提供了许多内置函数,如`alert`、`put`等。
您还可以创建自己的函数。
例如:```on multiplyNumbers(a, b)return a * bend multiplyNumbersput multiplyNumbers(2, 4) -- 输出8```这些只是Lingo的一些基本概念和用法。