动态规划

动态规划是一种解决最优化问题的有效方法,它适用于具有最优子结构、无后效性和重叠子问题的问题。动态规划通过递推公式和初始状态,以多项式时间复杂度求解问题,避免了回溯法和暴力法的效率低下。文章举例介绍了如何使用动态规划解决最大公共子序列问题,并展示了两种不同的实现代码,强调了子问题解的复用以提高效率。
摘要由CSDN通过智能技术生成


能采用动态规划求解的问题的一般要具有3个性质:

    (1) 最优化原理:如果问题的最优解所包含的子问题的解也是最优的,就称该问题具有最优子结构,即满足最优化原理。

    (2) 无后效性:即某阶段状态一旦确定,就不受这个状态以后决策的影响。也就是说,某状态以后的过程不会影响以前的状态,只与当前状态有关。

   (3)有重叠子问题:即子问题之间是不独立的,一个子问题在下一阶段决策中可能被多次使用到。(该性质并不是动态规划适用的必要条件,但是如果没有这条性质,动态规划算法同其他算法相比就不具备优势

基本思想:动态规划算法通常基于一个递推公式及一个或多个初始状态。 当前子问题的解将由上一次子问题的解推出。使用动态规划来解题只需要多项式时间复杂度, 因此它比回溯法、暴力法等要快许多。先求解子问题 保存子问题的解 通过转换方程来 由子问题求解全局问题的解。典型问题有 求最大和子集/最大积子集 解法:http://www.cnblogs.com/bakari/p/4007368.html

典型问题:求最大公

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值