Dyna 架构(Dyna-Q)是模型学习与无模型学习的混合范式:每次真实交互后,先用真实经验更新 Q,再把学到的世界模型当"免费环境"生成
n 次想象 rollout,与真实经验混合同步做 Q-learning 更新。伪代码要点:
```
while True:
a ← ε-greedy(s) # 真实经验: 策略选动作
r, s' ← env(s, a) # 环境交互
Q(s,a) ← Q(s,a) + α[r + γ·max_a' Q(s',a') − Q(s,a)] # 真实更新
model(s,a) ← (r, s') # 更新世界模型
repeat n 次: # 想象 rollout 混合
s̃ ← 随机已访问状态; ã ← 随机动作
(r̃, s̃') ← model(s̃, ã) # 用模型模拟
Q(s̃,ã) ← Q(s̃,ã) + α[r̃ + γ·max Q(s̃',·) − Q(s̃,ã)] # 想象更新
```
其中真实更新与想象更新使用完全相同的 Q-learning 规则,模型只负责扩充经验来源。