动态规划(Dynamic Programming)

来源:互联网 发布:百度安卓软件 编辑:程序博客网 时间:2024/06/07 01:31

动态规划:

     动态规划是一种算法设计技术,是多阶段决策过程最优的通用方法。不仅在应用数学中用来解决最优问题的重要工具,在计算机领域被当做一种通用的算法设计技术。

  如果问题是有交叠的子问题所构成的,我们就可以使用动态规划技术来解决它。一般来说,这样的子问题出现在给定问题求解的递推关系中,这个递推关系中包含了相同类型的更小问题的解。动态规划法建议,与其对交叠的子问题一次又一次的求解,还不如对每个较小的子问题只求解一次并把结果记录在表中,这样就可以从表中得出原始问题的解。

动态规划的分类:



线性动规:拦截导弹,合唱队形,挖地雷,建学校,剑客决斗等;
区域动规:石子合并, 加分二叉树,统计单词个数,炮兵布阵等;
树形动规:贪吃的九头龙,二分查找树,聚会的欢乐,数字三角形等;
背包问题:01背包问题,完全背包问题,分组背包问题,二维背包,装箱问题,挤牛奶等;


参考:https://baike.baidu.com/item/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92/529408?fr=aladdin