好文档 - 专业文书写作范文服务资料分享网站

Lingo教程 - 图文 

天下 分享 时间: 加入收藏 我要投稿 点赞

LINGO教程

LINGO教程

LINGO是用来求解线性和非线性优化问题的简易工具。LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果。

§1 LINGO快速入门

? 安装:实验室的所有电脑都已经事先安装好了Lingo 8(或者9, 10, 11)。

如果要在自己的电脑上安装这个软件,建议从网上下载一个破解版的, 按照提示一步一步地安装完毕。

? 简单例子:当你在windows系统下开始运行LINGO时,会得到类似于下面的

一个窗口:

外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO的默认模型窗口,建立的模型都要在该窗口内编码实现。下面举两个例子。

例 1 某工厂在计划期内要安排生产I、II两种产品,已知生产单位产品所需的设备台时及A、B两种原材料的消耗,如表所示。 设备 原材料A 原材料B

共53页 1

产品I 1 4 0 产品II 2 0 4 8台时 16kg 12kg LINGO教程

该工厂每生产一件产品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;

共53页 2

LINGO教程

4*x1<16; 4*x2<12;

注意:1.每一个lingo表达式最后要跟一个分号;

2.多数电脑中没有?符号,lingo中<=代替;为了方便可以用<代替小于等于,用>代替大于等于。

3.我们可以添加一些注释,增加程序的可读性。注释以一个!(叹号必须在英文状态下输入,它会自动变为绿色)开始,以;(分号)结束。

4.Lingo中不区分变量名的大小写。变量名必须以字母(A-Z)开头,后面的字符可以是字母、数字、下划线。变量名不能超过32个字符。

点击工具栏上的按钮或者用Lingo菜单下的solve求解这个模型,如果模型没有语法错误,即可得到如下结果。

Global optimal solution found. 已经找到全局最优解

Objective value: 14.00000 目标函数值

Infeasibilities: 0.000000 不可行的约束数

Total solver iterations: 1 迭代次数

Variable Value Reduced Cost

X1 4.000000 0.000000

X2 2.000000 0.000000

Row Slack or Surplus Dual Price

1 14.00000 1.000000

2 0.000000 1.500000

3 0.000000

共53页 3

LINGO教程

0.1250000

4 4.000000 0.000000

Reduced Cost()

非基变量变为基变量时目标函数的系数必须的增加值。 Dual Price(对偶价格或者影子价格)

在编译阶段没有语法错误,lingo会调用内部的求解器开始为你的模型搜索最优解,还最后会显示一个求解状态窗口:

求解状态窗口内各项:

Variables Box(变量框)

? Total: 模型中的变量总个数 (total number of variables in the model) ? Nonlinear: 模型中非线形变量的个数(the number of the total variables

that are nonlinear) 注: X * X + Y = 100; 中X是非线性变量,Y是线性变量。

? Integer: 模型中整数变量的个数(total number of integer variables

in the model)

共53页 4

LINGO教程

注意:计算各种变量个数时,不计算可以确定变量值的变量。如:如果约束条件中x=10,那么这个变量不被看做是一个变量 Constraints Box

? Total:所有的约束条件个数(total constraints in the expanded model) ? Nonlinear:所有的非线性约束的个数(the number of these constraints

that are nonlinear)

Nonzeroes Box(约束框) Total:模型中非零系数的个数。 Nonlinear:非线性变量个数。

如果一个约束条件里中的所有变量都是确定的,则约束条件不进行计数。

The Nonzeros box shows the total nonzero coefficients in the model and the number of these that appear on nonlinear variables

Nonzeroes Box(非零框)

显示该模型的总非零系数和非线性的这些变量出现的数目。

Generator Memory Used Box 求解时使用的内存量 Elapsed Runtime Box

求解模型时用的时间,这个会受电脑运行的其他程序的影响。

Solver Status Box

Field Model Class Description Displays the model’s classification. Possible classes are \(线性规划)\(二次规划)\(整数线性规划)\(整数二次规划)\(纯整数线性规划)\\(纯整数二次规划)\\(非线性规划)\(整数非线性规划)\(纯整数非线性规划)\Gives the Status of the current solution. State 共53页 5

Lingo教程 - 图文 

LINGO教程LINGO教程LINGO是用来求解线性和非线性优化问题的简易工具。LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果。
推荐度:
点击下载文档文档为doc格式
5m4ob1oaqr0fluh9baxd
领取福利

微信扫码领取福利

微信扫码分享