最优化方法——用Lingo对线性规划进行灵敏度分析
- 格式:doc
- 大小:83.50 KB
- 文档页数:15
附1:用LINGO求解线性规划的例子一奶制品加工厂用牛奶生产A1、A2两种奶制品,1桶牛奶可以在设备甲上用12小时加工成3公斤A1,或者在设备乙上用8小时加工成4公斤A2。
根据市场需求,生产的A1、A2能全部售出,且每公斤A1获利24元,每公斤A2获利16元。
现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间为480小时,并且设备甲每天至多能加工100公斤A1,设备乙的加工能力没有限制。
试为该厂制定一个生产计划,使每天获利最大,并进一步讨论以下3个附加问题:1)若用35元可以购买到1桶牛奶,应否作这项投资?若投资,每天最多购买多少桶牛奶?2)若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元?3)由于市场需求变化,每公斤A1的获利增加到30元,应否改变生产计划?数学模型:设每天用x1桶牛奶生产A1 ,用x2桶牛奶生产A2目标函数:设每天获利为z元。
x1桶牛奶可生产3x1公斤A1,获利24*3x,x2桶牛奶可生产4*x2公1斤A2,获利16*4x2,故z=72x1+64x2约束条件:原料供应:生产A1、A2的原料(牛奶)总量不超过每天的供应50桶,即x1+x2≤50劳动时间:生产A1、A2的总加工时间不超过每天正式工人总的劳动时间480小时,即12x1+8x2≤480设备能力:A1的产量不得超过设备甲每天的加工能力100小时,即3x1≤100≥0非负约束:x1、x2均不能为负值,即x1≥0,x2综上所述可得max z=72x1+64x2s.t.x1+x2≤5012x1+8x2≤4803x1≤100x1≥0,x2≥0显然,目标函数和约束条件都是线性的,这是一个线性规划(LP),求出的最优解将给出使净利润最大的生产计划,要讨论的问题需要考虑参数的变化对最优解和影响,一般称为敏感性(或灵敏度)分析。
LINGO求解线性规划用LINGO求解线性规划时,首先在LINGO软件的模型窗口输入一个LP模型,模型以MAX或MIN 开始,按线性规划问题的自然形式输入(见下面例子所示)。
一、实验目的通过本次实验,了解线性规划的基本原理和方法,掌握线性规划模型的建立和求解过程,提高解决实际问题的能力。
二、实验内容1. 线性规划模型的建立2. 利用Lingo软件进行线性规划模型的求解3. 分析求解结果,进行灵敏度分析三、实验步骤1. 建立线性规划模型以某公司生产问题为例,建立线性规划模型。
设该公司有三种产品A、B、C,每种产品分别需要原材料X1、X2、X3,且原材料的价格分别为p1、p2、p3。
公司拥有一定的生产设备,每种产品的生产需要消耗一定的设备时间,设备时间的价格为p4。
设A、B、C产品的生产量分别为x1、x2、x3,原材料消耗量分别为y1、y2、y3,设备使用量分别为z1、z2、z3。
目标函数:最大化利润Z = p1x1 + p2x2 + p3x3 - p4(z1 + z2 + z3)约束条件:(1)原材料消耗限制:y1 ≤ 10x1,y2 ≤ 8x2,y3 ≤ 5x3(2)设备使用限制:z1 ≤ 6x1,z2 ≤ 4x2,z3 ≤ 3x3(3)非负限制:x1 ≥ 0,x2 ≥ 0,x3 ≥ 0,y1 ≥ 0,y2 ≥ 0,y3 ≥ 0,z1 ≥ 0,z2 ≥ 0,z3 ≥ 02. 利用Lingo软件进行线性规划模型的求解打开Lingo软件,按照以下步骤输入模型:① 在“Model”菜单中选择“Enter Model”;② 输入目标函数:@max = p1x1 + p2x2 + p3x3 - p4(z1 + z2 + z3);③ 输入约束条件:@and(y1 <= 10x1, y2 <= 8x2, y3 <= 5x3);@and(z1 <= 6x1, z2 <= 4x2, z3 <= 3x3);@and(x1 >= 0, x2 >= 0, x3 >= 0, y1 >= 0, y2 >= 0, y3 >= 0, z1 >= 0, z2 >= 0, z3 >= 0);④ 在“Model”菜单中选择“Solve”进行求解。
LINGO结果窗⼝内容解读与灵敏度分析1.结果窗⼝内容解读1. ⽬标函数值:Global option solution found.表⽰求出了全局最优解;Objective value表⽰最优⽬标值,Total solver iretion表⽰求解时共⽤了⼏次迭代2. 决策变量:Value给出最优解中各变量的值3. 变量的判别数:Reduced Cost表⽰最优单纯形表中判别数所在的⾏的变量的系数,表⽰当变量有微⼩变化时,⽬标函数的变化率。
其中基变量的reduced cost值应为零。
对于基变量相应的reduced cost值表⽰这个变量增加⼀个单位时⽬标函数值减少的量(max型问题)4. 紧约束与松约束:slack or Surplus给出松弛或剩余变量的值,其值为零的对应约束为"紧约束",表⽰在最优解下该项资源已经⽤完;其值为⾮零的对应约束为"松约束",表⽰在最优解下该项资源还有剩余5. 对偶价格(经济学:影⼦价格):DUAl PRICE(对偶价格)表⽰当对应约束有微⼩变动时⽬标函数的变化率。
输出结果中对应每⼀个"紧约束"有⼀个对偶价格。
若其数值为怕,则表⽰对应约束不等式右端项正好增加⼀个单位,⽬标函数将增加P个单位(max)模型。
显然,如果在最优解处约束条件正好取等号(也就是"紧约束",也称为有效约束或起作⽤约束),对偶价格值才可能不是0.6. 变量框(Variables):Total表⽰当前模型的全部变量数,Nonlinear显⽰其中的⾮线性变量数,Integers显⽰其中的整数变量数。
⾮线性变量是指它⾄少处于某⼀个约束条件中的⾮线性关系中。
7. 约束(Constains)框:Total表⽰当前模型扩展后的全部约束个数,Nonlinear显⽰其中的⾮线性约束个数。
⾮线性约束是该约束⾄少有⼀个⾮线性变量。
如果⼀个约束中的所有变量都是定值,那么该约束就以定值不等式表⽰,该约束的真假由变量的具体值决定,仍计⼊约束总数中。
用lingo求解线性规划问题中国石油大学胜利学院程兵兵摘要食物营养搭配问题是现代社会中常见的问题,其最终的目的是节省总费用.本文通过对营养问题的具体剖析.构建了一般的线性规划模型。
并通过实例应用Lingo数学软件求解该问题.并给出了价值系数灵敏度分析,得出蔬菜价格的变动对模型的影响.关键词线性规划,lingo,灵敏度分析。
一、问题重述与分析营养师要为某些特殊病人拟订一周的菜单,可供选择的蔬菜及其费用和所含营养成分的数量以及这类病人每周所需各种营养成分的最低数量如下表1所示。
有以下规定:一周内所用卷心菜不多于2份,其他蔬菜不多于4份。
问题一:若病人每周需要14份蔬菜,问选用每种蔬菜各多少份,可使生活费用最小.问题二:当市场蔬菜价格发生怎样波动时,所建模型的适用性。
表 1 所需营养和费用营养搭配是一个线性规划问题,在给定蔬菜的情况下,要求菜单所需的营养成分必须达到要求,并在此条件下求出什么样的搭配所花费的费用最少.第一个要求是满足各类营养的充足,根据表中数据列出不等式。
第二要求为问题一中,蔬菜的份数必须为14,第三要求为在一周内,卷心菜不多于2份,其他不多于4份,根据以上条件列出各类蔬菜份数的限定条件,并可表示出费用的表达式.对于第二问,就是价值系数的变化对总费用的影响,模型的适用范围。
三、模型假设第一,假设各蔬菜营养成分保持稳定,满足题干要求。
第二,假设各蔬菜价格在一定时间内保持相对稳定。
第三,假设各类蔬菜供应全部到位,满足所需要求量. 第四,假设所求出最优解时不要求一定为整数。
四、符号约定(1)Z 代表目标函数,此题即为费用。
(2)i c 为价值系数,此题即为每份蔬菜的价格。
下标i 代表蔬菜的种类。
(3)i x 为决策变量,表示各种蔬菜的数量。
(4)i b 为最低限定条件,表示蔬菜最低营养需要。
五、模型建立根据以上各种假设和符号约定,建立模型如下。
所求的值就是min,也就是最优化结果.s 。
实验1 用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.2 某公司饲养实验用的动物以供出售,已知这些动物的生长对饲料中3种营养成分(蛋白质、矿物质和维生素)特别敏感,每个动物每周至少需要蛋白质60g ,矿物质3g ,维生素8mg ,该公司能买到5种不同的饲料,每种饲料1kg 所含各种营养成分和成本如表1.2所示,如果每个小动物每周食用饲料不超过52kg ,求既能满足动物生长需要,又使总成本最低的饲料配方.实验指导问题1.1设计划生产两种产品分别为,则建立线性规划问题数学模型B A ,21,x x ⎪⎪⎩⎪⎪⎨⎧≥≤≤≤++=0,12416482.32max 21212121x 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 ”(解的报告)的信息窗口,显示优化计算(线性规划中换基迭代)的步数、优化后的目标函数值、列出各变量的计算结果.求解结果:Global optimal solution found at iteration: 5Objective value: 14.00000Variable Value Reduced CostX1 4.000000 0.000000X2 2.000000 0.000000Row Slack or Surplus Dual Price1 14.00000 1.0000002 0.000000 1.5000003 0.000000 0.12500004 4.000000 0.000000该报告说明:运行5步找到全局最优解,目标函数值为14,变量值分别为.“Reduced Cost ”的含义是需缩减成本系数或需增加利润系数(最优解中取值非零的决策变量的Reduced Cost 值等于零).“Row ”是输入模型中的行号,目标函数是第一行;“Slack or Surplus ”的意思是松弛或剩余,即约束条件左边与右边的差值,对于“124,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 ,则建立线性规划数学模型:54321,,,,A A A A A 54321,,,,x x x x x 123451234512345123451234512345min 0.20.70.40.30.50.320.6 1.8600.10.050.020.20.0530.050.10.020.20.088.52,,,,0S 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: 4Objective value: 22.40000Variable Value Reduced CostX1 0.000000 0.7000000X2 12.00000 0.000000X3 0.000000 0.6166667X4 30.00000 0.000000X5 10.00000 0.000000Row Slack or Surplus Dual Price1 22.40000 -1.0000002 0.000000 -0.58333333 4.100000 0.0000004 0.000000 -4.1666675 0.000000 0.8833333因此,每周每个动物的配料为饲料、、分别为12、30和10kg ,合计为52,可使得饲养成本达到最小,最小成本为22.4元;不选用饲料和的原因是因为这两种饲料的价格太高了,没有竞争力.“Reduced Cost ”分别等于0.7和0.617,说明当这两种饲料的价格分别降低0.7元和0.62元以上时,不仅选用这两种饲料而且使得饲养成本降低.从“Slack or Surplus”可以看出,蛋白质和维生素刚达到最低标准,矿物质超过最低标准4.12A 4A 5A kg kg kg 1A 3A g ;从“Dual Price”可以得到降低标准蛋白质1单位可使饲养成本降低0.583元,降低标准维生素1单位可使饲养成本降低4.167元,但降低矿物质的标准不会降低饲养成本,如果动物的进食量减少,就必须选取精一些的饲料但要增加成本,大约进食量降低1可使得饲养成本增加0.88元.kg 对于目标函数系数和约束条件右端常数项的灵敏度分析,可以通过LINGO 软件求解的灵敏度分析给出.如果要看灵敏度分析结果,必须激活灵敏度计算功能才会在求解时给出灵敏度分析结果,默认情况下这项功能是关闭的.想要激活它,必须运行LINGO|Options …命令,选择Gengral Solver ,在Dual Computation 列表框中,选择Prices and Ranges 选项并确定.对于例1.1问题进行灵敏度分析,结果如下:以下是灵敏度分析的结果Ranges in which the basis is unchanged:Objective Coefficient RangesCurrent Allowable AllowableVariable Coefficient Increase DecreaseX1 2.000000 INFINITY 0.5000000X2 3.000000 1.000000 3.000000Righthand Side RangesRow Current Allowable AllowableRHS Increase Decrease2 8.000000 2.000000 4.0000003 16.00000 16.00000 8.0000004 12.00000 INFINITY 4.000000对于例1.2问题进行灵敏度分析,结果如下:Ranges in which the basis is unchanged:Objective Coefficient RangesCurrent Allowable AllowableVariable Coefficient Increase DecreaseX1 0.2000000 INFINITY 0.7000000X2 0.7000000 INFINITY 0.1358974X3 0.4000000 INFINITY 0.6166667X4 0.3000000 1.400000 1.000000X5 0.5000000 0.1247059 INFINITYRighthand Side RangesRow Current Allowable AllowableRHS Increase Decrease2 60.00000 4.800000 4.8000003 3.000000 4.100000 INFINITY4 8.000000 0.3428571 0.48000005 52.00000 1.846154 1.411765思考题某投资公司拟制定今后5年的投资计划,初步考虑下面四个投资项目:项目A:从第1年到第4年每年年初可以投资,于次年年末收回成本,并可获利润15%;项目B:第3年年初可以投资,到第5年年末可以收回成本,并获得利润25%,但为了保证足够的资金流动,规定该项目的投资金额上限为不超过总金额的40%;项目C:第2年年初可以投资,到第5年年末可以收回成本,并获得利润40%,但公司规定该项目的最大投资金额不超过总金额的30%;项目D:5年内每年年初可以购买公债,于当年年末可以归还本金,并获利息6%.该公司现有投资金额100万元,请帮助该公司制定这些项目每年的投资计划,使公司到第5年年末核算这5年投资的收益率达到最大.建立线性规划问题的数学模型,并用LINGO求解.。
Lingo简单⼊门,以及对线性规划做敏感性分析设置Lingo中⽤!表⽰注释,注释结束⽤;表⽰,lingo不区分⼤⼩写,运⾏时会⾃动统⼀装换成⼤写编程步骤:1.推算出正确的模型2.确定描述集,定义集合3.确定变量4.正确写出每个式⼦常⽤函数(lingo每个函数都必须⽤@强调):!max, min⽤于⽤于定义⽬标函数@bin(x)表⽰x为0或1@gin(x)表⽰x是整数@free(x)表⽰x为任意实数,因为变量默认为⾮负实数,所以必须⽤这个函数解除这种限制@bnd(1, x, u)表⽰x为[1, u]之间的实数如表⽰x在(-5,5)之间的整数,@free(x),@gin(x),@bnd(-5, x, 5)编程⽅法:1.不使⽤集合语⾔--解决⼩规模问题(笨⽅法编程)例如解下⾯这个线性规划问题max = 72 * x1 + 64 * x2;x1 + x2 < 50;12 * x1 + 8 * x2 < 480;3 * x1 < 100;x1, x2 >= 0;model:max = 72 * x1 + 64 * x2;[milk] x1 + x2 < 50; !milk是约束条件的别名,⽅便在结果窗⼝中查看相关信息;[time] 12 * x1 + 8 * x2 < 480; !time也是别名;[cpct] 3 * x1 < 100; !cpct也是别名;end运⾏结果(会弹出两个窗⼝,只需关⼼下⾯这个窗⼝,另⼀个不⽤管)2.使⽤集合语⾔--解决⼤规模问题sets: !定义集合;S/1..6/: a, b, d; !S集合下标范围是1到6,a b d这三个变量⽤到了这个集合;T/1..2/: e, x, y;U(S, T): c; !双索引的集合,c⽤到了这个集合;endsets !结束集合的定义;data: !定义已知变量,也就是为每个已知变量赋值;a =1.258.750.55.7537.25;b =1.250.754.7556.57.75;d =3547611;x =52;y =17;e =2020;enddata !结束数据的写⼊;!⽬标⽅程;min=@sum(T(j):@sum(S(i):c(i, j) *@sqrt((x(j) - a(i))^2+ (y(j) - b(i))^2)));!约束条件;@for(S(i):@sum(T(j):c(i, j)) = d(i)); !i属于S集合范围,j属于T集合范围,这个约束条件的意思是在j⽅向上对Cij求和== d(i);@for(T(j):@sum(S(i):c(i, j)) <= e(j));(建议1.25倍速)对线性规划做敏感性分析设置(这⾥⽤第⼀个题⽬做样例)点击lingo -> option -> general solver -> Dura Computations -> Price& ranges -> apply -> save --> ok 点击lingo -> range。
附1:用LINGO求解线性规划的例子一奶制品加工厂用牛奶生产A1、A2附1:用LINGO求解线性规划的例子一奶制品加工厂用牛奶生产A、A两种奶制品,1桶牛奶可以在设备甲上用12小时加工成3公斤A,121或者在设备乙上用8小时加工成4公斤A。
根据市场需求,生产的A、A能全部售出,且每公斤A获利212124元,每公斤A获利16元。
现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间为4802 小时,并且设备甲每天至多能加工100公斤A,设备乙的加工能力没有限制。
试为该厂制定一个生产计划,1使每天获利最大,并进一步讨论以下3个附加问题:1)若用35元可以购买到1桶牛奶,应否作这项投资,若投资,每天最多购买多少桶牛奶,2)若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元,3)由于市场需求变化,每公斤A的获利增加到30元,应否改变生产计划, 1数学模型:设每天用x桶牛奶生产A1 ,用x桶牛奶生产A2 12目标函数:设每天获利为z元。
x桶牛奶可生产3x公斤A1,获利24*3x,x桶牛奶可生产4*x公11122斤A2,获利16*4x,故z=72x+64x212约束条件:原料供应:生产A、A的原料(牛奶)总量不超过每天的供应50桶,即 12x+x?50 12劳动时间:生产A、A的总加工时间不超过每天正式工人总的劳动时间480小时,即 1212x+8x?480 12设备能力:A的产量不得超过设备甲每天的加工能力100小时,即 13x?100 1非负约束:x、x均不能为负值,即x?0,x?0 2121综上所述可得max z=72x+64x 12s.t.x+x?50 1212x+8x?480 123x?100 1x?0,x?0 21显然,目标函数和约束条件都是线性的,这是一个线性规划(LP),求出的最优解将给出使净利润最大的生产计划,要讨论的问题需要考虑参数的变化对最优解和影响,一般称为敏感性(或灵敏度)分析。
最优化方法——用Lingo对线性规划进行灵敏度分析lingo软件求解线性规划及灵敏度分析注:以目标函数最大化为例进行讨论,对求最小的问题,有类似的分析方法~所有程序运行环境为lingo10。
一、用lingo软件求解线性规划例1:max23zxy,,stxy..4310,, 3512xy,,xy,0,在模型窗口输入:model:max=2*x+3*y;4*x+3*y<=10;3*x+5*y<12;! the optimal value is :7.454545 ; End如图所示:运行结果如下(点击工具栏上的‘solve’或点击菜单‘lingo’下的‘solve’即可):Global optimal solution found.Objective value: 7.454545(最优解函数值)Total solver iterations: 2(迭代次数)road, are the structural road traffic within the city. In addition, suitable for high speed, and high-speed, S206, S307, also serve inner-city traffic. Outbound traffic: existing highways (suitable for high-speed, and high speed), darts (S206, S307) and Yi wei road, and so on. After years of constant development, road conditions have been greatly Variable (最优解) Value Reduced CostX 1.272727 0.000000Y 1.636364 0.000000Row Slack or Surplus Dual Price1 7.454545 1.0000002 0.000000 0.9090909E-013 0.000000 0.5454545 例2:max54zxx,,12stxxx..390,,,123280xxx,,,124xxx,,,45125x,0在模型窗口输入:model:max=5*x1+4*x2;x1+3*x2+x3=90;2*x1+x2+x4=80;x1+x2+x5=45;end运行(solve)结果如下:Global optimal solution found.Objective value: 215.0000Total solver iterations: 3Variable Value Reduced CostX1 35.00000 0.000000X2 10.00000 0.000000X3 25.00000 0.000000X4 0.000000 1.000000X5 0.000000 3.000000Row Slack or Surplus Dual Price1 215.0000 1.0000002 0.000000 0.0000003 0.000000 1.0000004 0.000000 3.000000例3conditions have been greatly speed, and high speed), darts (S206, S307) and Yi wei road, and so on. After years of constant development, road-city traffic. Outbound traffic: existing highways (suitable forhigh-speed, S206, S307, also serve inner-ion, suitable for high speed, and highroad, are the structural road traffic within the city. In addit2 min2zxx,,,23stxxx..22,,,123xxx,,,31234xxx,,,2235x,0在模型窗口输入:model:min=-x2+2*x3;x1-2*x2+x3=2;x2-3*x3+x4=1;x2-x3+x5=2;end运行结果如下:Global optimal solution found.Objective value: -1.500000Total solver iterations: 2Variable Value Reduced CostX2 2.500000 0.000000X3 0.5000000 0.000000X1 6.500000 0.000000X4 0.000000 0.5000000X5 0.000000 0.5000000Row Slack or Surplus Dual Price1 -1.500000 -1.0000002 0.000000 0.0000003 0.000000 0.50000004 0.000000 0.5000000 例4:minxyz,,stxy..1,,24xz,,在模型窗口输入:model:min=@abs(x)+@abs(y)+@abs(z);x+y<1;2*x+z=4;@free(x);@free(y);@free(z);greatly nd high speed), darts (S206, S307) and Yi wei road, and so on. After years of constant development, road conditions have beenspeed, a-city traffic. Outbound traffic: existing highways (suitable for high-speed, S206, S307, also serve inner-road, are the structural roadtraffic within the city. In addition, suitable for high speed, and high3 End求解器状态如下:(可看出是非线性模型~)运行结果为:Linearization components added: Constraints: 12Variables: 12Integers: 3Global optimal solution found. Objective value: 3.000000 Extended solver steps: 0Total solver iterations: 4 Variable Value Reduced CostX 2.000000 0.000000Y -1.000000 0.000000Z 0.000000 0.000000Row Slack or Surplus Dual Price1 3.000000 -1.0000002 0.000000 1.0000003 0.000000 -1.000000二、用lingo软件进行灵敏度分析实例例5:conditions have been greatly speed, and high speed), darts (S206,S307) and Yi wei road, and so on. After years of constant development, road-city traffic. Outbound traffic: existing highways (suitable forhigh-speed, S206, S307, also serve inner-ion, suitable for high speed, and highroad, are the structural road traffic within the city. In addit4 max603020Sxyz,,,8648xyz,,,421.520xyz,,, 21.50.58xyz,,,y,5xyz,,0,在模型窗口输入:Lingo模型:model:max=60*x+30*y+20*z;8*x+6*y+z<48;4*x+2*y+1.5*z<20;2*x+1.5*y+0.5*z<8;y<5;end(一)求解报告(solution report)通过菜单Lingo?Solve可以得到求解报告(solution report)如下:Global optimal solution found at iteration: 0Objective value: 280.0000Variable Value Reduced CostX 2.000000 0.000000Y 0.000000 5.000000Z 8.000000 0.000000Row Slack or Surplus Dual Price1 280.0000 1.0000002 24.00000 0.0000003 0.000000 10.000004 0.000000 10.000005 5.000000 0.000000分析Value,Reduced Cost,Slack or Surplus,Dual Price的意义如下: 1、最优解和基变量的确定Value所在列给出了问题的最优解。
由于基变量取值非零,因此Value所在列取值非零的决策变量x,z是基变量。
2、差额成本Reduced Cost(或opportunity cost)所在列的三个数值表示当决策变量取值增加一个单位时,目标函数值的减少量。
例如:第2个数5表示当变量y增加一个单位时,最优目标函数值减少的量。
例如:当y=1时,最优目标函数值为280-5=275。
可通过如下模型可检验:model:max=60*x+30*y+20*z;8*x+6*y+z<48;4*x+2*y+1.5*z<20;greatly nd high speed), darts (S206, S307) and Yi wei road, and so on. After years of constant development, road conditions have beenspeed, a-city traffic. Outbound traffic: existing highways (suitable for high-speed, S206, S307, also serve inner-road, are the structural roadtraffic within the city. In addition, suitable for high speed, and high5 2*x+1.5*y+0.5*z<8;y<5;y=1;end注:(1)换一个角度说,就是目标函数中变量y的系数增加5,那么生产y才会有利~(2)基变量的Reduced Cost值为0,只有非基变量的Reduced Cost值才可能不为0;故由value,和Reduced Cost值分析可知y为非基变量。