记表备查-----动态规划算法

本文介绍了动态规划的基本概念,包括最优子结构与子问题重叠两大特性,并详细解释了如何通过自底向上的方法解决具有这些特性的优化问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.最优子结构
•组合优化问题,指的是问题有多个可行解,每一个可行解对应一个目标值,目的是要在可行解中求得目标值最优者(最大或最小)。
•最优子结构特性指的是问题的最优解包含的子问题的解相对于子问题而言也是最优的。
2.子问题重叠
•问题的一个递归算法在每个递归步骤产生分支子问题时并不总是新的,而是对部分子问题解了又解。当一个递归算法一次又一次地访问同一个子问题时,我们说该最优化问题具有重叠子问题的特性。
3.动态规划
•针对具有上述两个特征的优化问题,动态规划算法通常需要做如下的3步工作:
•(1)利用最优子结构定义一个关于解的目标值的递归方程。鉴于子问题的重叠性,如果自顶向下地用递归技术解每一个遇到的子问题,则可能陷入一个“时间黑洞”。
•(2)因此,动态规划以自底向上地对每个新产生的子问题仅解一次且将其解保存在一个表格中,需要时可以在表中查找,且能在常数时间内完成查找。
•(3)根据计算出的最优解的值构造对应的最优解。

参考:《算法设计、分析与实现:C、C++和Java》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值