Lingo 中各项的含义 - 图文

更新时间:2024-05-07 05:25:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Lingo solution report中各项的含义

(一)优化模型的组成 优化模型包括以下3部分:

l Objective Function:目标函数是一个能准确表达所要优化问题的公式。 l Variables:Decision variables(决策变量),在模型中所使用的变量。 l Constraints:约束条件。 (二)Lingo软件使用的注意事项

(1)LINGO中不区分大小写字母,变量(和行名)可以使用不超过32个字符表示,且必须以字母开头。

(2)在命令方式下(Command Window中),必须先输入MODEL:表示开始输入模型。LINGO中模型以“MODEL:”开始,以“END”结束。对简单的模型,这两个语句也可以省略。

(3)LINGO中的语句的顺序是不重要的,因为LINGO总是根据“MAX=”或“MIN=”语句寻找目标函数,而其它语句都是约束条件(当然注释语句和TITLE除外)。

(4)LINGO模型是由一系列语句组成,每个语句以分号“;”结束。 (5)LINGO中以感叹号“!”开始的是说明语句(说明语句也需要以分号“;”结束)。 (6)LINGO中解优化模型时假定所有变量非负(除非用限定变量函数@free或@sub或slb另行说明)。

(三)Solution Report各项的含义

例1 将以下模型粘贴到Lingo中求解,其中第一行MODEL和最后一行END在Lingo 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 给出最优解中各变量(Variable)的值: X1=250.0000, X2=100.0000. Reduced Cost 实际上是与最优单纯形表中的检验数相差一个负号的一个数。注意下面的A'y = z

Reduced Cost指为了使某个变量在解中的数值增加一个单位,目标函数值必须付出的代价。如果一个变量的Reduced Cost值为8,为了使该变量增加一个单位,在最大化(最小化)问题中,目标函数值将减少(增大)8个单位。 在一个最大值的模型中,Reduced Cost 对应的非基变量增加一个单位,目标值会有减少Reduced Cost;在一个最小值模型中,Reduced Cost对应的非基变量增加一个单位,目标值会增大Reduced Cost。

Reduced Cost它也可以认为是:在最优化问题中,要使某个变量进入基,该变量在目标函数中的系数应该改变的数量。(在Min问题中要选单纯形表最后一行中最大的正的判别数对应的列为主列[此列对应的变量是进基变量],其目标是使所有的判别数都非正;在Max问题中要选单纯形表最后一行最小的负数对应的变量作为进基变量,其目标是使所有的判别数都非负)

例如:在一个最大化(最小化)问题中,如果一个变量的Reduced Cost值为8,则为了使该变量进基,目标函数中该变量的系数就必须增加(减少)8个单位。非基向量要进入基必须将它对应的检验数消为0,直观的将该非基向量的检验数取个负号加到最后一行即可,对应在方程上实际上是此检验数乘以该非基变量后的结果加到最后一行,所以前边有了系数这一说。

Reduced Cost 给出最优的单纯形表中目标函数行中变量对应的系数. 其中基变量的Reduced Cost值一定为0;对于非基变量(非基变量本身的取值一定为0)和

max问题,相应的Reduced Cost值表示当该非基变量增加一个单位(其它非基变量保持不变)时目标函数的减少的量。这估计也是Reduced Cost的reduced 所在,很直观。在这个例子中最优解中两个变量都是基向量, 因此对应的Reduced Cost的值都为0.

Slack or Surplus表示接近等于的程度。在约束条件是<=中,通常叫做松弛变量,在约束条件是>=中,通常叫过剩变量。如果约束条件是=,则Slack or Surplus为0,该约束是个紧约束(或有效约束)。如果一个约束条件错误,作为一个不可行解,Slack or Surplus为负数。Slack or Surplus表示的是:约束离相等还差多少。如果一个约束是矛盾的(模型无可行解),则Slack or surplus的值是负数。知道这些,可以帮助我们发现在一个不可实行的模型(指没有存在同时满足所有约束条件的变量集合)中的错误的约束条件。第2和第4行松弛变量均为0,说明对于最优解来讲,两个约束(第2和4行)均取等号,即都是紧约束. Dual Price (Shadow price)给出对偶价格的值。表示每增加一个单位(约束右边的常数),目标值改变的数量(在最大化问题中目标函数值是增加,在最小化问题中目标函数值是减少)。比如,在上一个Min模型中第四行的1,表示2*x1 + x2 <= 600增加一个单位到2*x1 + x2 <= 601,可以使目标值增加-1(因为第一行是目标函数的Dual Price是-1),即Objective value = 799; 增加-1个单位到599会使目标值增加到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

对偶变量值也叫影子价格,这是由于它们表示可以用多大的价格去购买(租用)单位资源。上面的模型显示,某人最多愿意花100元购买(租用)一个Y。

只能是“原料增加10(桶牛奶)”时最优基保持不变,所以影子价格有意义,即利润的增加大于牛奶的投资。反过来,原料增加超过10(桶牛奶),影子价格是否一定没有意义?最优基是否一定改变?一般来说,这是不能从灵敏性分析报告中直接得到的。此时,应该重新用新数据求解规划模型,才能做出判断。所以,从正常理解的角度来看,我们上面回答“原料最多增加10(桶牛奶)”并不是完全科学的。

本文来源:https://www.bwwdw.com/article/zx5g.html

Top