基础知识-动态规划

动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。

20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process)的优化问题时,提出了著名的最优化原理(principle of optimality),把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解,创立了解决这类过程优化问题的新方法——动态规划。

1957年出版了他的名著《Dynamic Programming》,这是该领域的第一本著作。

动态规划只能应用于有最优子结构的问题。最优子结构的意思是局部最优解能决定全局最优解(对有些问题这个要求并不能完全满足,故有时需要引入一定的近似)。简单地说,问题能够分解成子问题来解决。

动态规划(Dynamic Programming,简称DP)是一种算法设计技术,它通常用于求解具有重叠子问题和最优子结构特性的复杂问题。动态规划算法能够将一个复杂问题分解成一系列简单的子问题,并通过合理的方式保存子问题的解,以避免重复计算,从而提高效率。

动态规划的关键特点包括:

  1. 重叠子问题:在解决原问题的过程中,相同的子问题会被多次遇到和求解。
  2. 最优子结构:原问题的最优解包含了其子问题的最优解。也就是说,我们可以通过组合子问题的最优解来构造原问题的最优解。
  3. 存储子问题的解:动态规划算法通常会使用一个表(通常是数组或哈希表)来存储子问题的解,这样在下一次遇到相同的子问题时,可以直接查表获得答案,而不是重新计算。
  4. 构建解决方案:动态规划通常从最简单的子问题开始求解,并逐步构建更复杂问题的解,直到得到原问题的解。

动态规划算法通常有两种实现方式:

  • 自顶向下:这种方法使用递归来解决问题,并通过“记忆化”
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值