# Dyna-Q 迷宫演示：规划步数 n 如何加速学习

> 来源：https://dqn.cn/tools/dyna-q ｜ 作者：DQN.CN 编辑部 ｜ 发布：2026-11-01 ｜ 更新：2026-11-01 ｜ 许可：CC BY-NC-SA 4.0（文字）/ MIT（代码）

> （此处为交互工具，请在网页中使用：https://dqn.cn/tools/dyna-q）

## 算法

Dyna-Q 在每个真实时间步做三件事：

1. **直接强化学习**：用真实转移 $(s,a,r,s')$ 做一次 Q-learning 更新；
2. **模型学习**：记住 $\text{Model}(s,a) \leftarrow (r, s')$（确定性环境下，查表即可）；
3. **规划**：重复 $n$ 次——从已见过的 $(s,a)$ 中随机选一个，查模型得到 $(r,s')$，再做一次 Q-learning 更新。

规划更新和真实更新用的是同一个公式，区别只在于数据来自模型而不是环境。$n = 0$ 时就是普通的 Q-learning。

## 可以试试

- 点“跑 1 回合”两次，比较两边的箭头：第 2 回合结束时，Q-learning 只有终点附近一两个格子有方向，Dyna-Q 已经从终点“倒推”出了大半张地图的路线。
- “计算 20 次实验平均”复现教材图 8.2：n = 50 时大约第 3 回合就接近最短路径（14 步），Q-learning 要几十个回合。
- 规划不是免费的：n = 50 意味着每个真实步要做 51 次更新。当真实交互昂贵（机器人、在线系统）而计算便宜时，这笔交易很划算。

## 相关教程

- [基于模型的强化学习](https://dqn.cn/advanced/model-based)
- [Q-learning](https://dqn.cn/basics/q-learning-sarsa)
- [全部交互工具](https://dqn.cn/tools/)
