《图解算法》第九章之动态规划

目录

《算法图解》第九章动态规划学习心得

费曼算法(Feynman algorithm)

小结

不错的一个笔记



《算法图解》第九章动态规划学习心得

学习动态规划,这是一种解决棘手问题的方法,它将问题分成小问题,并先着手解决这
些小问题。
 学习如何设计问题的动态规划解决方案。
 

动态规划策略,一种分治策略。和贪婪策略一样,通常是用来解决最优解问题。分治故名就是将问题分解为几个子问题来解决,动态规划的特点就是分解的子问题中(子问题又可以分解成子问题)每次选择选择最优解。

        动态规划主要的特点是在做决定前她知道所有子问题的信息

        动态规划的两个重要要素是:1)最优子结构。2)重叠子问题。

        1)最优子结构,这是采取动态规划策略解最优化问题后要做的第一步。所谓最优化子结构是说若问题的一个最优解中包含了子问题的最优解,则该问题具有最优子结构。这个是我们采取动态规划的一个充分条件(当然这个条件也满足贪婪策略),问题出现这个条件就可以考虑采取动态规划。

        一般要考虑的因素是:

                1.1)最优解里需要解决的子问题数量有多少?

                1.2)在判断使用那些子问题时需要进行多少选择?

        2)重叠子问题,是指在递归解决方案中,若产生了大量的相同子问题,那么相同的子问题就会被重复计算很多次,这样算法的效率损耗就很大。这个要素是动态规划的优势所在,可以说动态规划就是为解决这种问题而生的(实际上,有记忆的递归算法也可以做到类似的算法改进).

       

没办法建模。动态规划功能强大,它能够解决子问题并使用这些答案来解决大问题。 但仅当
每个子问题都是离散的,即不依赖于其他子问题时,动态规划才管用。 这意味着使用动态规划算
法解决不了去巴黎玩的问题。
 

费曼算法(Feynman algorithm)

算机科学家有时会开玩笑说,那就使用
费曼算法(Feynman algorithm)。这个算法是以著名物理学家理查德·费曼命名的,其步骤如下。
(1) 将问题写下来。
(2) 好好思考。
(3) 将答案写下来。
 

 

小结


 需要在给定约束条件下优化某种指标时,动态规划很有用。
 问题可分解为离散子问题时,可使用动态规划来解决。
 每种动态规划解决方案都涉及网格。
 单元格中的值通常就是你要优化的值。
 每个单元格都是一个子问题,因此你需要考虑如何将问题分解为子问题。
 没有放之四海皆准的计算动态规划解决方案的公式。
 

不错的一个笔记

https://www.cnblogs.com/raichen/p/5772056.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值