多阶段决策优化 - 动态规划

Posted Patrick与供应链之道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多阶段决策优化 - 动态规划相关的知识,希望对你有一定的参考价值。

      何为多阶段决策。

 

比如说连续投资问题,本年在项目上的投资总额,受当前拥有资金的约束,当前拥有资金由前面的投资决策所决定,而本年的投资总额,又会影响后面的投资。

 

因为整个过程中的各个决策并不是相互独立的,前面对当前有影响,当前对后面有影响,所以整个决策链条可以划分为一环扣一环的多个阶段。


动态规划(Dynamic Programming)是解决多阶段决策的算法。


简而言之动态规划算法就是,列出每个阶段跟上一个阶段的关系,以此作为约束。


For example.

(下面是线性动态规划)

预测公司未来10年每年年初净现金流如下,

目前只有100万元,需要向银行贷款,由两种贷款方式,


第一种是10年期的长期贷款,年利率7%,只能在第一年年初贷款,第二年年初开始每年年初还息(10次),第11年年初还本;


第二种是一年期短期贷款,年利率10%,可在第1 – 10年每年年初贷款,下一年还本付息。


并且要求每年的现金储备最少50万元。


问:采用怎样的贷款组合使公司在10年内正常运转,希望第11年年初的资金金额最多?

多阶段决策优化 - 动态规划

       每一年的借钱、还钱、现金流出/流入之后的结余大于等于50万元。


       再加上默认的决策变量(借款额)的非负约束。


      当然上面Excel中每年的还款额是提前列好公式的,随每年的借款额变化而变化。


      目标函数是第11年年初的结余金额取最大值,结果如下。

我觉得挺简单的。

     典型的动态规划问题除了前面提到的,经济管理领域的连续投资问题、贷款问题,还有比如生产调度中的生产与储存问题:当前阶段的生产量不仅取决于本阶段的市场需求量,还取决于前面阶段产生的库存,同时也要考虑后面的市场需求预测。还有优化控制等领域的问题。

   

之前决策在一个阶段产生的结果,称之为 “状态”。每一阶段的“状态”存在约束,所以“状态”反过来制约当前阶段决策的选择,前面阶段的决策实际上影响当前阶段的决策。如果将i-1阶段视为当前阶段,可以看出,后面状态的约束,同样制约前面决策的选择。所以整个决策过程前后是相互关联的。动态规划的算法适合解决这样的多阶段决策优化问题。


以上是关于多阶段决策优化 - 动态规划的主要内容,如果未能解决你的问题,请参考以下文章

pascal 动态规划

动态规划算法

动态规划入门

动态规划

树形动态规划

动态规划 算法(DP)