对偶问题影子价格求解—R实现
作者:互联网
线性规划的对偶问题
线性规划对偶问题概述
例如:某厂生产A,B, C三种产品,每种产品的单位利润分别为12,18和15,资源消耗如下表,求总利润最大的生产方案。
A | B | C | 资源 | |
---|---|---|---|---|
原料1/单位产品 | 6 | 9 | 5 | 200 |
原料2/单位产品 | 12 | 16 | 17 | 360 |
人工/单位产品 | 25 | 20 | 12 | 780 |
利润 | 12 | 18 | 15 |
1. 自主生产
设生产A,B,C分别为\(x_1\),\(x_2\),\(x_3\)个单位,数学模型为(LP):
\begin{array}{l} \max z = 12{x_1} + 18{x_2} + 5{x_3}\\ s.t.\left\{ {\begin{array}{*{20}{c}} {6{x_1} + 9{x_2} + 5{x_3} \le 200}\\ {12{x_1} + 16{x_2} + 17{x_3} \le 360}\\ {25{x_1} + 20{x_2} + 12{x_3} \le 780}\\ {{x_1} \ge 0,{x_2} \ge 0,{x_3} \ge 0} \end{array}} \right. \end{array}
2. 外包资源
如果把接受外来加工任务看成将企业的三种资源(原料1、原料2和人工)出售给对方,每单位资源售价(利润)为\(y_i\),\(i=1,2,3\),则6个单位资源1加12个单位资源2再加上25个小时人工相当于生产一个单位产品A,故这些资源的总售价应至少为产品A的售价,不然给别人加工不如自己生产产品A,故我们得到如下对偶线性规划(DLP):
\begin{array}{l} \min w = 200{y_1} + 360{y_2} + 780{y_3}\\ s.t.\left\{ {\begin{array}{*{20}{c}} {6{y_1} + 12{y_2} + 25{y_3} \ge 12}\\ {9{y_1} + 16{y_2} + 20{y_3} \ge 18}\\ {5{y_1} + 17{y_2} + 12{y_3} \ge 5}\\ {{y_1} \ge 0,{y_2} \ge 0,{y_3} \ge 0} \end{array}} \right. \end{array}
影子价格
所谓资源的影子价格,是指在其他条件不变的情况下,单位资源变化所引起目标函数最优值的改变,即该资源的边际价格。影子价格又可以看作一种机会成本,在完全市场经济条件下,当一种资源的市场价格低于资源成本加上影子价格时,可以买入资源;市场价格高于资源成本加上影子价格时,可以卖出资源。随着资源的买进卖出,影子价格会发生变化。
对偶解的经济意义:如果把线性规划约束看成广义资源约束,右边项代表资源的可用量,其经济含义是资源对经济目标的边际贡献。目标函数值通常用价值量衡量,对偶解也具有价值内涵,被称为影子价格。影子价格是对偶解十分形象的名称,它既表明对偶解是对资源的一种客观估价,又表明它是虚拟而不是真实的价格。
影子价格的特点:
(1)系统资源的最优估价:影子价格是综合考虑系统内所有因素和相互影响之后对资源在系统内的真实价值的估价。只有系统达到最优状态时才可能赋予该资源这种价值。因此,也有人称之为最优计划价格。
(2)影子价格是一种边际值:它与经济学中边际成本的概念相同,在管理中有十分重要的应有价值,管理者可以根据资源在本企业内影子价格的大小决定企业的经营策略。
(3)影子价格是一种机会成本:它与经济学中机会成本的概念相同,在决策中有十分重要的应有价值,管理者可以根据机会成本的大小决定企业的资源是否应该使用。但这里的机会成本只是企业生产范围内机会成本。
(4)影子价格与系统价值取向和状态有关:影子价格(\(y=C_B\)B-1\()的取值与系统的价值取向有关(反映在\)\(C_B\)上);影子价格受系统状态影响(反映在B-1上);系统内部资源数量和价格的任何变化都会引起影子价格的变化,从这种意义上讲,它是一种动态的价格体系。
(5)反映资源在系统内的稀缺程度:如果资源在系统内供大于求,其影子价格为零。增加该资源的供应不会给系统目标带来任何变化。如果是稀缺资源,其影子价格大于零。价格越高,资源的稀缺程度越高。按以下原则考虑经营策略:影子价格高于市场价格(或≥0)表明资源有获利能力,购入该资源。影子价格低于市场价格(或≤0)表明该资源无获利能力,出让该资源。影子价格等于市场价格(或=0)表明该资源处于平衡状态,既不用买入,也不必卖出。
影子价格R计算
例2:奶制品加工问题
一奶制品加工厂用牛奶生产A1和A2两种产品,一桶牛奶可以在甲车间用12h加工成3kg的A1产品,或者在乙车间用8h加工成4kg的A2产品。两种产品的利润分别为24元/kg和16元/kg。1kgA1产品在甲车间用2小时和3元成本加工成0.8kg B1产品,每千克B1产品可获利44元。1千克A2产品在乙车间用2小时和3元成本加工成0.75千克B2产品,每千克B2产品可获利32元。加工厂每天得到50桶牛奶的供应,每天正式工人总的劳动时间为480个小时,甲车间的设备上限为每天100千克,乙车间无限制。
A1 | A2 | B1 | B2 | 资源 | |
---|---|---|---|---|---|
甲车间 | 12 | 100 | |||
乙车间 | 8 | M | |||
甲车间A1 | 1 | 3 | |||
乙车间A2 | 4 | ||||
总工时 | 12 | 2 | 480 | ||
利润 | 24 | 0.75*16 |
(1)制定一个生产计划,是每天的获利最大。
(2)30元可增加1桶牛奶,3元可增加1小时时间,是否应该投资?现投资150元,可赚回多少?
(3)B1、B2的获利经常有10%的波动,对计划有无影响?
(1)制定一个生产计划,是每天的获利最大。
依题意
一桶牛奶在甲车间经过12小时可生产3KG A1产品,1KG A1产品经过2小时和3元成本可生产0.8KGB1产品,每千克B1获利44元。
一桶牛奶在乙车间经过8小时可生产4KG A2产品,1KG A2产品经过2小时和3元成本可生产0.75KG B2产品,每千克B2获利32元。
设有X1桶牛奶用于生产A1,X2桶牛奶用于生产A2,X3桶牛奶用于生产B1,X4桶牛奶用于生产B2。
最后A1产品为3X1,A2产品为4X2,生产的B1产品为2.4X3,生产的B2的产品3X4
library(lpSolve)
c<-c(72,64, 96.6,84)
A<-matrix(c(1,1,1,1,12,8,18,16,3,0,5.4,0),nrow=3,byrow=T)
d<-rep("<=",3)
b<-c(50,480,100)
lp.sol<-lp(direction="max",objective.in=c,const.mat=A,const.dir=d,const.rhs=b,compute.sens=1)
运行结果为:
lp.sol\(objval [1] 3460.8 lp.sol\)solution
[1] 0 42 8 0
结果解释:
每天用42桶牛奶生产A2产品,8桶牛奶生产B1产品,获利最多为3460.8元
(2)30元可增加1桶牛奶,3元可增加1小时时间,是否应该投资?现投资150元,可赚回多少?
rbind(lp.sol\(duals,lp.sol\)duals.from,lp.sol$duals.to)
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 37.92000 3.2600 0e+00 -5.04e+00 0e+00 0e+00 -6.08000
[2,] 36.85185 400.0000 -1e+30 -1.00e+30 -1e+30 -1e+30 -13.14815
[3,] 60.00000 585.1852 1e+30 2.00e+01 1e+30 1e+30 10.00000
解:关于原料供应约束的影子价格为30.72元,上限为60桶,关于劳动时间的影子价格为3.26元。每增加一桶牛奶的成本为30元,可获利7.92元,每增加一小时时间的成本为3元,可获利0.26元,因为都获利,所以应该投资。
因为每单位价格牛奶的获利大于每单位价格劳动时间的获利,所以在区间内应该全选牛奶,150元可以买5桶牛奶,在区间内,所以应该全投资买牛奶,获利为:39.6元。
(3)B1、B2的获利经常有10%的波动,对计划有无影响?
R语言实现:
rbind(lp.sol\(sens.coef.from,lp.sol\)sens.coef.to)
[,1] [,2] [,3] [,4]
[1,] -1.000e+30 55.6 89 -1.000e+30
[2,] 7.704e+01 96.6 144 9.008e+01
最优解不变时,b1的区间为 [公式] ,b2的区间为 [公式] 。
所以当B1降价10%或B2涨价10%都对计划有影响。
参考文献
标签:影子,12,牛奶,求解,30,价格,资源,对偶 来源: https://www.cnblogs.com/haohai9309/p/16180373.html