Skip to content

Commit 87d96c7

Browse files
committed
Update 01.Dynamic-Programming-Basic.md
1 parent c94b3a5 commit 87d96c7

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

Contents/10.Dynamic-Programming/01.Dynamic-Programming-Basic/01.Dynamic-Programming-Basic.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
2929
通过公式 $f(n) = f(n - 2) + f(n - 1)$,我们可以将原问题 $f(n)$ 递归地划分为 $f(n - 2)$ 和 $f(n - 1)$ 这两个子问题。其对应的递归过程如下图所示:
3030

31-
![](https://qcdn.itcharge.cn/images/20230307164107.png)
31+
![斐波那契数列的重复计算项](https://qcdn.itcharge.cn/images/20230307164107.png)
3232

3333
从图中可以看出:如果使用传统递归算法计算 $f(5)$,需要先计算 $f(3)$ 和 $f(4)$,而在计算 $f(4)$ 时还需要计算 $f(3)$,这样 $f(3)$ 就进行了多次计算。同理 $f(0)$、$f(1)$、$f(2)$ 都进行了多次计算,从而导致了重复计算问题。
3434

@@ -81,13 +81,13 @@ class Solution:
8181

8282
也就是说,如果原问题的最优解包含子问题的最优解,则说明该问题满足最优子结构性质。
8383

84-
![](https://qcdn.itcharge.cn/images/20220511175042.png)
84+
![最优子结构性质](https://qcdn.itcharge.cn/images/20240513163310.png)
8585

8686
### 2.2 重叠子问题性质
8787

8888
> **重叠子问题性质**:指的是在求解子问题的过程中,有大量的子问题是重复的,一个子问题在下一阶段的决策中可能会被多次用到。如果有大量重复的子问题,那么只需要对其求解一次,然后用表格将结果存储下来,以后使用时可以直接查询,不需要再次求解。
8989
90-
![](https://qcdn.itcharge.cn/images/20230307175804.png)
90+
![重叠子问题性质](https://qcdn.itcharge.cn/images/20230307164107.png)
9191

9292
之前我们提到的「斐波那契数列」例子中,$f(0)$、$f(1)$、$f(2)$、$f(3)$ 都进行了多次重复计算。动态规划算法利用了子问题重叠的性质,在第一次计算 $f(0)$、$f(1)$、$f(2)$、$f(3)$ 时就将其结果存入表格,当再次使用时可以直接查询,无需再次求解,从而提升效率。
9393

@@ -101,15 +101,15 @@ class Solution:
101101

102102
而如果一个问题具有「后效性」,则可能需要先将其转化或者逆向求解来消除后效性,然后才可以使用动态规划算法。
103103

104-
![](https://qcdn.itcharge.cn/images/202303072158573.png)
104+
![无后效性](https://qcdn.itcharge.cn/images/20240514110127.png)
105105

106106
## 3. 动态规划的基本思路
107107

108108
如下图所示,我们在使用动态规划方法解决某些最优化问题时,可以将解决问题的过程按照一定顺序(时间顺序、空间顺序或其他顺序)分解为若干个相互联系的「阶段」。然后按照顺序对每一个阶段做出「决策」,这个决策既决定了本阶段的效益,也决定了下一阶段的初始状态。依次做完每个阶段的决策之后,就得到了一个整个问题的决策序列。
109109

110110
这样就将一个原问题分解为了一系列的子问题,再通过逐步求解从而获得最终结果。
111111

112-
![](https://qcdn.itcharge.cn/images/20220720180135.png)
112+
![动态规划方法](https://qcdn.itcharge.cn/images/20240514110154.png)
113113

114114
这种前后关联、具有链状结构的多阶段进行决策的问题也叫做「多阶段决策问题」。
115115

0 commit comments

Comments
 (0)