动态规划思想

动态规划是一种求解最优化问题的数学方法,源于运筹学,常用于解决最短路径、资源分配等。它通过分治和处理冗余避免递归的效率问题,通过保存子问题结果提升效率。动态规划的关键是最优子结构和重叠子问题,通过自底向上的方式计算最优值,并构造最优解。
摘要由CSDN通过智能技术生成

动态规划是运筹学的一个分支,是一种求解决策过程最优化的数学方法。

本质(个人理解):进行分治和处理冗余,适用于解决最优化问题(分治与递归相依相生,都知道递归效率慢,动态规划采用自底向上的方法,处理冗余就是对于重复出现的记录,后面需要时直接取值就好了,同时,题目是求解最优值的话,那么就是动态规划),像最短路径、资源分配、最优装载、库存管理等问题。

算法特点:

动态规划的最初是为了解决多阶段决策问题而诞生的,每个阶段以最优来一个阶段嵌套一个阶段产生最终的最优值。动态规划的本质是分治算法,即将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。但是,与分治法明显不同的是,适合于动态规划求解的问题,经分解后的得到的子问题(子问题的数目一般是多项式量级)往往不是相互独立的(与分治法子问题独立是不同的)。如果用分治法来解这类问题,由于子问题不相互独立,导致有些子问题被重复计算了多次,以至于最后解决原问题需要耗费指数类型的时间复杂度。

动态规划算法的思想之一就是保存已解决的子问题的结果,而在需要时直接获取已保存的结果,这样就可以避免大量的重复计算,从而得到多项式类型的时间复杂度的算法,因此把这种方法称之为带有记忆功能的分治法。这也是动态规划算法高效的原因之一。

 

但保存了重复子问题结果的分治法就构成了动态规划算法吗? 答案是否定的。这要从待解决问题的性质进行考虑。        如果待解决问题不进行最优的求解,仅仅由具有交叠的子问题组成,则可以简单采用上述带有记忆功能的分治法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值