线性规划的灵敏度分析实验报告
线性规划灵敏度分析

淮北师范大学2011届学士学位论文线性规划灵敏度分析学院、专业数学科学学院数学与应用数学研究方向运筹学学生姓名陈红学号***********指导教师姓名张发明指导教师职称副教授2011年4月10日线性规划的灵敏度分析陈 红(淮北师范大学数学科学学院,淮北,235000)摘 要本文主要从价值系数j c 的变化,技术系数ij a 的变化,右端常数i b 的变化以及增加新的约束条件和增加一个新变量的灵敏度这几个方面来进行研究;资源条件是线性规划灵敏度分析中的主要应用内容,而对于资源条件b 的一个重要应用是:“影子价格问题”的实际应用,最后简述了线性规划在经济及管理问题上的典型应用和从求解例题的图解法揭示了最优解的一些重要特征。
关键词 单纯形法,灵敏度分析,最优解,资源条件,价值系数Sensitivity Analysis of Linear ProgrammingChen Hong(School of Mathematical Science,Huaibei Normal University ,Huaibei,235000)AbstractThis thesis is mainly from the variety of the cost coefficient ‘j c ’, the variety of technology coefficient ‘ij a ’, the variety of the resources condition‘i b ’and increase the new restraint and new variable to analytical linear programming of sensitivity analysis.This thesis is mainly based on the simplex method and dual simplex method of linear programming to system analytical the influence of the variety upon the optical solution of the coefficient of the simplex table.Linear programming of sensitivity analysis in physically of application is mainly about application of the variety of resources c ondition‘i b ’in the economic management ‘shadow price problem’.Keywords simplex method, sensitivity analysis, optimum solution , resourcescondition ,cost coefficient目录引言 (1)一、价值系数的变化分析 (2)二、技术系数的变化分析 (5)三、右端常数的变化分析 (6)四、增加新约束条件的灵敏度分析 (8)五、增加一个新变量的灵敏度分析 (9)六、线性规划灵敏度分析的应用 (9)七、线性规划在经济及管理问题上的典型应用 (14)八、从求解例题的图解法揭示了最优解的一些重要特征 (16)结论 (17)参考文献 (18)致谢 (19)引言灵敏度分析是运筹学中一个比较重要的问题,在现实生活中,尤其是在经济 管理与投资中有着广泛的应用.随着经济的发展,已有不少学者对其进行研究,本文基于已有的研究上进行归纳总结,并在对其研究理论的基础上,对灵敏度分析的应用进行分析.在研究线性规划的灵敏度分析之前,先了解几个定义: 定义 线性规划的标准形:(LP )max ..0Z CX AX b s t X ==⎧⎨≥⎩ (1.1)(1.2)(1.3) 其中()12,,,n C c c c =为行向量,()12,,,Tn X x x x =,()12,,,Tm b b b b =均为列向量,()ij m nA a ⨯=为m n ⨯矩阵;0b ≥,并假设A 的秩为m ,在问题(LP )中,约束方程(1.2)的系数矩阵A 的任意一个m m ⨯阶满秩子矩阵B (0B ≠)称为线性规划问题的一个基解或基.这就是说,基矩阵B 是由矩阵A 中m 个线形无关的列向量组成的,不失一般性,可假设()111121,,,m m m mm a a B p p p a a ⎛⎫ ⎪== ⎪ ⎪⎝⎭并称()1,2,i p i m =为基向量,与基向量相对应的变量()1,2,i X i m =称为基变量不在B 中的列向量()1,2,j p j m m n =++称为非基向量,与非基变量相对应的变量()1,2j X j m m n =++称为非基变量,并记()1,11,12,1,,,m m m m n m m mn a a N p p p a a ++++⎛⎫ ⎪==⎪ ⎪⎝⎭,则系数矩阵A 可以写成分块形式,不失一般性(,)A B N =, (1.4) 将基变量和非基变量组成的向量分别记为()12,,,TB m X x x x =,()12,,,TN m m n X x x x ++=,则向量X 相应的写成分块形式B N X X X ⎛⎫= ⎪⎝⎭(1.5)再将(1.5)代入约束方程组(1.2)中,得(),B N X B N b X ⎛⎫= ⎪⎝⎭,由矩阵的乘法可得B N BX NX b +=,又因为B 是非奇异方阵,所以1B -存在,将上式两边乘以1B -,移项后,得11B N X B b B NX --=-现在可以把N X 看作一组自由变量(又称独立变量),给他们任意一组值N X ,则相应的B X 的一组值B X ,于是B N X X X ⎛⎫= ⎪ ⎪⎝⎭便是约束方程组(1.2)的一个解.特别令0N X =时,则1N X B b -=,现把约束方程组的这种特殊形式的解10B b X -⎛⎫= ⎪⎝⎭,称为基本解.满足变量非负约束条件(1.3)的基本解称为基本可行解. 现在来研究线性规划的灵敏度分析.灵敏度分析的含义是指对系统或事物因为周围条件变化显示出来的敏感度.具体说来就是要研究初始单纯形表上的系数变化对最优解的影响,研究这些系数在什么范围内变化时原最优基仍然是最优的.若原最优基不是最优的,如何用简便的方法找到新的最优解.现考虑标准形线性规划问题:(LP )max ..0Z CXAX b s t X ==⎧⎨≥⎩当线性规划问题中的一个或几个参数变化时,可以用单纯形法从头计算,看最优解有没有变化.但这样做即麻烦又没有必要,因为单纯形法的迭代过程是从一组基向量变换为另一种基向量,每次迭代都和基变量的系数矩阵B 有关,表中每次迭代得到的数据只随基向量的不同选择而改变,因此可以把个别参数的变化直接在计算得到的最优解的单纯形表上反映出来.这样就不需要从头计算,而直接在最优性单纯形表进行审查,看一些数字变化后,是否仍满足最优性的条件,如果不满足的话再从这个表开始进行迭代计算,求得最优解.下面就各个参数改变后的情况进行讨论:一、 价值系数j c 的变化分析(一)非基变量j x 的价值系数j c 的变化若非基变量j x 的价值系数j c 的改变为j j j c c c '=+∆,则变化后的检验数为1j j j B j c c C B p σ-'=+∆-,0要保持原最优基不变,即当j c 变化为j c ∆后,最终单纯形表中这个检验数小于或等于零,即10j j j B j c c C B p σ-'=+∆-≤,因此j j c σ∆≤-∆,这就确定里在保持最优解不变时非基变量j x 的目标函数j c ,的变化范围,当超出这个范围时,原最优解将不是最优解了.为了求新的最优解,必须在原最优单纯形表的基础上,继续进行迭代以求得新的最优解.例1 已知线性规划问题1234max 534Z x x x x =+++()12341234123423280054341200..3453100001,2,3,4j x x x x x x x x s t x x x x x j +++≤⎧⎪+++≤⎪⎨+++≤⎪⎪≥=⎩(Ⅰ)为保持原最优解不变,分别求非基变量13,x x 的系数13,c c 的变化范围 (Ⅱ)当1c 变为5时,求新的最优解.解 (i )由图表可知:113/4σ=-,311/4σ=-,于是由公式j j c σ∆≤-∆知,保持原最优解不变,则有 1313/4,11/4c c ∆≤∆≤,当111113/417/4c c c '=+∆≤+=,333311/423/4c c c '=+∆≤+=时,原最优解不变.(ii )当1517/4c =>时,已经超出了1c 的变化范围,最优解发生了变化,下面来求新的最优解.首先求出的检验数:()11111/450,4,523/403/4B c C B p σ-⎛⎫⎪''=-=-=> ⎪ ⎪-⎝⎭故1x 为换入基,用新的检验数13/4σ'=代替原来的检验数113/4σ=-,其余数据不变,得到新的单纯形表,并继续迭代得:表(1.2) 由表中可看出已得到新的最优解()*100,175,0,0,75Tx =及新的目标函数最优值 *1375Z =.(二)基变量j x 的价值系数j c 的变化若r c 是基变量r x 的价值系数,因为r B c C ∈,当r c 变为r r c c +∆时,就引起BC 的变化,则()()()1111120,,,0,,,B B B rB r r r rnC C B A C B A c B A C B A c a a a ----'''+∆=+∆=+∆其中 ()12,,,r r rn a a a '''是矩阵1B A -的第r 行.于是,变化后的检验数为1j j B j r rj j r rj c C B p c a c a σσ-'''=--∆=-∆ (j = 1,2,,n )若要求最优解不变,则必须满足0j j r rj c a σσ''=-∆≤ (j = 1,2,,n )由此可以导出当0rj a <时,有/r j rj c a σ'∆≤ ; 当0rj a >时,有/r j rj c a σ'∆≥. 因此,r c ∆的允许范围是{}{}max /|0min /|0j rj rj r j rj rj jja a c a a σσ''''>≤∆≤<使用此公式时,首先要在最优表上查出基变量r x 所在行中的元素()1,2,,rj a j n '=,而且只取与非基变量所在列相对应的元素,将其中的正元素放在不等式的左边,负元素放在不等式右边,分别求出r c ∆的上下界.例2 为保持现有最优解不变,分别求出例1 中基变量24,x x 的变化范围.若当B C 由(0,4,5)改变为(0,6,2)时,原最优解是否保持最优,如果不是,该怎么办?解 根据上述公式,利用表(1.1),为使最优基变量()245,,x x x 不变,4c ∆的变化范围是413/41/413/41/4max ,min ,213/43/4c ----⎧⎫⎧⎫≤∆≤⎨⎬⎨⎬--⎩⎭⎩⎭即4114c -≤∆≤ 故当41554c ≤≤时,原最优解不变, 现在4c 变为6,已超出了4c ∆的允许变化范围.同样的,2c ∆的允许范围是211/4113/41/4max ,min ,11/413/43/4c ----⎧⎫⎧⎫≤∆≤⎨⎬⎨⎬--⎩⎭⎩⎭,即2113c -≤∆≤故当21643c ≤≤时,原最优解不变,现在2c 变为2,也不在2c ∆的允许变化范围内,当B c 由(0,4,5)变为(0,6,2)即4c 变为6,2c 变为2,都超过了它们的允许变化范围,需要求新的最优解.为此用变换后的B c '代替B c ,将表(1.2)改成表1.3(I ),在继续进行迭代求得新的最优解,由该表知,已求得最优解()*0,0,0,300,200,0,100Tx =及目标函数最优值*1800Z =.j 最优解对目标函数中的价值系数j c 的改变不十分灵敏,而对价值系数j c 的灵敏度分析的应用意义是:企业可以在不改变资源优化分配的前提下,在一定幅度内改变价值系数j c 的值,来积极应对市场挑战.二、 技术系数ij a 的变化分析由于对价值系数j c 的分析分为基变量价值系数和非基变量价值系数,现也可以按这种方法把对技术系数ij a 的分析分为两类:(一)、非基向量列j P 改变为j P ' 12j j j nj a a P a ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦这种情况指初始表中的j P 到数据改变为j P ',而第j 个列向量在原最终表上是非基向量.这一改变直接影响最优单纯形表上的第j 列数据与第j 个检验数.最终单纯形表上的第j 列数据变为1j B P -',而新的检验数1j j B j c c B P σ-''=-,若0j σ'≤,则原最优解仍是新问题的最优解.若0j σ'>,则最优基在非退化情况下不再是最优基.这是,应在原来最优单纯形表的基础上,换上改变后的第j 列数据1j B P -'和j σ',把j x 作为换入变量,用单纯形法继续迭代.(二)、基向量列j P 改变为j P '这种情况指初始表中的j P 列数据改变为j P ',而第j 个列向量在原最终表上是基向量,此时,原最优解的可行性和最优性都可能遭到破坏,需要重新计算.三、 右端常数i b 的变化分析右端常数i b 的变化在实际问题中表明可用资源的数量发生变化.当第r 个约束方程的右端常数由原来的r b 变为r r r b b b '=+∆,其它系数都不变,即初始表上新的限定向量12000r r m b b b b b b b b ⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥'=+∆=+⎢⎥⎢⎥∆⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦,其中1200,0r r n b b b b b b b ⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=∆=⎢⎥⎢⎥∆⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦设原最优解为121m B B B B x x X B b x -⎡⎤⎢⎥⎢⎥'==⎢⎥⎢⎥⎢⎥⎣⎦,则新的最优解为1111100B r X B b B b B b B b B b -----⎡⎤⎢⎥⎢⎥''⎢⎥==+∆=+∆⎢⎥⎢⎥⎢⎥⎣⎦若原最优基B 仍是最优的,则新的最优解0B X '≥,即1111000r B r ir B r r mr d X B b B b B b d X b D d ---⎡⎤'⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥''⎢⎥=+∆=+=+∆≥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥'⎣⎦⎣⎦其中r D 是1B -的第r 列,即12r r r mr d d D d ⎡⎤'⎢⎥⎢⎥'=⎢⎥⎢⎥⎢⎥'⎢⎥⎣⎦故()01,2,,i B r ir x b d i m '+∆≥=因此,r b 的允许变化范围是:max |0min |0i iB B ir r ir i iir ir x x d b d d d ⎧⎫⎧⎫⎪⎪⎪⎪''->≤∆≤-<⎨⎬⎨⎬''⎪⎪⎪⎪⎩⎭⎩⎭如果r b ∆超出上述范围,则新的解不是可行解.但由于r b 的变化不影响检验数,故仍保持检验数0σ≤,即 满足对偶可行性,这时可在原最终表的基础上,用对偶单纯形法继续迭代,以求出新的最优解.一般来说,当b 变为b '时,也可以直接计算1B b -,若有10B b -≥,则原最优基B 仍是最优基,但最优解和最优值要重新计算.若1B b -不恒大于零,则原最优基B 对于新问题来说不再是可行基,但由于所有检验数0σ≥,现行的基本解仍是对偶可行的,因此,只要把原最终表的右端列改为11B B b C B b --'⎡⎤⎢⎥'-⎢⎥⎣⎦,就可用对偶单纯形法求解新问题. 例3 线性规划问题12121122312max 232212416..515,0Z x x x x b x b s t x b x x =++≤+∆⎧⎪≤+∆⎪⎨≤+∆⎪⎪≥⎩分别分析123,,b b b ∆∆∆在什么范围内变化,问题的最优基不变.解 先分析1b ∆的变化,由公式10B B X X B b -'=+∆≥知,使问题最优基不变的条件是1111101325324421042053031005b λλ⎛⎫-⎡⎤ ⎪+⎢⎥∆⎡⎤⎡⎤ ⎪⎢⎥⎢⎥⎢⎥ ⎪+-=-≥⎢⎥⎢⎥⎢⎥ ⎪⎢⎥⎢⎥⎢⎥ ⎪⎣⎦⎣⎦⎢⎥ ⎪⎣⎦ ⎪⎝⎭由此推得162λ-≤≤同理由23403λ⎡⎤⎢⎥+≥⎢⎥⎢⎥⎣⎦得, 24λ-≤≤∞,3331354405135λλλ⎡⎤-⎢⎥⎢⎥⎢⎥+≥⎢⎥⎢⎥⎢⎥+⎢⎥⎣⎦从而3515λ-≤≤.四、 增加新约束条件的灵敏度分析若在线性规划问题中再增加一个新的约束条件,即 有1,11nm jj m j ax b ++=≤∑,即11m m A X b ++≤ (4.1) 其中 ()11,11,21,,,,m m m m n A a a a ++++=,()12,,,Tn X x x x =,由于增加一个约束,则可行域有可能减小,但不会使可行域增大,因此,若原问题的最优解满足这个新的约束,则在新问题中仍是最优解;若原来的最优解不满足这个新约束,那么现再来求新的最优解.设原来的最优基为B ,各基向量集中于A 的前m 列,最优解为 10B N x B b X x -⎡⎤⎡⎤==⎢⎥⎢⎥⎣⎦⎣⎦对新增加的约束(4.1),引进松弛变量1n x +,又因为()()()111,m m m BNA A A +++=,则(4.1)式变成()()1111m B m N n m B N A X A X X b ++++++= (4.2)显然,1n x +是约束(4.2)的基变量.增加约束后,新的基B '、()1B -'及右端向量b '如下:()101m B B B A +⎡⎤'=⎢⎥⎣⎦,()()111101m B B B A B ---+⎡⎤'=⎢⎥-⎢⎥⎣⎦,1m b b b +⎡⎤'=⎢⎥⎣⎦, 对于新增加约束后的新问题,在现行基下对应变量()1j x j m ≠+,的检验数是:()()()111111,0,01j j j j j B j j B j B j j m m j B P B c z c C B P c C c C B P A B a σσ----++⎡⎤⎡⎤'''''=-=-=-=-=⎢⎥⎢⎥-⎢⎥⎢⎥⎣⎦⎣⎦它与不增加约束时相同.又因为1n x +是基变量,故10n σ+'=.因此,现行的基本解是对偶可行的,现行基本解是:()()()1111111111101B n m m n m m B B B b X bb B B b b A B X b A B b -----++++++⎡⎤⎡⎤⎡⎤⎡⎤⎡⎤'===⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥--⎢⎥⎣⎦⎣⎦⎣⎦⎢⎥⎣⎦⎣⎦, 若()()1110m m B b A B b -++-≥,则现行的对偶可行的基本解是新问题的可行解,即最优解.若()()1110m m B b A B b -++-<,则在原来最终解的基础上增加新约束(4.2)的数据,通过矩阵的初等行变换,把原最终表上的各基向量列及新增列1n P +化为单位阵,再用对偶单纯形法继续求解.五、 增加一个新变量的灵敏度分析假设要增加一个非负的新变量1n x +,其相应的系数列向量为1n P +,价值系数为1n C +.又知原问题的最优解是B ,显然,增加这个新变量,对原最优解的可行性没有影响.现计算新的检验数1111n n B n C C B P σ-+++=-若10n σ+≤,则原最优解是新问题的最优解;若10n σ+>则原最优解不再是最优解.这时,把11n B P -+加入到原最终表内,并以新变量1n x +作为换入变量,按单纯形法继续迭代,即可得到新的最优解.六、线性规划灵敏度分析的应用线性规划灵敏度分析的应用主要是资源条件的应用,而对资源条件b 的分析的一个重要应用是:“影子价格问题”定义 设线性规划对偶问题1max nj j j Z c x CX ===∑ min W Yb =(P )()()11,2,,..01,2,,nij j i j ja x AXb b i m s t x j n =⎧=≤==⎪⎨⎪≥=⎩∑ (D ) ..0YA Cs t Y ≥⎧⎨≥⎩右端常数()1,2,,i b i m =表示第i 种资源的现有量下面讨论i b 增加1个单位时所引起的目标函数最优值的变化. 设B 是问题(P )的最优基,则*1****1122B m m Z C B b Y b y b y b y b -===+++,当i b 变为1i b +时(其余右端常数不变,并假设这种变化不影响最优基B )目标函数最优值变为*****1122(1)i i m m Z y b y b y b y b '=++++++,于是目标函数最优值的改变量为****i Z Z Z y '∆=-=,由上式可以看出*i y 的意义,它表示当右端常数i b 增加1个单位时所引起的目标函数最优值的改变量,也可以写成**i iZ y b ∂=∂()1,2,,i m =,即*i y 表示*Z 对i b 的变化率.在一对对偶问题(P )和(D )中,若(P )的某个约束条件的右端常数i b 增加1个单位时所引起的目标函数最优值*Z 的改变量*i y 称为第i 个约束条件的影子价格,又称边际价格.由定义可知,影子价格*i y 的经济意义是在其它条件不变的情况下,单位资源变化所引起的目标函数最优值的变化,即对偶变量i y 就是第i 个约束条件的影子价格.影子价格是针对某一具体的约束条件而言的.而问题中所有其它数据保持不变,因此影子价格也可以理解为目标函数最优值对资源的一阶偏导数.影子价格又称灵敏度系数,通常指线性规划对偶模型中对偶变量的最优解.如果原规划模型属于一定资源约束条件下,按一定的生产消耗生产一组产品并需求总体效益目标最大化问题,那么其对偶模型属于对本问题中每一资源以某种方式进行估价,以便得出与最优生产计划相一致的一个企业最低总价值.该对偶模型中资源的估价表现为相应资源的影子价格.影子价格在经济管理中的应用很多,下面就下面这个问题进行分析: 影子价格指示企业内部挖掘潜力的方向.设线性规划模型(LP ):()()11max 1,2,,..01,2,,nj jj nij ji j iZ c x a x b i m s t x j n ===⎧≤=⎪⎨⎪≥=⎩∑∑ 存在最优解.对(LP )标准化后,得:min ..0Z C X AX b s t X ''='=⎧⎨'≥⎩ 其中(),0c c '=-,0是m 维行向量, (),A A I '=为m m *单位阵.因为设(LP )有最优解,故由线性规划单纯形法求解,可得最优基*x ,最优解为: ***11n n j j j j j j Z c x c x =='==∑∑ ,并可设()()1****,,0B B N N x B b x c c c x -⎡⎤⎡⎤'''⎢⎥===⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦ ()()()()1*11*****111,0n n m j j j j B N B B i j j i i B b Z c x c x c c c B b c B b ---===⎡⎤⎡⎤'''''⎢⎥=====⎢⎥⎣⎦⎢⎥⎣⎦∑∑∑ 所以可令**ii Z y b∂=∂,即()()1**,1,2,,iB i y c B i m -⎡⎤==⎢⎥⎣⎦因此,有***11nmj ji i j i Z c x y b ====∑∑ (6.1)再令()()1*****12,,,m B y y y y c B -'==,由单纯形法最优原则可知:()1**0B y A c c B A c -'''''-=-≤ (6.2) 即()()*(,),0,0y A I c c ≤-=-因此,有*0y ≥ (6.3) 而由(6.2),(6.3)及线性规划的对偶结构可知:*y 是对偶问题的可行解. 再由(6.1)及对偶定理可知:*y 是对偶问题的最优解.可见,最优解*x 的不起作用约束的影子价格为零.反之就是,若影子价格*0y >,则对应的是*x 的起作用约束.因此,影子价格*0i y =表示第i 种资源i b 未得到充分利用;而*0i y >则表示第i 种资源i b 已得到充分利用.影子价格直接应用到企业资源最有效的部门中去.当影子价格大于资源的市场价格时,企业应购进这种产品,使利润增加;当当影子价格小于资源的市场价格时出现多做多赔的情形,应出售这种资源.大公司还可借助资源的影子价格确定一些内部结算价格,以便控制有限资源的使用和考核下属企业经营的好坏.又如在社会上对一些紧缺资源,借助影子价格规定使用这种资源企业必须上缴的利润额,以控制企业自觉地节约使用紧缺资源,使有限资源发挥更大经济效益.“影子价格问题”:影子价格 设线性规划模型(LP )Max∑-nj j jx c1..s t 1(1,2,)0(1,2)nij j i j j a x b i m x j n -⎧≤=⎪⎨⎪≥=⎩∑ 有最优解*x ,最优解为**j j z c x =∑则可令iib z ∂∂=**ϖ 则必有∑∑--==mi i i nj j j b x c z 1*1**ϖ和0*≥i ϖMax∑-nj j jx c1..s t 1(1,2,)0(1,2)nij j i j j a x b i m x j n -⎧≤=⎪⎨⎪≥=⎩∑ 存在最优解.对(LP )标准化后,得min x c ''..t s 0Ax b x '=⎧⎨'≥⎩其中3(,)T x x x '=(5x 为松弛变量,是m 维列变量),(,0)c c '=-,这里0是m 维行向量,而(,)A A I '=为*m m 单位阵.因为设(LP )有最优解,故由线性规划单纯形法求解,可得最优基可行解*x ,最优解为:∑∑--'==nj nj j j jj x c xc z 11***并可设⎪⎪⎭⎫⎝⎛=⎪⎪⎭⎫ ⎝⎛=-N B x x b B x **1**0)(,),(N B c c c ''=' i m i i B B nj N B jj n j j j b B c b B c b B c c xc x c z ∑∑∑------'='=⎪⎪⎭⎫ ⎝⎛''='==11*1*11**1**])([)(0)(),( 所以可令iib z ∂∂=**ϖ,即[]i B i B c 1**)(-=ϖ,),,2,1(m i = 因此有∑∑--==n j mi i i j j b x c z 11***ϖ (6.4)再令1***2*1*)(),,(-'==B c Bm ϖϖϖϖ 由单纯形法最优准则可知0)(1**≤'-''='-'-c A B c c A B ϖ (6.5) 即)0,()0,(),(*c c I A -=-≤ϖ因此有0*≥ϖ (6.6) 而由(6.5)和(6.6),由线性规划的对偶规划结构可知:*ϖ是对偶规划的可行解,再由(6.4),以及对偶定理可知:*ϖ是对偶规划的最优解.)称*ϖ为第i 种资源的影子价格,****12(,,)n ωωωω=为影子价格向量.*ϖ表示,第i 种资源bi 对最优值的边际贡献.从线性规划对偶理论易见,影子价格就是对偶规划的最优解.而由前述对资源条件的灵敏度分析可知,对于最优解*x 的不起作用约束而言,若此约束的资源条件bi 在灵敏度范围内变动时,则最优值*z 不变,所以0**=∂∂=iib z ϖ 可见,最优解*x 的不起作用约束的影子价格为零。
excel求解线性规划和灵敏度分析实训过程记录及学习收获

excel求解线性规划和灵敏度分析实训过程记录及学习收获线性规划是一种数学优化模型,用于对一组线性限制条件下的线性目标函数进行优化。
Excel 能够进行线性规划问题的求解和灵敏度分析,以下是实习过程的记录和收获总结:1. 实训任务我们的实训任务是一个有饲料限制的生产计划问题,其中需要决定生产哪些种类的产品、购买何种原材料、以及在何时生产这些产品,以使得利润最大化。
任务中给定了各种产品需要的原材料数量,各种原材料的数量与价格,及一些限制条件,例如生产时间,最小生产量等。
2. Excel求解线性规划问题Excel中求解线性规划问题的函数是“Solver”,首先需要打开Excel中的“数据”选项卡,然后在“分析”工具中找到“Solver”。
进入“Solver参数”对话框后,需要输入目标函数和限制条件,并且设置决策变量的可变性、约束条件的类型和数量。
最后根据需要设置求解的约束条件和目标函数的目标方向,点击“求解”即可。
在我们的实训任务中,我们首先需要设置约束条件,限制了各种产品需要的原材料数量,并且确保生产时间在规定范围内。
然后我们需要设置各个决策变量的可变性,例如选择生产哪些产品,购买何种原材料以及在何时生产这些产品等。
最后将目标函数设置为生产的利润最大化,并且设置约束条件为“>=0”,以确保决策变量的可行性。
点击“求解”即可得出最优解。
3. Excel灵敏度分析Excel的灵敏度分析功能可以帮助我们了解线性规划问题的各个变量对于目标函数的影响程度。
Excel中灵敏度分析的函数是“规划求解器的报告”,在对话框中选择“接受解决方案”,然后勾选“制作规划求解器报告”选项,即可生成报告。
在报告中,我们可以看到各个决策变量的最优解以及目标函数的最优值。
同时,报告中还包括影响目标函数的变量的“系数范围”和“变化量”,我们可以通过调整这些参数来预测目标函数的变化情况。
4. 学习收获通过这次实训,我学会了如何使用Excel求解线性规划问题以及如何进行灵敏度分析。
实验二___线性规划灵敏度分析

实验二线性规划模型及灵敏度分析(一)实验目的:掌握使用Excel软件进行灵敏度分析的操作方法。
(二)实验内容和要求:用Excel软件完成案例。
(三)实例操作:(1)建立电子表格模型;(2)使用Excel规划求解功能求解问题并生成“敏感性报告”;(3)结果分析:哪些问题可以直接利用“敏感性报告”中的信息求解,哪些问题需要重新规划求解,并对结果提出你的看法;(4)在Word文档中书写实验报告,包括线性规划模型、电子表格模型、敏感性报告和结果分析等。
案例1 市场调查问题某市场调查公司受某厂的委托,调查消费者对某种新产品的了解和反应情况。
该厂对市场调查公司提出了以下要求:(1)共对500个家庭进行调查;(2)在被调查家庭中,至少有200个是没有孩子的家庭,同时至少有200个是有孩子的家庭;(3)至少对300个被调查家庭采用问卷式书面调查,对其余家庭可采用口头调查;(4)在有孩子的被调查家庭中,至少对50%的家庭采用问卷式书面调查;(5)在没有孩子的被调查家庭中,至少对60%的家庭采用问卷式书面调查。
对不同家庭采用不同调查方式的费用如下表所示:市场调查费用表家庭类型调查费用(元)问卷式书面调查口头调查有孩子的家庭50 30没有孩子的家庭40 25问:市场调查公司应如何进行调查,使得在满足厂方要求的条件下,使得总调查费用最少?案例2 经理会议建议的分析某公司生产三种产品A1,A2,A3,它们在B1,B2两种设备上加工,并耗用C1,C2两种原材料,已知生产单位产品耗用的工时和原材料以及设备和原材料的每天最多可使用量如下表所示:生产三种产品的有关数据资源产品A1 产品A2 产品A3 每天最多可使用量设备B1(min) 1 2 1 430设备B2(min) 3 0 2 460原料C1(kg) 1 4 0 420原料C2(kg) 1 1 1 300每件利润(元) 30 20 50已知每天对产品A2的需求不低于70件,对A3不超过240件。
运筹学实验报告线性规划及其灵敏度分析

.
数学与计算科学学院实验报告
实验项目名称线性规划及其灵敏度分析
所属课程名称运筹学B
实验类型综合
实验日期2014年10月24日
班级数学1201班
学号201264100128 成绩
附录1:源程序
附录2:实验报告填写说明
1.实验项目名称:要求与实验教学大纲一致.
2.实验目的:目的要明确,要抓住重点,符合实验教学大纲要求.
3.实验原理:简要说明本实验项目所涉及的理论知识.
4.实验环境:实验用的软、硬件环境.
5.实验方案(思路、步骤和方法等):这是实验报告极其重要的容.概括整个实验过程. 对于验证性实验,要写明依据何种原理、操作方法进行实验,要写明需要经过哪几个步骤来实现其操作.对于设计性和综合性实验,在上述容基础上还应该画出流程图、设计思路和设计方法,再配以相应的文字说明.对于创新性实验,还应注明其创新点、特色. 6.实验过程(实验中涉及的记录、数据、分析):写明具体实验方案的具体实施步骤,包括实验过程中的记录、数据和相应的分析.
7.实验结论(结果):根据实验过程中得到的结果,做出结论.
8.实验小结:本次实验心得体会、思考和建议.
9.指导教师评语及成绩:指导教师依据学生的实际报告容,给出本次实验报告的评价.。
实验线性规划图解法灵敏性分析

实验3 线性规划的灵敏性分析专业班级信息121 班学号201212030120 姓名刘帅报告日期实验类型:●验证性实验○综合性实验○设计性实验实验目的:熟练线性规划图解法的灵敏性分析。
实验内容:线性规划的灵敏性分析4个(题目自选b,c灵敏性分析)实验原理在线性规划图解法求出最优解的情况下,分析b,c分别变化对最优解的影响,确定最优解的变化范围,在变化的情况下能求出最优解。
实验步骤1 要求上机实验前先编写出程序代码2 编辑录入程序3 调试程序并记录调试过程中出现的问题及修改程序的过程4 经反复调试后,运行程序并验证程序运行是否正确。
5 记录运行时的输入和输出。
预习编写程序代码:实验报告:根据实验情况和结果撰写并递交实验报告。
(1) 唯一最优解:max z=x1+x2⎪⎩⎪⎨⎧≥≤+≤+02,182126221X X X X X X建立simplex.m 文件function [x,z,flg,sgma]=simplex(A,A1,b,c,m,n,n1,cb,xx)% A,b are the matric in A*x=b% c is the matrix in max z=c*x% A1 is the matric in simplex table% m is the numbers of row in A and n is the column number in A% n1 is the nubers of artificial variables,and artificial variables are default at the last % n1 variables in x.% cb is the worth coefficient matrix for basic variables% xx is the index matrix for basic variables% B1 is the invers matrix for the basic matrix in simplex table.The initial % matrix is default as the last m con in the matrix A.x=zeros(n,1)。
线性规划问题及灵敏度分析

实验一 线性规划问题及灵敏度分析实验目的:了解WinQSB 软件在Windows 环境下的文件管理操作,熟悉软件界面内容,掌握操作命令。
用WinQSB 软件求解线性规划,掌握winQSB 软件写对偶规划,灵敏度分析和参数分析的操作方法。
实验每组人数及学时:组人数1人,学时数:4学时 实验环境:装有WinQSB 软件的个人电脑 实验类型:验证性 实验内容:一、 用WinQSB 软件求解线性规划的方法:操作步骤:1.将WinQSB 文件复制到本地硬盘;在WinQSB 文件夹中双击setup.exe 。
2.指定安装WinQSB 软件的目标目录(默认为C:\ WinQSB )。
3. 安装过程需输入用户名和单位名称(任意输入),安装完毕之后,WinQSB 菜单自动生成在系统程序中。
4.熟悉WinQSB 软件子菜单内容及其功能,掌握操作命令。
5.求解线性规划。
启动程序 开始→程序→WinQSB→Linear and Integer Programming 。
6.学习例题 点击File→Load Problem→lp.lpp, 点击菜单栏Solve and Analyze 或点击工具栏中的图标用单纯形法求解,观赏一下软件用单纯形法迭代步骤。
用图解法求解,显示可行域,点击菜单栏Option →Change XY Ranges and Colors,改变X1、X2的取值区域(坐标轴的比例),单击颜色区域改变背景、可行域等8种颜色,满足你的个性选择。
下面结合例题介绍WinQSB 软件求解线性规划的操作步骤及应用。
用WinQSB 软件求解下列线性规划问题:1234max657Z x x x x =+++s.t. 12341234123123431234269260852150730001020,,0,x x x x x x x x x x x x x x x x x x x x +++≤⎧⎪-+-≥⎪⎪++=⎪-≥⎨⎪-≥⎪≤≤⎪⎪≥⎩无约束解:应用WinQSB 软件求解线性规划问题不必化为标准型,如果是可以线性化的模型则先线性化,对于有界变量及无约束变量可以不用转化,只需要修改系统的变量类型即可,对于不等式约束可以在输入数据时直接输入不等式符号。
线性规划的灵敏度分析

实验课程名称运筹学实验项目名称线性规划的灵敏度分析年级 08数学专业应用数学学生姓名吴进强学号 080701110186理学院实验时间:2010 年10 月20日学生实验室守则一、按教学安排准时到实验室上实验课,不得迟到、早退和旷课。
二、进入实验室必须遵守实验室的各项规章制度,保持室内安静、整洁,不准在室内打闹、喧哗、吸烟、吃食物、随地吐痰、乱扔杂物,不准做与实验内容无关的事,非实验用品一律不准带进实验室。
三、实验前必须做好预习(或按要求写好预习报告),未做预习者不准参加实验。
四、实验必须服从教师的安排和指导,认真按规程操作,未经教师允许不得擅自动用仪器设备,特别是与本实验无关的仪器设备和设施,如擅自动用或违反操作规程造成损坏,应按规定赔偿,严重者给予纪律处分。
五、实验中要节约水、电、气及其它消耗材料。
六、细心观察、如实记录实验现象和结果,不得抄袭或随意更改原始记录和数据,不得擅离操作岗位和干扰他人实验。
七、使用易燃、易爆、腐蚀性、有毒有害物品或接触带电设备进行实验,应特别注意规范操作,注意防护;若发生意外,要保持冷静,并及时向指导教师和管理人员报告,不得自行处理。
仪器设备发生故障和损坏,应立即停止实验,并主动向指导教师报告,不得自行拆卸查看和拼装。
八、实验完毕,应清理好实验仪器设备并放回原位,清扫好实验现场,经指导教师检查认可并将实验记录交指导教师检查签字后方可离去。
九、无故不参加实验者,应写出检查,提出申请并缴纳相应的实验费及材料消耗费,经批准后,方可补做。
十、自选实验,应事先预约,拟订出实验方案,经实验室主任同意后,在指导教师或实验技术人员的指导下进行。
十一、实验室内一切物品未经允许严禁带出室外,确需带出,必须经过批准并办理手续。
学生所在学院:专业:班级:姓名吴进强学号080701110186 实验组无2010-10-2指导教师杨辉成绩实验时间实验项目名称线性规划的灵敏度分析实验目的及要求:1. 运用LINDO,TORA的验证价值系数和左端项变化时的灵敏度分析2. 分析其它参数发生变从时的最优基不变的范围3. 输入模型4 求解保存结果实验(或算法)原理:线性规划单存行法单纯形法是一种迭代算法,其基本原理及主要步骤是:首先设法找到一个(初始)基可行解,然后再根据最优性理论判断这个基可行解是否最优解。
线性规划问题的灵敏度分析

a' 1, n 1
a' 1, n i
a' 1,n m
设
B 1
a' k ,n1
a' k ,ni
a' k ,n m
a
'
m
,n
1
a' m,ni
a
' m,nm
b b1, b2 , , (bk bk ), bm T
为保证最优解的基变量 不发生变化 , 必须满足
XB
B b b 0 1
注意:若碰到原问题和对偶问题均为非可行解时, 就需要引进人工变量后重新求解。
线性规划问题的灵敏度分析
最优解/最优值的变化情况; (2)分析线性规划相关参数和条件在什么范围内变化,其最优
基/最优解/最优值不变。
灵敏度分析内容:
(1)参数 Cj,bi,aij的影响分析;
(2) 增加约束或变量的影响分析;
线性规划问题的灵敏度分析
2
5.2 灵敏度分析工具与原理
(1)灵敏度分析工具
Pj’ =B-1Pj
b’=B-1b
– 已知 c6=4, p6=(2,4,5)
– 计算 x6 的检验数可知生产是否
有利
线性规划问题的灵敏度分析
18
5.7 技术系数aij的变化
约束矩阵A随之变化
若xj在最终表中为非基变量,其约束条件中系数 aij的变化分析步骤参考增加一个变量时的情形
若xj在最终表中为基变量,则aij的变化将使相应 的基矩阵B和B-1发生变化,可能出现原问题和对 偶问题均为非可行解的情况,需引进人工变量将 原问题化为可行解,再用单纯形法
σj =Cj-CBB-1Pj=Cj-CBPj’
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Variable Value Reduced Cost
B( 1) 450.0000 0.000000
B( 2) 300.0000 0.000000
C( 1) 3.000000 0.000000
C( 2) 1.000000 0.000000
C( 3) 4.000000 0.000000
Lingo软件
三 实验内容(包括数学模型、上机程序、实验结果、结果分析与问题解答等)
例题2-10
MODEL:
[_1]MAX= 2 * X_1 + 3 * X_2 ;
[_2] X_1 + 2 * X_2 + X_3 = 8 ;
[_3] 4 * X_1 + X_4= 16 ;
[_4] 4 * X_2 + X_5 = 12 ;
for(is(I):sum(js(J):a(I,J)*x(J))<=b(I));
data:
c=3 1 4;
b=450 300;
a=6 3 5
3 4 5;
enddata
End
最优解Global optimal solution found.
Objective value: 270.0000
Infeasibilities: 0.000000
X( 1) 2.000000 INFINITY 2.000000
X( 2) 3.000000 INFINITY 3.000000
X( 3) 0.0 1.500000 INFINITY
X( 4) 0.0 0.5000000 INFINITY
X( 5) 0.0 0.7500000 INFINITY
Righthand Side Ranges
最优解(4,3,2,0,0)最优值z=17
分析
Ranges in which the basis is unchanged:
Objective Coefficient Ranges
Current Allowable Allowable
Variable Coefficient Increase Decrease
4] 4 X( 2) + X( 5) = 12
END
编程
sets:
is/1..3/:b;
js/1..5/:c,x;
links(is,js):a;
endsets
max=sum(js(J):c(J)*x(J));
for(is(I):sum(js(J):a(I,J)*x(J))=b(I));
data:
c=2 3 0 0 0;
X( 1) 50.00000 0.000000
X( 2) 0.000000 2.000000
X( 3) 30.00000 0.000000
A( 1, 1) 6.000000 0.000000
A( 1, 2) 3.000000 0.000000
A( 1, 3) 5.000000 0.000000
A( 2, 1) 3.000000 0.000000
1 14.00000 1.000000
2 0.000000 1.500000
3 0.000000 0.1250000
4 0.000000 0.000000
例题2-11
模型
MAX 2 X( 1) + 3 X( 2)
SUBJECT TO
2] X( 1) + 2 X( 2) + X( 3) = 12
3] 4 X( 1) + X( 4) = 16
2 8.000000 2.000000 4.000000
3 16.00000 16.00000 8.000000
4 12.00000 INFINITY 4.000000
由灵敏度分析表知道C2在【0,4】之间变化时,最优基不变。
第六题
模型
MODEL:
[_1]MAX= 3 * X_1 + X_2 + 4 * X_3 ;
A( 3, 4) 0.000000 0.000000
A( 3, 5) 1.000000 0.000000
Row Slack or Surplus Dual Price
1 17.00000 1.000000
2 0.000000 0.000000
3 0.000000 0.5000000
4 0.000000 0.7500000
b=12 16 12;
a=1 2 1 0 0
4 0 0 1 0
0 4 0 0 1;
enddata
end
最优解
Global optimal solution found at iteration: 2
Objective value: 17.00000
Variable Value Reduced Cost
Row Current Allowable Allowable
RHS Increase Decrease
2 12.00000 INFINITY 2.000000
3 16.00000 8.000000 16.00000
4 12.00000 4.000000 12.00000
例题2-12
模型
MAX 2 X( 1) + 3 X( 2)
for(is(I):sum(js(J):a(I,J)*x(J))=b(I));
data:
c=2 3 0 0 0;
b=8 16 12;
a=1 2 1 0 0
4 0 0 1 0
0 4 0 0 1;
enddata
end
灵敏度分析
Ranges in which the basis is unchanged:
《运筹学/线性规划》实验报告
实验室: 实验日期:
实验项目
线性规划的灵敏度分析
系 别
数学系
姓 名
学 号
班 级
指导教师
成 绩
一 实验目的
掌握用Lingo/Lindo对线性规划问题进行灵敏度分析的方法,理解解报告的内容。初步掌握对实际的线性规划问题建立数学模型,并利用计算机求解分析的一般方法。
二 实验环境
SUBJECT TO
2] X( 1) + 2 X( 2) + X( 3) = 8
3] 4 X( 1) + X( 4) = 16
4] 4 X( 2) + X( 5) = 12
END
编程
sets:
is/1..3/:b;
js/1..5/:c,x;
links(is,js):a;
endsets
max=sum(js(J):c(J)*x(J));
A( 3, 1) 0.000000 0.000000
A( 3, 2) 4.000000 0.000000
A( 3, 3) 0.000000 0.000000
A( 3, 4) 0.000000 0.000000
A( 3, 5) 1.000000 0.000000
Row Slack or Surplus Dual Price
END
编程
sets:
is/1..3/:b;
js/1..5/:c,x;
links(is,js):a;
endsets
max=sum(js(J):c(J)*x(J));
for(is(I):sum(js(J):a(I,J)*x(J))=b(I));
data:
c=2 3 0 0 0;
b=8 16 12;
a=1 2 1 0 0
Objective Coefficient Ranges
Current Allowable Allowable
Variable Coefficient Increase Decrease
X( 1) 2.000000 INFINITY 0.5000000
X( 2) 3.000000 1.000000 3.000000
C( 5) 0.000000 0.000000
X( 1) 4.000000 0.000000
X( 2) 3.000000 0.000000
X( 3) 2.000000 0.000000
X( 4) 0.000000 0.5000000
X( 5) 0.000000 0.7500000
A( 1, 1) 1.000000 0.000000
[_2] 6 * X_1 + 3 * X_2 + 5 * X_3 <= 450 ;
[_3] 3 * X_1 + 4 * X_2 + 5 * X_3 <= 300 ;
END
编程
sets:
is/1..2/:b;
js/1..3/:c,x;
links(is,js):a;
endsets
max=sum(js(J):c(J)*x(J));
4 0 0 1 0
0 4 0 0 1;
enddata
end
灵敏度分析
Ranges in which the basis is unchanged:
Objective Coefficient Ranges
Current Allowable Allowable
Variable Coefficient Increase Decrease
A( 1, 2) 2.000000 0.000000
A( 1, 3) 1.000000 0.000000
A( 1, 4) 0.000000 0.000000
A( 1, 5) 0.000000 0.000000
A( 2, 1) 4.000000 0.000000