# 算法对照表

> 来源：https://dqn.cn/code/algorithm-comparison ｜ 作者：DQN.CN 编辑部 ｜ 发布：2026-10-31 ｜ 更新：2026-10-31 ｜ 许可：CC BY-NC-SA 4.0（文字）/ MIT（代码）

本页汇总常见强化学习算法的关键属性，帮助你根据任务特点快速选型。一般来说：离散动作、可以大量采样时可以考虑 DQN 系列或 PPO；连续控制且更看重样本效率时优先考虑 SAC 或 TD3；只有固定数据集时考虑离线 RL 方法。表中的“适用场景”是经验性建议，实际效果还取决于实现细节和调参。

## 对照表

| 算法 | 类型 | 同策略 / 异策略 | 动作空间 | 典型适用场景 |
| --- | --- | --- | --- | --- |
| [ε-贪心 / UCB / 汤普森采样](https://dqn.cn/basics/bandit) | 老虎机算法 | — | 离散 | 推荐、广告、A/B 测试等单步决策 |
| [Q-learning](https://dqn.cn/basics/q-learning-sarsa) | 基于价值（表格） | 异策略 | 离散 | 小规模离散状态问题、教学 |
| [SARSA / n 步 SARSA](https://dqn.cn/basics/q-learning-sarsa) | 基于价值（表格） | 同策略 | 离散 | 需要考虑探索风险的小规模问题 |
| [DQN](https://dqn.cn/advanced/dqn) | 基于价值 | 异策略 | 离散 | Atari 等图像输入、离散动作任务 |
| [Double / Dueling DQN、Rainbow](https://dqn.cn/advanced/dqn-improvements) | 基于价值 | 异策略 | 离散 | 需要更高性能与稳定性的离散任务 |
| [REINFORCE](https://dqn.cn/advanced/reinforce) | 策略梯度 | 同策略 | 离散 / 连续 | 教学、简单任务 |
| [A2C / A3C](https://dqn.cn/advanced/actor-critic) | Actor-Critic | 同策略 | 离散 / 连续 | 可并行采样的环境 |
| [TRPO](https://dqn.cn/advanced/trpo) | 策略梯度（信赖域） | 同策略 | 离散 / 连续 | 需要稳定单调提升的研究场景 |
| [PPO](https://dqn.cn/advanced/ppo) | 策略梯度（裁剪） | 同策略 | 离散 / 连续 | 通用首选基线、游戏、机器人、RLHF |
| [DDPG](https://dqn.cn/advanced/ddpg) | Actor-Critic（确定性） | 异策略 | 连续 | 连续控制（对超参数敏感） |
| [TD3](https://dqn.cn/advanced/td3) | Actor-Critic（确定性） | 异策略 | 连续 | 连续控制、机器人仿真 |
| [SAC](https://dqn.cn/advanced/sac) | Actor-Critic（最大熵） | 异策略 | 连续（也有离散变体） | 连续控制首选、样本效率要求高 |
| [DDPG / SAC + HER](https://dqn.cn/advanced/goal-conditioned) | 目标导向 RL | 异策略 | 连续（也可离散） | 多目标、稀疏奖励的到达类任务 |
| [MPC：随机打靶 / CEM / PETS](https://dqn.cn/advanced/mpc) | 基于模型（在线规划） | —（不学策略） | 连续 | 低维控制、交互极其昂贵、允许较高决策延迟 |
| [MBPO](https://dqn.cn/advanced/mbpo) | 基于模型 + SAC | 异策略 | 连续 | 追求样本效率的连续控制 |
| [IPPO / MAPPO](https://dqn.cn/advanced/multi-agent) | 多智能体策略梯度 | 同策略 | 离散 / 连续 | 合作型多智能体任务（参数共享） |
| [GAIL](https://dqn.cn/advanced/imitation-learning) | 对抗模仿学习 | 同策略（配 PPO/TRPO） | 离散 / 连续 | 有示范、无奖励，且可以与环境交互 |
| [CQL / IQL](https://dqn.cn/advanced/offline-rl) | 离线 RL | 离线 | 离散 / 连续 | 只有固定数据集、无法在线交互 |
| [DPO](https://dqn.cn/advanced/rlhf-llm) | 偏好优化 | 离线（偏好数据） | 离散（token 序列） | 大模型偏好对齐 |
| [GRPO](https://dqn.cn/advanced/rlhf-llm) | 策略梯度（组相对优势） | 同策略 | 离散（token 序列） | 大模型推理能力训练（可验证奖励） |

## 选型建议

```mermaid
%%{init: {"flowchart": {"rankSpacing": 32, "nodeSpacing": 16}}}%%
flowchart LR
  A([能否与环境交互?]) -- 不能 --> B([数据来自专家<br/>且没有奖励?])
  B -- 是 --> BC[行为克隆 / 模仿学习]
  B -- 否 --> OFF[离线 RL<br/>CQL / IQL / TD3+BC]
  A -- 能 --> C([动作空间?])
  C -- 离散 --> D([采样便宜、<br/>可并行?])
  D -- 是 --> PPO1[PPO]
  D -- 否 --> DQN[DQN / Rainbow<br/>看重样本效率]
  C -- 连续 --> E([更看重样本效率<br/>还是并行规模?])
  E -- 样本效率 --> SAC[SAC / TD3<br/>样本效率高、较稳定]
  E -- 并行规模 --> PPO2[PPO<br/>大规模并行仿真]
```

一些经验法则：

- **不知道选什么时先试 PPO**：它对离散和连续动作都适用，实现成熟，超参数相对稳健，是最常见的基线。
- **连续控制且交互昂贵**：优先 SAC（自动调温，对超参数不敏感）或 TD3。
- **离散动作、需要复用历史数据**：DQN 系列（建议至少使用 Double DQN）。
- **大规模并行仿真**（如 Isaac Gym 上的机器人训练）：同策略的 PPO 能充分利用海量并行数据。
- **只有离线数据**：先跑 BC 基线，再试 CQL、IQL、TD3+BC。
- **大模型对齐**：有偏好数据用 DPO；有可验证奖励（数学、代码）用 GRPO 等在线 RL；需要通用奖励模型时用 RLHF + PPO。
- **有可用的环境模型或交互极其昂贵**：考虑基于模型的方法（低维任务可直接用 [MPC](https://dqn.cn/advanced/mpc)；否则 [MBPO](https://dqn.cn/advanced/mbpo)、Dreamer）。
- **多目标、只有“成功 / 失败”奖励**：异策略算法 + [HER](https://dqn.cn/advanced/goal-conditioned)。
- **只有单步决策（没有状态转移）**：用 [老虎机算法](https://dqn.cn/basics/bandit)，汤普森采样通常是很强的默认选择。

## 本站实测结果汇总

下表汇总本站代码在小环境上的实测结果（单线程 CPU、短训练预算，多数为单个种子）。这些结果**只用于说明代码能正常学习，不能用于比较算法优劣**——严肃的基准对比需要多种子、更长训练和更难的任务。论文中的大规模基准对比请参考各算法原论文，以及 Stable-Baselines3 的 RL Zoo、CleanRL 的 Open RL Benchmark 等公开结果。

| 算法 | 环境 | 训练预算 | 评估结果 |
| --- | --- | --- | --- |
| [Q-learning](https://dqn.cn/basics/q-learning-sarsa) | CliffWalking-v1 | 500 回合 | 贪心路线 −13（最优） |
| [SARSA](https://dqn.cn/basics/q-learning-sarsa) | CliffWalking-v1 | 500 回合 | 贪心路线 −15.4（安全路线） |
| [DQN](https://dqn.cn/advanced/dqn) | CartPole-v1 | 5 万步 | 500 / 470.9 / 500（3 个种子） |
| [REINFORCE](https://dqn.cn/advanced/reinforce) | CartPole-v1 | 1000 回合 | 训练回报约 470–484（随机策略）；argmax 评估 289 |
| [A2C](https://dqn.cn/advanced/actor-critic) | CartPole-v1 | 20 万步 | 500（训练中有明显波动） |
| [TRPO](https://dqn.cn/advanced/trpo) | CartPole-v1 | 约 10 万步 | 500 |
| [PPO](https://dqn.cn/advanced/ppo) | CartPole-v1 | 20 万步 | 500（2 个种子） |
| [DDPG](https://dqn.cn/advanced/ddpg) | Pendulum-v1 | 2 万步 | −168.0 |
| [TD3](https://dqn.cn/advanced/td3) | Pendulum-v1 | 2 万步 | −169.1 |
| [SAC](https://dqn.cn/advanced/sac) | Pendulum-v1 | 2 万步 | −166.3 |
| [汤普森采样 / UCB1 / ε=0.1](https://dqn.cn/basics/bandit) | 10 臂伯努利老虎机 | 5000 步 × 200 次 | 累积懊悔 40.3 / 276.4 / 240.6 |
| [n 步 SARSA（n=3）](https://dqn.cn/basics/q-learning-sarsa) | CliffWalking-v1 | 500 回合 × 10 种子 | 前 50 回合平均 −139.3（n=1 为 −209.2） |
| [PPO（连续动作）](https://dqn.cn/advanced/ppo) | Pendulum-v1 | 约 20 万步 | −206.3 / −202.8 / −226.6（3 个种子） |
| [离散 SAC](https://dqn.cn/advanced/sac) | CartPole-v1 | 4 万步 | 500 / 500 / 384.7（3 个种子） |
| [DDPG + HER](https://dqn.cn/advanced/goal-conditioned) | 自建二维到达任务 | 100 回合 | 成功率 1.00（3 个种子；不加 HER 为 0.02–0.04） |
| [CEM / PETS（MPC）](https://dqn.cn/advanced/mpc) | Pendulum-v1 | 2000 个真实步 | 第 3–10 回合平均 −170.3 / −196.7（随机打靶 −278.6） |
| [MBPO](https://dqn.cn/advanced/mbpo) | Pendulum-v1 | 2000 个真实步 | 约 −100（SAC 约 −1300；同更新比 SAC 约 −98） |
| [IPPO / MAPPO](https://dqn.cn/advanced/multi-agent) | MPE simple_spread | 80 万步 | 平均回合回报约 −16.4 / −16.5（随机 −27.0） |
| [GAIL](https://dqn.cn/advanced/imitation-learning) | CartPole-v1，25 对示范 | 约 20 万步 | 500 / 500 / 500（奖励 −log(1−D)；换成 logit 奖励仅 9.2 / 37.7 / 9.2） |

完整的代码与说明见 [代码实战](https://dqn.cn/code/)。
