Lingo-中各项的含义_第1页
Lingo-中各项的含义_第2页
Lingo-中各项的含义_第3页
Lingo-中各项的含义_第4页
Lingo-中各项的含义_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Lingo solution report中各项的含义(一)优化模型的组成优化模型包括以下 3 部分:l Objective Function:目标函数是一个能准确表达所要优化问题的公式。l Variables : Decision variables (决策变量),在模型中所使用的变量。l Constraints :约束条件。(二)Lingo 软件使用的注意事项(1)LINGO中不区分大小写字母,变量(和行名)可以使用不超过32 个字符表示,且必须以字母开头。(2)在命令方式下( CommandW indow中),必须先输入 MODE:L 表示开始输 入模型。 LINGO 中模型以“ MOD

2、EL”: 开始,以“ END”结束。对简单的模型,这 两个语句也可以省略。(3)LINGO中的语句的顺序是不重要的,因为 LINGO总是根据“ MAX”= 或 “MIN=”语句寻找目标函数,而其它语句都是约束条件(当然注释语句和TITLE除外)。(4)LINGO模型是由一系列语句组成,每个语句以分号“ ; ”结束。(5)LINGO中以感叹号“ ! ”开始的是说明语句(说明语句也需要以分号 “; ”结束)。(6)LINGO中解优化模型时假定所有变量非负(除非用限定变量函数 free 或 sub或 slb 另行说明)。(三)Solution Report 各项的含义例 1 将以下模型粘贴到 Lin

3、go 中求解,其中第一行 MODE和L 最后一行 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.0000Infeasibilities: 0.000000!指矛盾约束的数目;Total solver iterations: 2Model Class: LPTotal variables: 2Nonlinear variables: 0In

4、teger variables: 0Total constraints: 4Nonlinear constraints: 0Total nonzeros: 7Nonlinear nonzeros: 0Variable Value Reduced CostX1 250.0000 0.000000X2 100.0000 0.000000Row Slack or Surplus Dual Price1 800.0000 -1.0000002 0.000000 -4.000000 ! 模型第一行表示目标函数,第二行对应第一个约束3 150.0000 0.0000004 0.000000 1.00000

5、0下面对 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 实际上是与最优单纯形表中的检验数相差一个负号的一

6、个 数。注意 下面的 Ay = zReduced Cost 指为了使某个变量在解中的数值增加一个单位,目标函数值 必须付出的代价。如果一个变量的 Reduced Cost 值为 8,为了使该变量增加一 个单位,在最大化(最小化)问题中,目标函数值将减少(增大) 8 个单位。 在一个最大值的模型中, Reduced Cost 对应的非基变量增加一个单位,目标值 会有减少 Reduced Cost ;在一个最小值模型中, Reduced Cost 对应的非基变量 增加一个单位,目标值会增大 Reduced Cost 。Reduced Cost 它也可以认为是:在最优化问题中,要使某个变量进入基,

7、该变量在目标函数中的系数 应该改变的数量。 (在 Min 问题中要选单纯形表最后 一行中最大的正的判别数对应的列为主列 此列对应的变量是进基变量 ,其目标 是使所有的判别数都非正; 在 Max问题中要选单纯形表最后一行最小的负数对应 的变量作为进基变量,其目标是使所有的判别数都非负 )例如:在一个最大化(最小化)问题中,如果一个变量的 Reduced Cost 值 为 8 ,则为了使该变量进基,目标函数中该变量的系数就必须增加(减少)8 个单位。 非基向量要进入基必须将它对应的检验数消为 0,直观的将该非基向量的 检验数取个负号加到最后一行即可, 对应在方程上实际上是此检验数乘以该非基 变量后

8、的结果加到最后一行,所以前边有了系数这一说 。Reduced Cost 给出最优的单纯形表中 目标函数行 中变量对应的系数 . 其中基变 量的 Reduced Cost 值一定为 0; 对于非基变量 ( 非基变量本身的取值一定为 0)和 max问题, 相应的 Reduced Cost 值表示当该非基变量增加一个单位 ( 其它非基变 量保持不变 ) 时目标函数的减少的量。 这估计也是 Reduced Cost 的 reduced 所 在,很直观。 在这个例子中最优解中两个变量都是基向量 , 因此对应的 Reduced Cost 的值都为 0.Slack or Surplus 表示接近等于的程度。

9、在约束条件是 =中,通常叫过剩变量。如果约束条件是 =,则 Slack or Surplus 为 0,该约束是个紧约束 ( 或有效约束 ) 。如果一个约束条件错误,作为 一个不可行解, Slack or Surplus 为负数。 Slack or Surplus 表示的是:约束 离相等还差多少。 如果一个约束是矛盾的 (模型无可行解),则 Slack or surplus 的值是负数。 知道这些, 可以帮助我们发现在一个不可实行的模型 (指没有存在 同时满足所有约束条件的变量集合) 中的错误的约束条件。 第 2 和第 4行松弛变 量均为 0,说明对于最优解来讲 ,两个约束(第2和4行)均取等号

10、,即都是紧约束 . 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;! 约

11、束条件 ;x=80;y=100;x*2+y=180;Global optimal solution found. Objective value: 19000.00 Infeasibilities: 0.000000Total solver iterations: 1Model Class: LPTotal variables: 2Nonlinear variables: 0Integer variables: 0Total constraints: 4Nonlinear constraints: 0Total nonzeros: 6Nonlinear nonzeros: 0Variable

12、Value Reduced CostX 40.00000 0.000000Y 100.0000 0.000000Row Slack or Surplus Dual Price1 19000.00 1.0000002 40.00000 0.0000003 0.000000 100.00004 0.000000 50.00000对偶变量值也叫影子价格,这是由于它们表示可以用多大的价格去购买(租用) 单位资源。上面的模型显示,某人最多愿意花 100 元购买(租用)一个 Y。例 2 某家具公司制造书桌、餐桌和椅子,所用的资源有三种:木料、木工和漆 工。生产数据如下表所示:每个书桌每个餐桌每个椅子现有资

13、源 总数木料8 单位6 单位1 单位48 单位漆工4 单位2 单位1.5 单位20 单位木工2 单位1.5 单位0.5 单位8 单位成品单价60单位30 单位20 单位若要求桌子的生产量不超过 5 件,如何安排三种产品的生产可使利润最大? 用 DESK、S 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;求解这个

14、模型,查看报告窗口( Reports Window ):Global optimal solution found.Objective value: 280.0000Infeasibilities: 0.000000Total solver iterations: 2Model Class: LPTotal variables: 3 Nonlinear variables: 0 Integer variables: 0Total constraints: 5 Nonlinear constraints: 0Total nonzeros: 13 Nonlinear nonzeros: 0Vari

15、able 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 个书桌

16、(desks), 0个餐桌(tables ), 8 个椅子(chairs )。 所以 desks 、chairs 是基变量(非 0),tables 是非基变量( 0)。 观察单纯性表 的最后一行 (f 行) ,当所有的检验数都非负,单纯形表左侧的行基向量对应的主 列确实是非零的。 还要注意最优解的基变量中无松弛变量(松弛变量的引入将 不等式变为等式约束)“Slack or Surplus ”给出松驰变量的值:第 1 行松驰变量 =280 (模型第一行表示目标函数,所以第二行对应第一个 约束)第 2 行松驰变量 =24第 3 行松驰变量 =0第 4 行松驰变量 =0第 5 行松驰变量 =5“Re

17、duced Cost”列出最优单纯形表中判别数所在行的变量的系数, 表示当 变量有微小变动时 , 目标函数的变化率。其中基变量的 reduced cost 值应为 0, 对于非基变量 Xj, 相应的 reduced cost 值表示当某个变量 Xj 增加一个单位时 目标函数减少的量 ( max 型问题) 。本例中:变量 tables 对应的 reduced cost 值为 5,表示当非基变量 tables 的值从 0 变为 1 时(此时假定其他非基变量保 持不变 , 但为了满足约束条件,基变量显然会发生变化) ,最优的目标函数值 = 280 - 5 = 275 。DUALP RICE”(对偶价

18、格)表示当对应约束有微小变动时 , 目标函数的变 化率。输出结果中对应于每一个约束有一个对偶价格。 若其数值为 p,表示对 应约束中不等式右端项若增加 1 个单位,目标函数将增加 p 个单位(max型问题)。 显然,如果在最优解处约束正好取等号 (也就是“紧约束”, 也称为有效约束或 起作用约束),对偶价格值才可能不是 0。本例中:第 3、4 行是紧约束,对应的 对偶价格值为 10,表示当紧约束 4 DESKS + 2 TABLES + 1.5 CHAIRS = 20 变 为 4 DESKS + 2 TABLES + 1.5 CHAIRS options-generalsolver-dualc

19、omputations:prices & ranges-ok.菜单 lingo-range灵敏度分析的结果是Ranges in which the basis is unchanged:Objective Coefficient Ranges:Current Allowable AllowableVariable Coefficient Increase Decrease DESKS 60.00000 20.00000 4.000000 TABLES 30.00000 5.000000 INFINITY CHAIRS 20.00000 2.500000 5.000000Righthand Si

20、de Ranges:Current Allowable AllowableRow RHS Increase Decrease2 48.00000 INFINITY 24.000003 20.00000 4.000000 4.0000004 8.000000 2.000000 1.3333335 5.000000 INFINITY 5.000000目标函数中 DESKS变量原来的费用系数为 60,允许增加( Allowable Increase ) =20、允许减少( Allowable Decrease )=4,说明当它在 60-4 ,60+20 = 56 , 80 范围变化时,最优基保持不变

21、。对 TABLES、CHAIRS变量,可以类似解释。由 于此时约束没有变化(只是目标函数中某个费用系数发生变化) ,所以最优基保 持不变的意思也就是最优解不变(当然,由于目标函数中费用系数发生了变化, 所以最优值会变化)。第 2 行约束中右端项( Right Hand Side ,简写为 RHS)原来为 48,当它在 48-24 ,48+ = 24 ,范围变化时,最优基保持不变。第 3、4、5 行可以 类似解释。不过由于此时约束发生变化,最优基即使不变,最优解、最优值也会 发生变化。灵敏性分析结果表示的是最优基保持不变的系数范围。 由此,也可以进一步 确定当目标函数的费用系数和约束右端项发生小

22、的变化时, 最优基和最优解、 最 优值如何变化。下面我们通过求解一个实际问题来进行说明。例 3 : 一奶制品加工厂用牛奶生产 A1,A2 两种奶制品, 1 桶牛奶可以在甲车间用12 小时加工成 3公斤 A1,或者在乙车间用 8 小时加工成 4 公斤 A2。根据市场需 求,生产的 A1,A2 全部能售出,且每公斤 A1获利 24元,每公斤 A2获利 16 元。 现在加工厂每天能得到 50 桶牛奶的供应,每天正式工人总的劳动时间 480小时, 并且甲车间每天至多能加工 100 公斤 A1,乙车间的加工能力没有限制。试为该 厂制订一个生产计划,使每天获利最大,并进一步讨论以下 3 个附加问题:1)

23、若用 35元可以买到 1 桶牛奶,应否作这项投资?若投资,每天最多购 买多少桶牛奶?2) 若可以聘用临时工人以增加劳动时间, 付给临时工人的工资最多是每小 时几元?3) 由于市场需求变化,每公斤 A1的获利增加到 30 元,应否改变生产计划? 解:模型代码如下max=72*x1+64*x2;x1+x2=50;12*x1+8*x2=480;3*x1=100;求解这个模型并做灵敏性分析,结果如下。Global optimal solution found at iteration: 0Objective value: 3360.000Variable Value Reduced CostX1 20

24、.00000 0.000000X2 30.00000 0.000000Row Slack or Surplus Dual Price1 3360.000 1.0000002 0.000000 48.000003 0.000000 2.0000004 40.00000 0.000000Ranges in which the basis is unchanged:Objective Coefficient RangesCurrent Allowable AllowableVariable Coefficient Increase DecreaseX1 72.00000 24.00000 8.000

25、000X2 64.00000 8.000000 16.00000Righthand Side RangesRow Current Allowable AllowableRHS Increase Decrease2 50.00000 10.00000 6.6666673 480.0000 53.33333 80.000004 100.0000 INFINITY 40.00000结果告诉我们: 这个线性规划的最优解为 x1=20,x2=30,最优值为 z=3360, 即用 20 桶牛奶生产 A1, 30桶牛奶生产 A2,可获最大利润 3360元。输出中除了 告诉我们问题的最优解和最优值以外, 还有

26、许多对分析结果有用的信息, 下面结 合题目中提出的 3 个附加问题给予说明。 3 个约束条件的右端不妨看作 3 种“资 源”:原料、劳动时间、车间甲的加工能力。输出中Slack or Surplus 给出这3 种资源在最优解下是否有剩余: 原料、劳动时间的剩余均为零, 车间甲尚余 40 (公斤)加工能力。目标函数可以看作“效益”, 成为紧约束的“资源”一旦增加, “效益”必 然跟着增长。输出中 DUAL PRICES给 出这 3 种资源在最优解下“资源”增加 1 个单位时“效益”的增量:原料增加 1个单位( 1 桶牛奶)时利润增长 48(元), 劳动时间增加 1 个单位(1 小时)时利润增长

27、2(元),而增加非紧约束车间甲的 能力显然不会使利润增长。 这里,“效益”的增量可以看作“资源”的潜在价值, 经济学上称为影子价格,即 1 桶牛奶的影子价格为 48 元,1 小时劳动的影子价 格为 2元,车间甲的影子价格为零。 读者可以用直接求解的办法验证上面的结论, 即将输入文件中原料约束 milk )右端的 50 改为 51,看看得到的最优值(利润) 是否恰好增长 48(元)。用影子价格的概念很容易回答附加问题 1):用 35 元可 以买到 1 桶牛奶,低于 1 桶牛奶的影子价格 48,当然应该作这项投资。回答附 加问题 2):聘用临时工人以增加劳动时间,付给的工资低于劳动时间的影子价 格

28、才可以增加利润,所以工资最多是每小时 2 元。目标函数的系数发生变化时(假定约束条件不变) ,最优解和最优值会改变 吗?这个问题不能简单地回答。 上面输出给出了最优基不变条件下目标函数系数 的允许变化范围: x1 的系数为(72-8,72+24)=(64,96);x2 的系数为(64-16, 64+8)=(48,72)。注意: x1系数的允许范围需要 x2系数 64不变,反之亦然。 由于目标函数的费用系数变化并不影响约束条件, 因此此时最优基不变可以保证 最优解也不变,但最优值变化。用这个结果很容易回答附加问题3):若每公斤A1的获利增加到 30元,则 x1 系数变为 303=90,在允许范围

29、内,所以不应改 变生产计划,但最优值变为 9020+6430=3720。下面对“资源”的影子价格作进一步的分析。 影子价格的作用 (即在最优解 下“资源”增加 1 个单位时“效益”的增量) 是有限制的。每增加 1桶牛奶利润 增长 48 元(影子价格),但是, 上面输出的 CURRENRTH S 的 ALLOWABLIEN CREASE 和 ALLOWABLE DECREAS给E出 了影子价格有意义条件下约束右端的限制范围: milk )原料最多增加 10(桶牛奶),time )劳动时间最多增加 53(小时)。现在 可以回答附加问题 1)的第 2 问:虽然应该批准用 35 元买 1 桶牛奶的投资

30、,但 每天最多购买 10桶牛奶。顺便地说,可以用低于每小时 2 元的工资聘用临时工 人以增加劳动时间,但最多增加 53.3333 小时。需要注意的是: 灵敏性分析给出的只是最优基保持不变的充分条件, 而不一 定是必要条件。比如对于上面的问题,“原料最多增加10(桶牛奶)”的含义只能是“原料增加 10(桶牛奶)”时最优基保持不变,所以影子价格有意义, 即利润的增加大于牛奶的投资。反过来,原料增加超过 10(桶牛奶),影子价格 是否一定没有意义?最优基是否一定改变?一般来说, 这是不能从灵敏性分析报 告中直接得到的。 此时,应该重新用新数据求解规划模型, 才能做出判断。 所以, 从正常理解的角度来

31、看,我们上面回答“原料最多增加10(桶牛奶)”并不是完全科学的。获利24?公斤获利16元/公斤每天50桶牛奶时间480小时至多加工100公斤A】决策变量 目标函数约束条件小桶牛奶生产餌勺桶牛奶生产人2 获利24X3x1 获利16X4兀2 每天获利 Max z = 72x, + 64x2原料供应 比+兀2 50劳动时间12, + 8x2 480加工能力湛100非负约束易,吃3 模型求解 勿 %! + a2 501)条 12a-, +陋 M480 条 3%, 0 口 /4 : A:! = 0,15:x2 =0Max z = 72禺 + 64a22=3600 ZN (常数)等值线D 心 0 2=24

32、00 在 (20,30)点得到最优解口标函数和约束条件是线件函数 可行域为直线段围成的门多边形 冃标函数的等值线为直线最优解一定在凸多边 I形的某个顶点取得。模型求解软件实现4max 72x1+64x2 st2) xl+x2503) 12xl+8x24804) 3xl100 endDO RANGE (SENSITIVITY) ANALYSIS? No1)3360.000VARIABLE VALUEREDUCED COSTXI20.0000(H)0.0000(H)X230.0000000.000000ROWSLACK OR SURPLUS DUAL PRICES2)0.00000048.0000

33、003)0.0000002.0000004)40.0000000.000000OIMECTIVE FUNCTION VALUENO. 1TERATI()NS= 220桶牛奶生产A, 30桶生产人2,利润3360元。结果解释max 72x1+64x2st2) xl+x2503) 12xl+8x24804) 3xl100原料无剩余时间无剩余加工能力剩余40OBJECTIVK FUNCTION VALUE1)3360.000VARIABLE VALUEXI20.0000()X2ell三种资源ROW SLACK OR SUkPLUS2) (MMMHHMI3) 0.0()000(14) 4(HMMHWMNO. ITERATI()S=REDUCED COST0.0000000.000000DUAL PRICES48.0000002.0()0000(IJHHMMHI“

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论