[算法设计与分析入门]动态规划基础

动态规划原理

动态规划和分治法的区别

分治法中划分的各个子问题是独立的,如果子问题不是独立的,那么分治法将会重复计算公共子问题导致效率很低.
优化问题
对于给定一组约束条件和一个代价函数,在解空间中搜索具有最小或者最大代价的优化解
许多优化问题可以分为多个子问题,子问题相互关联,子问题的解被重复使用
动态规划
原始问题分解成为一系列的子问题,每个子问题求解一次,将求解结果保存在一个表当中,以后可以直接访问这个表来获取子问题的解,不需要重复计算.
每次求解的时候都是自底向上计算.
这就要求子问题的解应当被重复使用

使用动态规划的条件

  • 优化子结构
  • 重叠子问题

动态规划算法的设计步骤

  1. 分析优化解的结构
  2. 递归定义最优解的代价
  3. 自底向上计算优化解的代价并保存,并获取最优解的信息
  4. 根据最优解的信息构造优化解
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值