lingo线性模型

LINGO

使用简介

 

LINGO

软件是美国的

LINDO

系统公司(

Lindo System Inc

)开发的一套用于求解最优

化问题的软件包

.LINGO

除了能用于求解线性规划和二次规划外,还可以用于非线性规划求

解以及一些线性和非线性方程(组)的求解

.LINGO

软件的最大特色在于它允许优化模型中

的决策变量为整数,而且执行速度快

.LINGO

内置了一种建立最优化模型的语言,可以简便

地表达大规模问题,利用

LINGO

高效的求解器可快速求解并分析结果,这里简单介绍

LINGO

的使用方法

LINGO

可以求解线性规划、二次规划、非线性规划、整数规划、图论及网络优化和排

队论模型中的最优化问题等

一个

LINGO

程序一般会包含集合段、数据输入段、优化目标和约束段、初始段和数据

预处理段等部分,

每一部分有其独特的作用和语法规则,

读者可以通过查阅相关的参考书或

LINGO

HELP

文件详细了解,这里就不展开介绍了

LINGO

的主要功能特色为:既能求解线性规划问题,也有较强的求解非线性规划问题

的能力;输入模型简练直观;运算速度快、计算能力强;内置建模语言,提供几十个内部函

数,

从而能以较少语句,

较直观的方式描述大规模的优化模型;

将集合的概念引入编程语言,

很容易将实际问题转换为

LINGO

模型;并且能方便地与

Excel

、数据库等其他软件交换数

LINGO

的语法规定:

 

1

)求目标函数的最大值或最小值分别用

MAX=

…或

MIN=

…来表示;

 

2

)每个语句必须以分号“;

”结束,每行可以有许多语句,语句可以跨行;

 

3

)变量名称必须以字母(

A~Z

)开头,由字母、数字(

0~9

)和下划线所组成,长度

不超过

32

个字符,不区分大小写;

 

4

)可以给语句加上标号,例如

[OBJ]  MAX=200*X1+300*X2

 

5

)以惊叹号“!

”开头,以分号“;

”结束的语句是注释语句;

 

6

)如果对变量的取值范围没有作特殊说明,则默认所有决策变量都非负;

 

7

LINGO

模型以语句“

MODEL

”开头,以“

END

”结束,对于比较简单的模型,

这两个语句可以省略

实验目的

 

 

1.对于给定的实际应用问题,正确的建立线性规划问题数学模型,并用

LINGO

求解; 

2.掌握灵敏度分析以及资源的影子价格的相关分析方法.

 

实验数据与内容

 

问题

1.1

 

 

某工厂在计划期内要安排生产

A

B

两种产品,已知生产单位产品所需设备

台时及对甲、乙两种原材料的消耗,有关数据如表

1.1.

问:应如何安排生产计划,使工厂获

利最大?

 

 

 

 

1

1.1         

资源配置问题的数据

 

产品

资源

 

A B 

可利用资源

 

设备

 

1 2 

8

台时

 

 

4 0 

16

公斤

 

 

0 4 

12

公斤

 

单位利润

 

2

 

3

 

 

建立线性规划问题的数学模型,用

LINGO

求出最优解并做相应的分析

问题

1.2

 

 

某公司饲养实验用的动物以供出售,已知这些动物的生长对饲料中

3

种营养

成分

(蛋白质、

矿物质和维生素)

特别敏感,

每个动物每周至少需要蛋白质

60

g

矿物质

3

g

维生素

8

mg

,该公司能买到

5

种不同的饲料,每种饲料

1

kg

所含各种营养成分和成本如表

1.2

所示,如果每个小动物每周食用饲料不超过

52

kg

,求既能满足动物生长需要,又使总成

本最低的饲料配方

1.2         

配料(食谱)问题的数据

 

饲料

 

营养

 

1

A

 

2

A

 

3

A

 

4

A

 

5

A

 

营养最低

 

 

 

 

 

蛋白质

(

g

0.3 2 

0.6 

1.8 

60 

矿物质

(

g

0.1 0.05 

0.02 

0.2 

0.05 

维生素

(

mg

0.05 0.1 

0.02 0.2 

0.08 

成本(元

/

 kg

 

0.2 0.7 0.4 0.3 

0.5 

 

实验指导

 

问题

1.1

设计划生产

两种产品分别为

,则建立线性规划问题数学模型

 

B

A

,

2

1

,

x

x

+

+

=

0

,

12

4

16

4

8

2

.

3

2

max

2

1

2

1

2

1

2

1

x

x

x

x

x

x

t

s

x

x

S

 

LINGO

MODEL

窗口内输入如下模型:

 

model

max

=2*x1+3*x2; 

x1+2*x2<=8; 

4*x1<=16; 

4*x2<=12; 

end

 

选菜单

Lingo|Solve(

或按

Ctrl+S),

或用鼠标点击“求解”按纽,如果模型有语法错误,则

弹出一个标题为“

LINGO Error Message

(

错误信息

)

的窗口,指出在哪一行有怎样的错误,

每一种错误都有一个编号(具体含义可查阅相关文献或

LINGO

Help

.

改正错误以后再求

解,如果语法通过,

LINGO

用内部所带的求解程序求出模型的解,然后弹出一个标题为

LINGO Solver Status

(求解状态)的窗口,其内容为变量个数、约束条件个数、优化状

态、

耗费内存、所花时间等信息,点击

Close

关闭窗口,屏幕上出现标题为“

Solution Report

(解的报告)的信息窗口,显示优化计算(线性规划中换基迭代)的步数、优化后的目标函

数值、列出各变量的计算结果

.

求解结果:

 

 

2Global optimal solution found at iteration:  

Objective 

value:  14.00000 

Variable 

 

 

Value 

 

 

 

 

 

 

 

 

 

 

 

Reduced Cost 

X1 

 

 

 

 

 

 

 

4.000000 

 

 

 

 

 

 

 

 

 

 

 

0.000000 

X2 

 

 

 

 

 

 

 

2.000000 

 

 

 

 

 

 

 

 

 

 

 

0.000000 

Row    Slack 

or 

Surplus      Dual 

Price 

 

 

 

 

 

 

 

14.00000 

 

 

 

 

 

 

 

 

 

 

 

1.000000 

 

 

 

 

 

 

 

0.000000 

 

 

 

 

 

 

 

 

 

 

 

1.500000 

 

 

 

 

 

 

 

0.000000 

 

 

 

 

 

 

 

 

 

 

0.1250000 

 

 

 

 

 

 

 

4.000000 

 

 

 

 

 

 

 

 

 

 

 

0.000000 

该报告说明:

运行

5

步找到全局最优解,

目标函数值为

14

变量值分别为

.

Reduced Cost

”的含义是需缩减成本系数或需增加利润系数(最优解中取值非零的决策变

量的

Reduced Cost

值等于零)

.

Row

”是输入模型中的行号,目标函数是第一行;

Slack or 

Surplus

”的意思是松弛或剩余,即约束条件左边与右边的差值,对于“

1

2

4,

2

=

=

x

x

”的不等式,右边

减左边的差值为

Slack

(松弛)

,对于

”的不等式,左边减右边的差值为

Surplus

(剩余)

当约束条件两边相等时,松弛或剩余的值等于零

.

Dual Price

”的意思是对偶价格(或称为

影子价格

,上述报告中

Row2

的松弛值为

0

,表明生产甲产品

4

单位、乙产品

2

单位,所

需设备

8

台时已经饱和,对偶价格

1.5

的含义是:如果设备增加

1

台时,能使目标函数值增

1.5.

报告中

Row4

的松弛值为

4

,表明生产甲产品

4

单位、乙产品

2

单位,所需原材料乙

8

公斤还剩余

4

公斤,因此增加原材料乙不会使目标函数值增加,所以对偶价格为

0. 

问题

1.2

设需要饲料

分别为

 kg

,则建立线性规划数学模

型:

 

5

4

3

2

1

,

,

,

,

A

A

A

A

A

5

4

3

2

1

,

,

,

,

x

x

x

x

x

1

2

3

4

5

1

2

3

4

5

1

2

3

4

5

1

2

3

4

5

1

2

3

4

5

1

2

3

4

5

min

0.2

0.7

0.4

0.3

0.5

0.3

2

0.6

1.8

60

0.1

0.05

0.02

0.2

0.05

3

0.05

0.1

0.02

0.2

0.08

8

.

52

,

,

,

,

0

S

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

s

t

x

x

x

x

x

x

x

x

x

x

=

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

 

LINGO

MODEL

窗口内输入如下模型:

 

Min=0.2*x1+0.7*x2+0.4*x3+0.3*x4+0.5*x5; 

0.3*x1+2*x2+x3+0.6*x4+1.8*x5>60; 

0.1*x1+0.05*x2+0.02*x3+0.2*x4+0.05*x5>3; 

0.05*x1+0.1*x2+0.02*x3+0.2*x4+0.08*x5>8; 

x1+x2+x3+x4+x5<52; 

求解输出结果如下

Global optimal solution found at iteration: 

 

Objective 

value:  22.40000 

Variable 

 

 

 

Value 

 

 

 

 

 

 

 

Reduced Cost 

X1 

 

 

 

 

 

 

 

0.000000 

 

 

 

 

 

 

 

 

 

 

0.7000000 

X2 

 

 

 

 

 

 

 

12.00000 

 

 

 

 

 

 

 

 

 

 

 

0.000000 

X3 

 

 

 

 

 

 

 

0.000000 

 

 

 

 

 

 

 

 

 

 

0.6166667 

X4 

 

 

 

 

 

 

 

30.00000 

 

 

 

 

 

 

 

 

 

 

 

0.000000 

X5 

 

 

 

 

 

 

 

10.00000 

 

 

 

 

 

 

 

 

 

 

 

0.000000 

 

3

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值