-
Lingo solution
report
中各项的含义
(一)优化模型的组成
优化模型包括
以下
3
部分:
l
Objective Function
:目标函数是一个能准确表达所要优化问题的公式。
l<
/p>
Variables
:
Decision
variables
(决策变量),在模型中所使用的变量。
l
Constraints
:约束条件
。
(二)
Lingo
软件使用的注意事项
(
1<
/p>
)
LINGO
中不区分大小写字母,变量
(和行名)可以使用不超过
32
个字符表示,且必须以字母
p>
开头。
(
2
p>
)在命令方式下(
Command Window
< br>中),必须先输入
MODEL
:表示开始输入模型。
p>
LINGO
中模型以
“MODEL:”
p>
开始,以
“END”
结束。对简单的模型,
这两个语句也可以省略。
(
3
)
LINGO
中的语句的顺序是不重要的,因
为
LINGO
总是根据
“MAX=”<
/p>
或
“MIN=”
语句寻找目标函
数,而其它语句都是约束条件(当然注释语句和
TITLE
除外)。
(
4
)
LINGO
模型是由一系列语句组成,每个语句
以分号
“;”
结束。
(
5
)
LINGO
中以感叹号
“!”
开始的是说明语句(说明语句也
需要以分号
“;”
结束)。
(
6
)
LINGO
p>
中解优化模型时假定所有变量非负
(除非用限定变量取值范围的函数
@free
或
@sub
或
slb
另行说明)。
(三)
Solution
Report
各项的含义
例
1
将以下模型粘贴到
Lingo
中求解,其中第一行
MODEL
和最后一行
END
在
L
ingo Model
窗口下可以
不要。
MODEL:
min = 2*x1 + 3*x2;
x1 + x2 >= 350;
x1 >= 100;
2*x1 + x2 <= 600;
END
得到如下的结果报告
Global
optimal solution found.
Objective
value: 800.0000
Infeasibilities:
0.000000
!指矛盾约束的数目;
Total solver iterations: 2
Model Class: LP
Total
variables: 2
Nonlinear variables: 0
Integer variables: 0
Total
constraints: 4
Nonlinear constraints: 0
Total nonzeros: 7
Nonlinear
nonzeros: 0
Variable Value Reduced Cost
X1 250.0000 0.000000
X2
100.0000 0.000000
Row Slack or Surplus
Dual Price
1 800.0000 -1.000000
2 0.000000 -4.000000
!
模型第一行表示目标函数,第二行对应第一个约束
;
3 150.0000 0.000000
4 0.000000 1.000000
下面对
Solution Report
(
LINGO
的结果报告窗口)的各个部分进行说明:
Global optimal solution found
表示全局最优解找到
.
Objective value: 800.0000
表示最优目标值为
800.0000.
Total solver iterations: 2
表示用单纯行法进行了两次迭代
.
Variable
表示变量
,
此问题中有两个变量
X1, X2.
Value
给出最优解中各变量
(V
ariable)
的值
: X1=250.0000,
X2=100.0000.
Reduced Cost <
/p>
实际上是与最优单纯形表中的检验数相差一个负号的一个
数。注意
下面的
A'y = z
Reduced Cost
指为了使某个变量在解中的数值增加一个单位,目标函数值
必须付出的
代价。如果一个变量的
Reduced Cost
值为
8
,为了使该变量增加一
个单位,在最大化(最
小化)问题中,目标函数值将减少(增大)
8
个单位。
在一个最大值的模型中
,
Reduced Cost
对应的非基变量增加一个单位
,目标值会
有减少
Reduced
Cost
;在一个最小值模型中,
Reduced Cost<
/p>
对应的非基变量增
加一个单位,目标值会增大
Reduced Cost
。
Reduced Cost
它也可以认为是:在最优化问题中,
要使某个变量进入基,
该变量在目标函数中的系数
应该改变的数
量。
(
在
Min
问题中要选单纯形表最后
一行中最大的正的判别数对应的列为主列
[
此列对应的变量是进基变量
]
,
其目标
是使所有的判别数都非正;在
Max
问题中要选单纯形表最后一行最小的负数对
应的变量作为进基变量,其目标是使所有
的判别数都非负
)
例如:在一个最大化
(最小化)问题中,如果一个变量的
Reduced Cost
值为
8
,则为了使该变量进
基,目标函
数中该变量的系数就必须增加(减少)
8
个单位。
非基向量要进入基
必须将它对应的检验数消为
0
p>
,直观的将该非基向量的检验数取个负号加到最后
一行即可
,
对应在方程上实际上是此检验数乘以该非基变量后的结果加到最后一<
/p>
行,所以前边有了系数这一说
。
Reduced Cost
给出最优的单纯形表中
目标函数行
中变量对应的系数
.
其中基变量的
Reduced Cost
值一
定为
0;
对于非基变量
(
非基变量本身的取值一定为
0)
和
max
问题
,
相应的
Reduced Cost
值表示当该非基
变
量增加一个单位
(
其它非基变量保持
不变
)
时目标函数的减少的量
。
这估计也是
Reduced
Cost
的
reduced
所
在,很直观。
在这个例子中最优解中两个变量都是基向量
,
因此对应的
Reduced
Cost
的值都为
0.
Slack or Surplus
表示接近等于的程度
。
在约束条件是
<=
中
,
通常叫做松弛变量,
在约束条件是
>=
中,通常叫过剩变量。如果约束条件是
=
,则
Slack or Surplus
为
0
,该约束是个紧约束
(<
/p>
或有效约束
)
。如果一个约束条件错误,
作为一个不可行
解,
Slack or
Surplus
为负数。
Slack or Surplus<
/p>
表示的是:约束离相等还差多少。
如果一个约束是矛盾的(模型无
可行解),则
Slack or surplus
的值是负数。
知
道这些,可以帮助我们发现在一个不可实行的模型
(指没有存
在同时满足所有约
束条件的变量集合)
中的错误的约束条件。<
/p>
第
2
和第
4
p>
行松弛变量均为
0,
说明对于最优解来
p>
讲
,
两个约束
(<
/p>
第
2
和
4
行
)
均取等号
,
p>
即都是紧约束
.
Dual Price
(
Shadow price
)
给出对
偶价格的值。表示
每增加一个单位
(
约
束右边的常数
)
,
目标
值改变的数量
(在最大化问题中目标函数值是增加,在最小化问题中目标函数值
是减少)
。比如,在上一个
Min
p>
模型中第四行的
1
,表示
< br>2*x1 + x2 <= 600
增加
一个单位到
2*x1 +
x2 <= 601
,可以使目标值增加
-1(
因为第一行是目标函数的
Dual Price
是
p>
-1)
,
即
Obj
ective value = 799;
增加
-1
个单位到
599
会使目标值增
< br>加到
801
。
对偶价格补充一例:
max=100*x+150*y;
!
约束条件
;
x<=80;
y<=100;
x*2+y<=180;
Global optimal solution found.
Objective value: 19000.00
Infeasibilities: 0.000000
Total solver iterations: 1
Model Class: LP
Total variables: 2
Nonlinear
variables: 0
Integer variables:
0
Total constraints: 4
Nonlinear constraints: 0
Total nonzeros: 6
Nonlinear
nonzeros: 0
Variable Value
Reduced Cost
X 40.00000 0.000000
Y 100.0000 0.000000
Row Slack or Surplus Dual Price
1 19000.00 1.000000
2
40.00000 0.000000
3 0.000000 100.0000
4 0.000000 50.00000
< br>对偶变量值也叫影子价格,这是由于它们表示可以用多大的价格去购买(租用)单位资源。上面的模型显< /p>
示,某人最多愿意花
100
元购买(租用
)一个
Y
。
例
2 <
/p>
某家具公司制造书桌、餐桌和椅子,所用的资源有三种:木料、木工和漆工。生产数据如下
表所示:
每个书桌
木料
漆工
木工
成品单
价
若要求桌子的生产量不超过
5
件,如何
安排三种产品的生产可使利润最大?
用
DESKS
、
TABLES
和
CHAIRS
分别表示三种产品的生产量,建立
LP
模型。
max=60*desks+30*tables+20*chairs;
8*desks+6*tables+chairs<=48;
4*desks+2*tables+1.5*chairs<=20;
2*desks+1.5*tables+.5*chairs<=8;
tables<=5;
求解这个模型,查看报告窗口(
Reports
Window
)
:
Global
optimal solution found.
Objective
value: 280.0000
Infeasibilities:
0.000000
Total solver iterations: 2
8
单位
4
单位
2
单位
6
单位
2
单位
1.5
单位
1
单位
1.5
单位
0.5
单位
每个餐桌
每个椅子
现有资源总
数
48
单位
20
单位
8
单位
60
单位
30
单位
20
单位
Model Class: LP
Total
variables: 3
Nonlinear variables: 0
Integer variables: 0
Total
constraints: 5
Nonlinear constraints: 0
Total nonzeros: 13
Nonlinear
nonzeros: 0
Variable Value Reduced Cost
DESKS 2.000000 0.000000
TABLES 0.000000 5.000000
CHAIRS 8.000000 0.000000
Row
Slack or Surplus Dual Price
1 280.0000
1.000000
2 24.00000 0.000000
3 0.000000 10.00000
4
0.000000 10.00000
5 5.000000 0.000000
“Objective value:280.0000”
表示
最优目标值为
280
。
“Value”
给出最优解中各变量的值
:
造
2
个书桌
(
desks
)
,
0<
/p>
个餐桌
(
tables
< br>)
, 8
个椅子
(
chairs
)
。所以
de
sks
、
chairs
是基变量
(非
0
)
,
tables
是非基变量
(
0
)。
观察单纯性表的最后一行
(
f
行
)
,当所有的检验数都非负,单纯
形表左侧的行基向量对应的主列确实是非零
的。
还要注意最优解
的基变量中无松弛变量(松弛变量的引入将不等式变为等式约束)
“Slack or
Surplus”
给出松驰变量的值:
第
1
行松驰变量
< br>=280
(模型第一行表示目标函数,所以第二行对应第一个约束)
第
2
行松驰变量
=24
第
3
行松驰变量
=0
第
4
行松驰变量
=0
第
5
行
松驰变量
=5
“Reduced
Cost”
列出最优单纯形表中判别数所在行的变量的系数
,<
/p>
表示当变量有微小变动时
,
目标函
p>
数的变化率。其中基变量的
reduced cost
值应为
0
,对于非基变量
Xj,
相应的
reduced
cost
值表示当某
个变量
Xj
增加一个单位时目标函数减少的量
( max
< br>型问题
)
。本例中:变量
tab
les
对应的
reduced cost
值
为
5
,
表
示当非基变量
tables
的值从
0<
/p>
变为
1
时
p>
(此时假定其他非基变量保持不变
,
但为了
满足约束条件,
基变量显然会发生变化),最优的目标函数值
= 280 - 5 = 275
。
“DUAL
PRICE”
(对偶价格)表示当对应约束有微小变动时
, <
/p>
目标函数的变化率。输出结果中对应于
每一个约束有一个对偶价格
。若其数值为
p
,表示对应约束中不等式右端项若增加
1
个单位,目标函数将
增加
< br>p
个单位(
max
型问题)。显
然,如果在最优解处约束正好取等号(也就是
“
紧约束
”
,也称为有效约
束或起作用约束),对偶价格
值才可能不是
0
。本例中:第
3
、
4
行是紧约束,对应的对偶价格值为
10
,
-
-
-
-
-
-
-
-
-
上一篇:北京市英语会考单选原题
下一篇:Lingo 中各项的含义