动态规划是什么,意义在哪里?!!!!

今天花了几个小时,重新理解了一下dp。。。

首先我们要知道为什么要使用dp,我们在选择dp算法的时候,往往是在决策问题上,而且是在如果不使用dp,直接暴力效率会很低的情况下选择使用dp.

那么问题来了,什么时候会选择使用dp呢,一般情况下,我们能将问题抽象出来,并且问题满足无后效性,满足最优子结构,并且能明确的找出状态转移方程的话,

dp无疑是很好的选择。

无后效性是什么呢,无后效性通俗的说就是只要我们得出了当前状态,而不用管这个状态怎么来的,也就是说之前的状态已经用不着了,如果我们抽象出的状态有后效性,很简单,我们只用把这个值加入到状态的表示中。

最优子结构:在决策问题中,如果,当前问题可以拆分为多个子问题,并且依赖于这些子问题,那么我们称为此问题符合子结构,而若当前状态可以由某个阶段的某个或某些

状态直接得到,那么就符合最优子结构

状态转移:这个概念比较简单,在抽象出上述两点的的状态表示后,每种状态之间转移时值或者参数的变化。

接下来就是大量的训练来达到熟练使用了

    原文作者:动态规划
    原文地址: https://blog.csdn.net/w571523631/article/details/70132265
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞