动态规划

动态规划(dynamic programming)是求解决策过程(decision process)最优化的数学方法。一般分为:


线性动规:拦截导弹,合唱队形,挖地雷,建学校,剑客决斗等;

区域动规:石子合并, 加分二叉树,统计单词个数,炮兵布阵等;

树形动规:贪吃的九头龙,二分查找树,聚会的欢乐,数字三角形等;

背包问题:01背包问题,完全背包问题,分组背包问题,二维背包,装箱问题,挤牛奶(同济ACM第1132题)等;

动态规划的特点:
------把原始问题划分成一系列子问题(与分治法相同)
------求解每个子问题仅一次,并将其结果保存在一个表中,以后用到的时候直接取
------自底向上地计算(分治法自顶向下,没有考虑子问题重叠)

适用范围:
------优化问题:可分为多个相关子问题,子问题的解被重复使用

使用动态规划的条件
------优化子结构(保证动态规划的正确性):当一个问题的优化解包含了子问题的优化解时,我们说这个问题具有优化子结构。如果不具有优化子结构,保存结果就没有意义了,反而浪费了空间。
------重叠子问题:在问题的求解过程中,很多子问题的解将被多次使用

动态规划算法的设计步骤:
------分析优化解的结构
------递归地定义最优解的代价
------自底向上地计算优化解的代价保存之,并获取构造最优解的信息
------根据构造最优解的信息构造优化解

动态规划的核心是状态状态转移方程



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值