# Q-learning 与 SARSA：悬崖行走在线训练

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

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

## 环境与算法

4×12 的网格，起点 S 在左下角，终点 G 在右下角，两者之间的底行是悬崖。每步奖励 $-1$；走进悬崖得到 $-100$ 并被送回起点。两个智能体都用 ε-贪心采集数据，区别只在 TD 目标：

$$
\text{SARSA:}\ \ R + \gamma Q(S', A') \qquad\qquad \text{Q-learning:}\ \ R + \gamma \max_{a'} Q(S', a')
$$

SARSA 的 $A'$ 是**真正会执行的、带探索的**下一个动作，所以它评估的是“ε-贪心策略”本身的价值，自然会远离悬崖；Q-learning 评估的是贪心策略，所以它学到最短路线，但训练时沿着悬崖探索经常掉下去。

## 可以试试

- 默认 ε = 0.1：几百回合后，Q-learning 的路线紧贴悬崖（13 步），SARSA 的路线绕到上方（通常 15–17 步）；而训练中的平均回报 SARSA 反而更高。
- 把 ε 调成 0.01 或 0：探索几乎消失，SARSA 也会逐渐学到贴着悬崖的最短路线。
- 选“慢速”看智能体一步步移动，并观察价值热力图如何从终点向起点“传播”。
- 把 α 调到 1：在这个确定性环境里 Q-learning 仍然能学好，而 SARSA 的估计会因为探索动作的随机性剧烈波动。

## 相关教程

- [Q-learning 与 SARSA](https://dqn.cn/basics/q-learning-sarsa)
- [时序差分学习](https://dqn.cn/basics/td-learning)
- [全部交互工具](https://dqn.cn/tools/)
