什么是动态规划?
动态规划 算法是解决 的通用方法。在这类问题中,可能有多个可行解。每一个解都对应着一个值,而我们希望找到的是 。
要了解动态规划的概念,首先要知道什么是 。
多阶段决策问题
如果一类活动过程可以分为 ,在每一个阶段都需(采取措施),一个阶段的决策确定以后,常常影响到下一个阶段的决策,从而就完全地确定了一个过程的活动路线,则称它为。
策略
各个阶段的决策构成一个,称为一个。每一个阶段都有若干个决策可供选择,因而就有许多策略供我们选取,对应于一个策略可以确定活动的效果,这个效果可以用数量来确定。策略不同,效果也会有所不同。多阶段决策问题,就是要在可以选择的策略之间,。
举个例子:最短路径问题求解

求 到达 的最短距离。
思考:仔细观察本图路径的特殊性,可以分成四个阶段。
第一阶段 :
有两条通路: 和 ;
第二阶段 :
有三条通路: , , ;
有两条通路: , ;
第三阶段 :
有两条通路: 和 ;
有一条通路:;
有一条通路:;
有一条通路:;
第四阶段 : 有一条通路:;
有一条通路:;
有一条通路:.
解决方法:倒着推 (设 表示 点到 点的最短路径的长度)
不难想到:
名词解释: 我们把 称为当前;每一的阶段的选择当前的状态,又随即;一个决策序列就是在中产生的,故有的含义。
小结
三个基本的概念 |
1.: 问题的过程被分成若干个相互联系的部分,我们称之为阶段,以便按一定的次序求解。 |
2.: 某一阶段的出发位置称为状态,通常一个阶段包含着若干个状态。 |
3.: 对问题的处理中做出的每种选择的行动就是决策。即从该阶段的每个状态出发,通过一次选择性的行动移至下一个阶段的相应状态。 |
· 记一次SSD性能瓶颈排查之路——寿命与性能之间的取舍
· 2025 年实用、全面的 VS Code 插件推荐!
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(五):使用.NET为树莓派
· C#实现Stdio通信方式的MCP Server
· dify打造数据可视化图表