Appearance
规划、决策与强化学习
基本原理
AIMA 将行动问题分成规划和决策两条线。规划处理“如果世界按模型变化,怎样找到一串行动达到目标”;决策处理“不确定环境下,怎样选择期望效用最高的行动”。强化学习进一步处理“模型未知,但可以通过试错学习策略”。
现代 Agent 的任务分解、工具调用和工作流编排仍然继承这些思想:先定义状态、动作、目标或效用,再根据反馈调整下一步。
解决的问题
规划、决策和强化学习解决的是“智能体不仅要回答,还要行动”的问题。规划关注行动序列是否能达成目标,决策关注不确定结果下的期望收益,强化学习关注没有完整模型时如何从反馈中学到策略。
应用场景
典型应用包括机器人移动和抓取、自动实验流程编排、数据分析 Agent 的步骤规划、设备控制策略、库存和调度决策、游戏策略、无人系统导航,以及多 Agent 工作流中的任务分配和重规划。
规划
规划解决的是“目标明确但行动步骤不明确”的问题。例如机器人从仓库取货、实验流程自动化、数据分析 Agent 先清洗再建模再生成报告。
| 元素 | 含义 | 示例 |
|---|---|---|
| State | 当前世界状态 | at(robot, lab) |
| Action | 可执行动作 | move(lab, storage) |
| Preconditions | 动作前提 | 机器人有电、路径可通行 |
| Effects | 动作效果 | 位置改变、物品被拿起 |
| Goal | 目标状态 | 样品送到检测台 |
MDP 与 POMDP
MDP(Markov Decision Process)用状态、动作、转移概率、奖励和折扣因子描述决策问题。POMDP 在 MDP 上增加部分可观察性:智能体不能直接看到真实状态,只能根据观测维护信念状态。
最小代码示例
Value Iteration
python
states = ["low", "high"]
actions = ["rest", "work"]
reward = {("low", "rest"): 1, ("low", "work"): -2, ("high", "rest"): 0, ("high", "work"): 3}
transition = {
("low", "rest"): {"high": 0.7, "low": 0.3},
("low", "work"): {"low": 1.0},
("high", "rest"): {"high": 0.9, "low": 0.1},
("high", "work"): {"high": 0.6, "low": 0.4},
}
V = {s: 0 for s in states}
gamma = 0.9
for _ in range(20):
V = {
s: max(
reward[(s, a)] + gamma * sum(p * V[s2] for s2, p in transition[(s, a)].items())
for a in actions
)
for s in states
}
print(V)这是价值迭代的最小示例,用于估计每个状态的长期价值。
强化学习
强化学习解决“没有完整环境模型,但可以通过交互获得奖励”的问题。Q-learning 学习状态-动作价值,逐步逼近更优策略。
Q-learning
python
from collections import defaultdict
Q = defaultdict(float)
alpha, gamma = 0.2, 0.9
def update_q(state, action, reward, next_state, next_actions):
best_next = max(Q[(next_state, a)] for a in next_actions)
Q[(state, action)] += alpha * (reward + gamma * best_next - Q[(state, action)])
update_q("s0", "move", 1, "s1", ["left", "right"])
print(Q[("s0", "move")])Python 入口
| 库/仓库 | 用途 |
|---|---|
aima-python | AIMA 规划、决策和强化学习参考代码 |
numpy | MDP、价值迭代、概率计算 |
gymnasium | 强化学习环境 |
stable-baselines3 | 强化学习算法工程入口 |
networkx | 状态图和规划图示意 |
