规划求解中影子价格的应用——提高水溶肥配方的容错率


关于excel规划求解中敏感性报告阴影价格应用
作用
明确概念
实际意义
验证
参考价格变动1个单位:阴影价格≠目标值改变量
参考价格和默认价格在范围内变动任意个单位
提高配方养分含量要求,目标值反而降低
小结
不足


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



目录:

关于excel规划求解中敏感性报告阴影价格应用阴影价格获取敏感性报告作用明确概念实际意义验证默认价格变动1个单位:阴影价格=目标值改变量参考价格变动1个单位:阴影价格≠目标值改变量参考价格和默认价格在范围内变动任意个单位提高配方养分含量要求,目标值反而降低小结不足


阴影价格



获取敏感性报告


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

pic
“敏感性报告”和“阴影价格”的位置


作用


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


  • 明确概念


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

    资源约束值(bi)是例线性规划问题方程中的名称
    约束限制值是在敏感性报告中的名称
    配方养分含量要求是在excel表格中的名称


    实际意义


    在现有约束条件和最优配方结果下,只变动其中一个资源约束值(敏感性报告中约束限制值),资源约束值bi在允许增量和减量上下限内改变一个单位,所导致的目标值结果的改变量=阴影价格。
    例如,下图中如果将约束限制值(bi) -计算结果N从20改为21,那么最终目标值价格变动为0.02173913;将约束限制值(bi) -计算结果P2O5从20改为21,那么最终目标值价格变动为0.009188236。
    pic
    图1 20-20-20配方中参考价格条件下的敏感性—阴影价格报告


    验证


    首选需要说明的是,不同约束条件背景下,即使是20-20-20配方这条件相同,得到的敏感性报告差别很大。必须明确的是敏感值报告是在特定约束条件下的结果
    小编在初次尝试验证敏感性报告中阴影价格时,因忽略了参考价格下,约束限制值的允许增加值上限,导致得到与阴影价格有偏差的结果。下面在具体的验证中说明。
    pic
    图2,通过目标式系数可知,上图是默认价格条件下20-20-20的敏感性报告

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


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

    组别默认价格
    变动方向20→2120→19
    N0.02174-0.02174
    p0.00919-0.00919
    K0.01536-0.01536
    表1,默认价格下,只变动NPK其中一个情况下,从20→21,20→19变动后目标值的改变量。

    pic
    图4,通过目标式系数可知,上图是默认价格条件下20-20-20的敏感性报告

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


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

    组别参考价格
    变动方向20→2120→19
    N391.2705238-222.5352
    p261.6373142-192.8885
    K353.1441566-250.7042
    表2,参考价格下,只变动NPK其中一个情况下,从20→21,20→19变动后目标值的改变量。

    pic
    图5,通过目标式系数可知,上图是参考价格条件下20-20-20的敏感性报告

    通过对表1和图4的信息,可知[list=1]
  • 在最优配方情况,NPK向下变动1个资源量1个单位时,目标值的改变量的绝对值=阴影价格
  • 在最优配方情况,NPK向上变动1个资源量1个单位时,目标值的改变量的绝对值≠阴影价格

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

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


    上文示例了在范围内当资源约束值变动1个单位时,阴影价格=目标值改变量。如果参考价格和默认价格在范围内变动任意个单位,目标值改变量是否等于阴影价格*变动单位数?
    pic
    表3,验证默认价格下,在图2敏感性报告约束限制值变动范围内,只改变1个资源约束值情况下,资源约束值变动任意个单位。目标值改变量=阴影价格*变动单位数

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

    通过表3和表4结果可知:在敏感性报告约束限制值变动范围内,只改变1个资源约束值情况下,资源约束值变动任意个单位。目标值改变量=阴影价格*变动单位数。
    以上结果也回应了小编的那个错误尝试

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


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

    pic
    图7,20-20-20配方中,将氯cl离子限制在3%,规划求解配方价格最低的结果是5498.58

    pic
    图8,20-20-20配方中,将氯cl离子限制在4%,规划求解配方价格最低的结果是5423.40

    通过图6,7,8对比可知:[list=1]
  • 提高配方养分含量中氯cl要求,目标值结果反而会降低(5423.40<5498.58)
  • 目标值结果的差值=阴影价格(5423.40-5498.58=-75.18)


  • 小结


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


  • pic
    图9,参考价格下,敏感性报告中N和P阴影价格的差别


    不足


    pic
    参考价格下,20→21得到的目标值改变量≠阴影价格
    登录后说两句