feichangyl

V1

2022/10/12阅读:81主题:自定义主题1

关于excel规划求解中敏感性报告阴影价格应用

关于excel规划求解中敏感性报告阴影价格应用

目录:

阴影价格

获取敏感性报告

通过规划求解得到结果时,可选择“报告-敏感性报告”得到敏感性报告

天若_20221012111632
天若_20221012111632
在规划求解中获取“敏感性报告”
天若_20221012111738
天若_20221012111738
“敏感性报告”和“阴影价格”的位置

作用

通过对阴影价格的示例,可以看出阴影价格具备很强的现实意义:

  1. 在现有原料和约束条件下,可以通过阴影价格直观看到变动单个资源约束值时的目标值改变量;
  2. 如果有客户对配方具体数值没有要求,只是希望增加NPK总养分的含量,那么从成本最优的角度考虑,可选择在提高阴影价格最低的那个元素。比如20-20-20中,根据图9参考价格的敏感性报告中阴影价格,如果只是要求增加NPK总养分,那么增加P元素含量比增加N元素更划算。
  3. 通常来说,在以肥料配方总价格为目标值最优的规划求解中,提高配方中养分含量,会导致目标值的增加,也就是说各个约束限制值的值为正值,但也存在极个别元素,比如氯离子,因氯化钾中钾的养分含量高,价格便宜。如果允许在配方中增加氯离子的含量,那么总的配方价格会降低。

明确概念

因不同语境下表达需求,相同意思的内容会有不同的名称,因此有必要先明确一些概念:资源约束值(bi)=约束限制值=配方养分含量要求

资源约束值(bi)是例线性规划问题方程中的名称

约束限制值是在敏感性报告中的名称

配方养分含量要求是在excel表格中的名称

实际意义

在现有约束条件和最优配方结果下,只变动其中一个资源约束值(敏感性报告中约束限制值),资源约束值bi在允许增量和减量上下限内改变一个单位,所导致的目标值结果的改变量=阴影价格。

例如,下图中如果将约束限制值(bi) -计算结果N从20改为21,那么最终目标值价格变动为0.02173913;将约束限制值(bi) -计算结果P2O5从20改为21,那么最终目标值价格变动为0.009188236。

image-20220924092012410
image-20220924092012410
图1 20-20-20配方中参考价格条件下的敏感性—阴影价格报告

验证

首选需要说明的是,不同约束条件背景下,即使是20-20-20配方这条件相同,得到的敏感性报告差别很大。必须明确的是敏感值报告是在特定约束条件下的结果

小编在初次尝试验证敏感性报告中阴影价格时,因忽略了参考价格下,约束限制值的允许增加值上限,导致得到与阴影价格有偏差的结果。下面在具体的验证中说明。

image-20220924103443274
image-20220924103443274
图2,通过目标式系数可知,上图是默认价格条件下20-20-20的敏感性报告
image-20220924103749705
image-20220924103749705
图3,通过目标式系数可知,上图是参考价格条件下20-20-20的敏感性报告

默认价格变动1个单位:阴影价格=目标值改变量

组别 默认价格
变动方向 20→21 20→19
N 0.02174 -0.02174
p 0.00919 -0.00919
K 0.01536 -0.01536
表1,默认价格下,只变动NPK其中一个情况下,从20→21,20→19变动后目标值的改变量。
天若_20220724110705
天若_20220724110705
图4,通过目标式系数可知,上图是默认价格条件下20-20-20的敏感性报告

通过对表1和图4的信息,可知

  1. 在约束限制值范围内,无论是向上还是向下,只变动1个资源量1个单位时,目标值的改变量的绝对值=阴影价格
  2. 以肥料配方计算求目标值价格最低而言,一般来说,提高养分含量的要求(增加约束限制值),会增加最终目标值的价格,降低养分含量的要求,会降低最终目标值的价格。但个别养分含量的提高反而会降低最终目标值的价格,大家可以先想想会是那个元素,小编下面会给出示例。

参考价格变动1个单位:阴影价格≠目标值改变量

组别 参考价格
变动方向 20→21 20→19
N 391.2705238 -222.5352
p 261.6373142 -192.8885
K 353.1441566 -250.7042
表2,参考价格下,只变动NPK其中一个情况下,从20→21,20→19变动后目标值的改变量。
image-20220924111943012
image-20220924111943012
图5,通过目标式系数可知,上图是参考价格条件下20-20-20的敏感性报告

通过对表1和图4的信息,可知

  1. 在最优配方情况,NPK向下变动1个资源量1个单位时,目标值的改变量的绝对值=阴影价格
  2. 在最优配方情况,NPK向上变动1个资源量1个单位时,目标值的改变量的绝对值≠阴影价格

这就是小编在验证过程中所遇到的错误,忽略了参考价格下敏感性报告中约束限制值中允许的增量上限。从图5看,NPK所允许的增量均<1,也就是不满足20→21的调整。

参考价格和默认价格在范围内变动任意个单位

上文示例了在范围内当资源约束值变动1个单位时,阴影价格=目标值改变量。如果参考价格和默认价格在范围内变动任意个单位,目标值改变量是否等于阴影价格*变动单位数?

image-20220924113119400
image-20220924113119400
表3,验证默认价格下,在图2敏感性报告约束限制值变动范围内,只改变1个资源约束值情况下,资源约束值变动任意个单位。目标值改变量=阴影价格*变动单位数
image-20220924113132081
image-20220924113132081
表4,验证参考价格下,在图3敏感性报告约束限制值变动范围内,只改变1个资源约束值情况下,资源约束值变动任意个单位。目标值改变量=阴影价格*变动单位数

通过表3和表4结果可知:在敏感性报告约束限制值变动范围内,只改变1个资源约束值情况下,资源约束值变动任意个单位。目标值改变量=阴影价格*变动单位数。

以上结果也回应了小编的那个错误尝试

提高配方养分含量要求,目标值反而降低

细心朋友已经可能已经发现了,阴影价格中绝大部分是正值,但氯cl元素的阴影价格是负数。这意味着,如果在配方养分含量要求中增加氯离子的含量,配方肥的最终价格反而会降低。可以停下来思考一下下这是为什么呢?

image-20220924113624599
image-20220924113624599
图6,参考价格下,氯cl的阴影价格为负数
image-20220924114039852
image-20220924114039852
图7,20-20-20配方中,将氯cl离子限制在3%,规划求解配方价格最低的结果是5498.58
image-20220924114114853
image-20220924114114853
图8,20-20-20配方中,将氯cl离子限制在4%,规划求解配方价格最低的结果是5423.40

通过图6,7,8对比可知:

  1. 提高配方养分含量中氯cl要求,目标值结果反而会降低(5423.40<5498.58)
  2. 目标值结果的差值=阴影价格(5423.40-5498.58=-75.18)

小结

通过对阴影价格的示例,可以看出阴影价格具备很强的现实意义:

  1. 在现有原料和约束条件下,可以阴影价格直观看到变动单个资源约束值时的目标值改变量;
  2. 如果有客户对配方具体数值没有要求,只是希望增加NPK总养分的含量,那么从成本最优的角度考虑,可选择在提高阴影价格最低的那个元素。比如20-20-20中,根据图9参考价格的敏感性报告中阴影价格,增加P元素含量比增加N元素更划算。
  3. 通常来说,在以肥料配方总价格为目标值最优的规划求解中,提高配方中养分含量,会导致目标值的增加,也就是说各个约束限制值的值为正值,但也存在极个别元素,比如氯离子,因氯化钾中钾的养分含量高,价格便宜。如果允许在配方中增加氯离子的含量,那么总的配方价格会降低。
image-20220924115618812
image-20220924115618812
图9,参考价格下,敏感性报告中N和P阴影价格的差别

不足

  • 如小编尝试中所遇到的错误,阴影价格的存在有对应的约束限制值范围(约束限制值-允许的减量,约束限制值+允许的增量)。

  • 当超过范围之后,阴影价格不再有效;实际工作中,有超过阴影价格范围的预测需求,比如小编犯错中的一个场景,在参考价格中,尝试将资源限制值20→21,但NPK增加一个单位造成的最终目标值实际改变量≠阴影价格不匹配。

image-20220926085303844
image-20220926085303844
参考价格下,20→21得到的目标值改变量≠阴影价格
  • 本文首发于vx公众号:农技小石头 欢迎大家关注获取小石头的最新分享。

分类:

后端

标签:

后端

作者介绍

feichangyl
V1