Lingo solution report中各项的含义.docx
- 文档编号:18025778
- 上传时间:2023-08-07
- 格式:DOCX
- 页数:20
- 大小:1.14MB
Lingo solution report中各项的含义.docx
《Lingo solution report中各项的含义.docx》由会员分享,可在线阅读,更多相关《Lingo solution report中各项的含义.docx(20页珍藏版)》请在冰点文库上搜索。
Lingosolutionreport中各项的含义
即以此功德,庄严佛净土。
上报四重恩,下救三道苦。
惟愿见闻者,悉发菩提心。
在世富贵全,往生极乐国。
(一)优化模型的组成
优化模型包括以下3部分:
l ObjectiveFunction:
目标函数是一个能准确表达所要优化问题的公式。
l Variables:
Decisionvariables(决策变量),在模型中所使用的变量。
l Constraints:
约束条件。
(二)Lingo软件使用的注意事项
(1)LINGO中不区分大小写字母,变量(和行名)可以使用不超过32个字符表示,且必须以字母开头。
(2)在命令方式下(CommandWindow中),必须先输入MODEL:
表示开始输入模型。
LINGO中模型以“MODEL:
”开始,以“END”结束。
对简单的模型,这两个语句也可以省略。
(3)LINGO中的语句的顺序是不重要的,因为LINGO总是根据“MAX=”或“MIN=”语句寻找目标函数,而其它语句都是约束条件(当然注释语句和TITLE除外)。
(4)LINGO模型是由一系列语句组成,每个语句以分号“;”结束。
(5)LINGO中以感叹号“!
”开始的是说明语句(说明语句也需要以分号“;”结束)。
(6)LINGO中解优化模型时假定所有变量非负(除非用限定变量取值范围的函数@free或@sub或slb另行说明)。
(7)当您要判断表达式输入是否有错误时,也可以使用菜单“Lingo“的”Picture“选项。
(8)用命令"@BND(下界,变量名,上界)"设置变量的上界和下界
(9)用命令"@free(x1)"取消变量x1的非负限制,x1可以取正实数和负实数
(10)一般整数变量可以用"@GIN(变量名)"来标识,0-1型变量可以用"@BIN(变量名)"来标识
(三)SolutionReport各项的含义
例1将以下模型粘贴到Lingo中求解,其中第一行MODEL和最后一行END在LingoModel窗口下可以不要。
MODEL:
min=2*x1+3*x2;
x1+x2>=350;
x1>=100;
2*x1+x2<=600;
END
得到如下的结果报告
Globaloptimalsolutionfound.
Objectivevalue:
800.0000
Infeasibilities:
0.000000 !
指矛盾约束的数目;
Totalsolveriterations:
2
ModelClass:
LP
Totalvariables:
2
Nonlinearvariables:
0
Integervariables:
0
Totalconstraints:
4
Nonlinearconstraints:
0
Totalnonzeros:
7
Nonlinearnonzeros:
0
Variable Value ReducedCost
X1 250.0000 0.000000
X2 100.0000 0.000000
Row SlackorSurplus DualPrice
1 800.0000 -1.000000
2 0.000000 -4.000000 !
模型第一行表示目标函数,第二行对应第一个约束;
3 150.0000 0.000000
4 0.000000 1.000000
下面对SolutionReport(LINGO的结果报告窗口)的各个部分进行说明:
Globaloptimalsolutionfound 表示全局最优解找到.
Objectivevalue:
800.0000表示最优目标值为800.0000.
Totalsolveriterations:
2表示用单纯行法进行了两次迭代.
Variable表示变量,此问题中有两个变量X1,X2.
Value给出最优解中各变量(Variable)的值:
X1=250.0000,X2=100.0000.
ReducedCost实际上是与最优单纯形表中的检验数相差一个负号的一个数,以前没有注意到检验数就是非基变量前面的系数啊。
我以前没有注意到最优单纯形表中的各个检验数就是与之对应的非基向量前的系数!
ReducedCost指为了使某个变量在解中的数值增加一个单位,目标函数值必须付出的代价。
如果一个变量的ReducedCost值为8,为了使该变量增加一个单位,在最大化(最小化)问题中,目标函数值将减少(增大)8个单位。
Thereducedcostofavariablemaybeinterpretedastheamountofpenaltyyouwouldhavetopayto introduce oneunit ofthatvariableintothesolution.Again,ifyouhaveavariablewithareducedcostof10,youwouldhavetopayapenaltyof10unitstointroducethevariableintothesolution.Inotherwords,theobjectivevaluewouldfallby10unitsinamaximizationmodelorincreaseby10unitsinaminimizationmodel.
在一个最大值的模型中,ReducedCost对应的非基变量增加一个单位,目标值会有减少ReducedCost;在一个最小值模型中,ReducedCost对应的非基变量增加一个单位,目标值会增大ReducedCost。
ReducedCost它也可以认为是:
在最优化问题中,要使某个变量进入基,该变量在目标函数中的该变量前的系数应该改变的数量。
(在Min问题中要选单纯形表最后一行中最大的正的判别数对应的列为主列[此列对应的变量是进基变量],其目标是使所有的判别数都非正;在Max问题中要选单纯形表最后一行最小的负数对应的变量作为进基变量,其目标是使所有的判别数都非负)例如:
在一个最大化(最小化)问题中,如果一个变量的ReducedCost值为8,则为了使该变量进基,目标函数中该变量前的系数就必须减小(增加)8个单位 (已经经过试验验证,该变量进基后ReducedCost=0)。
Forexample,ifavariablehadareducedcostof10,theobjectivecoefficientofthatvariablewouldhaveto decreaseby10unitsinamaximization problemand/or increaseby10unitsinaminimizationproblem forthevariabletobecomeanattractivealternativetoenterintothesolution. 非基向量要进入基必须将它对应的检验数消为0,直观的将该非基向量的检验数取个负号加到最后一行即可,对应在方程上实际上是此检验数乘以该非基变量后的结果加到最后一行,所以前边有了系数这一说。
ReducedCost给出最优的单纯形表中目标函数行中变量对应的系数.其中基变量的ReducedCost值一定为0;对于非基变量(非基变量本身的取值一定为0)和max问题,相应的ReducedCost值表示当该非基变量增加一个单位(其它非基变量保持不变)时目标函数的减少的量。
这估计也是ReducedCost的reduced所在,很直观。
在这个例子中最优解中两个变量都是基向量,因此对应的ReducedCost的值都为0.
SlackorSurplus表示接近等于的程度。
在约束条件是<=中,通常叫做松弛变量,在约束条件是>=中,通常叫过剩变量。
如果约束条件是=,则SlackorSurplus为0,该约束是个紧约束(或有效约束)。
如果一个约束条件错误,作为一个不可行解,SlackorSurplus为负数。
SlackorSurplus表示的是:
约束离相等还差多少。
如果一个约束是矛盾的(模型无可行解),则Slackorsurplus的值是负数。
知道这些,可以帮助我们发现在一个不可实行的模型(指没有存在同时满足所有约束条件的变量集合)中的错误的约束条件。
第2和第4行松弛变量均为0,说明对于最优解来讲,两个约束(第2和4行)均取等号,即都是紧约束.
DualPrice(Shadowprice)给出对偶价格的值。
表示每增加一个单位(约束右边的常数),目标值改变的数量(在最大化问题中目标函数值是增加,在最小化问题中目标函数值是减少)。
比如,在上一个Min模型中第四行的1,表示2*x1+x2<=600增加一个单位到2*x1+x2<=601,可以使目标值增加-1(因为第一行是目标函数的DualPrice是-1),即Objectivevalue=799;增加-1个单位到599会使目标值增加到801。
Youcaninterpretthedualpriceastheamountthattheobjectivewouldimproveastheright-handside,orconstantterm,oftheconstraintisincreasedbyoneunit. Noticethat"improve"isarelativeterm.Inamaximizationproblem,improvemeanstheobjectivevaluewouldincrease.However,inaminimizationproblem,theobjectivevaluewoulddecreaseifyouweretoincreasetheright-handsideofaconstraintwithapositivedualprice.
对偶价格补充一例:
max=100*x+150*y;
!
约束条件;
x<=80;
y<=100;
x*2+y<=180;
Globaloptimalsolutionfound.
Objectivevalue:
19000.00
Infeasibilities:
0.000000
Totalsolveriterations:
1
ModelClass:
LP
Totalvariables:
2
Nonlinearvariables:
0
Integervariables:
0
Totalconstraints:
4
Nonlinearconstraints:
0
Totalnonzeros:
6
Nonlinearnonzeros:
0
Variable Value ReducedCost
X 40.00000 0.000000
Y 100.0000 0.000000
Row SlackorSurplus DualPrice
1 19000.00 1.000000 !
注意第一行为目标函数,目标函数加1则目标值加1
2 40.00000 0.000000
3 0.000000 100.0000
4 0.000000 50.00000
对偶变量值也叫影子价格,这是由于它们表示可以用多大的价格去购买(租用)单位资源。
上面的模型显示,某人最多愿意花100元购买(租用)一个Y。
对偶问题其实可以在Lingo中自动生成,这可以采用以下两步实现
1.以上原始线性规划问题输入到Lingo中
max=50*x1+30*x2;
4*x1+3*x2<=120;
2*x1+x2<=50;
2.在菜单LINGO下选Genertate->DualModel即可生成原线性规划的对偶问题,结果如下
MODEL:
MIN=120*_2+50*_3;
[X1]4*_2+2*_3>=50; !
我以前不知道[X1]原来是行号
[X2]3*_2+_3>=30;
END
例2 某家具公司制造书桌、餐桌和椅子,所用的资源有三种:
木料、木工和漆工。
生产数据如下表所示:
每个书桌
每个餐桌
每个椅子
现有资源总数
木料
8单位
6单位
1单位
48单位
漆工
4单位
2单位
1.5单位
20单位
木工
2单位
1.5单位
0.5单位
8单位
成品单价
60单位
30单位
20单位
若要求桌子的生产量不超过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;
求解这个模型,查看报告窗口(ReportsWindow):
Globaloptimalsolutionfound.
Objectivevalue:
280.0000
Infeasibilities:
0.000000
Totalsolveriterations:
2
ModelClass:
LP
Totalvariables:
3
Nonlinearvariables:
0
Integervariables:
0
Totalconstraints:
5
Nonlinearconstraints:
0
Totalnonzeros:
13
Nonlinearnonzeros:
0
Variable Value ReducedCost
DESKS 2.000000 0.000000
TABLES 0.000000 5.000000 !
① Tables加1时, Objectivevalue要reduce5变为275
CHAIRS 8.000000 0.000000 !
②验证方法是将tables<=5改为tables=1
Row SlackorSurplus DualPrice
1 280.0000 1.000000 !
注意第一行为目标函数,目标函数加1则目标值加1
2 24.00000 0.000000
3 0.000000 10.00000
4 0.000000 10.00000
5 5.000000 0.000000
“Objectivevalue:
280.0000”表示最优目标值为280。
“Value”给出最优解中各变量的值:
造2个书桌(desks),0个餐桌(tables),8个椅子(chairs)。
所以desks、chairs是基变量(非0),tables是非基变量(0)。
观察单纯性表的最后一行(f行),当所有的检验数都非负,单纯形表左侧的行基向量对应的主列确实是非零的。
还要注意最优解的基变量中无松弛变量(松弛变量的引入将不等式变为等式约束)
“SlackorSurplus”给出松驰变量的值:
第1行松驰变量=280(模型第一行表示目标函数,所以第二行对应第一个约束)
第2行松驰变量=24
第3行松驰变量=0
第4行松驰变量=0
第5行松驰变量=5
Ifaconstraintisexactlysatisfiedasanequality,theslackorsurplusvaluewillbezero.Ifaconstraintisviolated,asinaninfeasiblesolution,theslackorsurplusvaluewillbenegative.Knowingthiscanhelpyoufindtheviolatedconstraintsinaninfeasiblemodel—amodelforwhichtheredoesn’texistasetofvariablevaluesthatsimultaneouslysatisfiesallconstraints.
“ReducedCost”列出最优单纯形表中判别数所在行的变量的系数,表示当变量有微小变动时,目标函数的变化率。
其中基变量的reducedcost值应为0,对于非基变量Xj,相应的reducedcost值表示当某个变量Xj增加一个单位时目标函数减少的量(max型问题)。
本例中:
变量tables对应的reducedcost值为5,表示当非基变量tables的值从0变为1时(此时假定其他非基变量保持不变,但为了满足约束条件,基变量显然会发生变化),最优的目标函数值=280-5=275。
“DUALPRICE”(对偶价格)表示当对应约束有微小变动时,目标函数的变化率。
输出结果中对应于每一个约束有一个对偶价格。
若其数值为p,表示对应约束中不等式右端项若增加1个单位,目标函数将增加p个单位(max型问题)。
显然,如果在最优解处约束正好取等号(也就是“紧约束”,也称为有效约束或起作用约束),对偶价格值才可能不是0。
本例中:
第3、4行是紧约束,对应的对偶价格值为10,表示当紧约束4DESKS+2TABLES+1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Lingo solution report中各项的含义 report 各项 含义