← 上级:RL-05.专属数据结构 · 实现:RL-04-03-表格型算法实现
Q-Table 存储 $Q(s,a)$,形状 $|S| \times |A|$。见 RL-03-02-算法-Q-Learning。
一、稠密表
1 | import numpy as np |
空间:$|S| \times |A| \times 4$ bytes(float32)。
二、稀疏表
状态空间大但访问少时:
1 | from collections import defaultdict |
或用 dict[(s,a)] -> float(更新需遍历同 s 的 a)。
三、初始化策略
| 策略 | 效果 |
|---|---|
| 全零 | 默认 |
| 乐观初值 | 全设大正数,促探索 |
| 随机小噪声 | 打破对称 |
四、状态索引
| 来源 | 处理 |
|---|---|
Discrete(n) |
直接用 obs 整数 |
| 连续 Box | 分箱 np.digitize 或 tile coding |
| 图像 | 一般不建表 → DQN |
五、可视化
1 | import matplotlib.pyplot as plt |
策略箭头见 RL-04-03-表格型算法实现。
六、小结
- 小离散 MDP:NumPy 二维 Q 表最简单。
- 下一篇:Replay Buffer