一、 基础概念与矩阵维度
已知某强化学习环境的奖励矩阵 RRR 和采用标准方法初始化的Q矩阵 Q0Q_0Q0 如下:
Q0=0000000000000000000000000R=−111−1−11−1−111001−1−11−1−111−1100−1−1−1−1−1 Q_0 = \begin{bmatrix} 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \end{bmatrix} \quad R = \begin{bmatrix} -1 & 1 & 1 & -1 & -1 \\ 1 & -1 & -1 & 1 & 100 \\ 1 & -1 & -1 & 1 & -1 \\ -1 & 1 & 1 & -1 & 100 \\ -1 & -1 & -1 & -1 & -1 \end{bmatrix} Q0= 0000000000000000000000000 R= −111−1−11−1−11−11−1−11−1−111−1−1−1100−1100−1

二、 Q值更新计算
计算参数与要求
- 学习率 α=0.5\alpha = 0.5α=0.5,折扣因子 γ=0.8\gamma = 0.8γ=0.8
Q(s,a)=R(s,a)+γ×maxa′Q(s′,a′)Q(s,a)←Q(s,a)+αR(s,a)+γmaxa′Q(s′,a′)−Q(s,a) \begin{aligned} Q(s, a) &= R(s, a) + \gamma \times \max_{a'} Q(s', a') \\0.3em Q(s,a) &\leftarrow Q(s,a) + \alpha \left R(s,a) + \\gamma \\max_{a'} Q(s',a') - Q(s,a) \\right \end{aligned} Q(s,a)Q(s,a)=R(s,a)+γ×a′maxQ(s′,a′)←Q(s,a)+αR(s,a)+γa′maxQ(s′,a′)−Q(s,a) - 仅针对 R(s,a)≠−1R(s,a) \neq -1R(s,a)=−1 的合法动作进行更新。
- 来计算的时候从数学角度讲第1个式子的max部分相当于是对行取最大值
参考答案与逐步可视化解析
一、 基础概念与矩阵维度
1. 矩阵维度
两个矩阵均为 5行5列 (5×55 \times 55×5)。行代表当前状态 sss,列代表动作 aaa(即尝试转移到目标状态)。
2. 初始化与符号含义
- Q0Q_0Q0 全零初始化:标准无偏初始化,表示智能体初始时对所有状态-动作对的价值一无所知,完全依赖环境反馈学习。
- RRR 中 −1-1−1 的含义 :表示该状态转移为非法/不可达,更新时跳过这些位置。
⚠️ 重要说明 :在整个更新过程中,奖励矩阵 RRR 始终保持不变 。RRR 是环境的固有属性,不会随学习过程改变。以下可视化仅展示 QQQ 矩阵的逐步演化。
二、 Q值逐步更新与矩阵可视化求中的
📋 更新前初始状态
Q=0000000000000000000000000R=−111−1−11−1−111001−1−11−1−111−1100−1−1−1−1−1 Q = \begin{bmatrix} 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \end{bmatrix} \quad R = \begin{bmatrix} -1 & 1 & 1 & -1 & -1 \\ 1 & -1 & -1 & 1 & 100 \\ 1 & -1 & -1 & 1 & -1 \\ -1 & 1 & 1 & -1 & 100 \\ -1 & -1 & -1 & -1 & -1 \end{bmatrix} Q= 0000000000000000000000000 R= −111−1−11−1−11−11−1−11−1−111−1−1−1100−1100−1
🔹 Step 1: 更新状态 1
初始状态是1

Q(s,a)=R(s,a)+γ×maxa′Q(s′,a′)Q(s,a)←Q(s,a)+αR(s,a)+γmaxa′Q(s′,a′)−Q(s,a) \begin{aligned} Q(s, a) &= R(s, a) + \gamma \times \max_{a'} Q(s', a') \\0.3em Q(s,a) &\leftarrow Q(s,a) + \alpha \left R(s,a) + \\gamma \\max_{a'} Q(s',a') - Q(s,a) \\right \end{aligned} Q(s,a)Q(s,a)=R(s,a)+γ×a′maxQ(s′,a′)←Q(s,a)+αR(s,a)+γa′maxQ(s′,a′)−Q(s,a)
合法动作:a=0,a=3,a=4a=0, a=3, a=4a=0,a=3,a=4
| 动作 | 计算过程 | 新Q值 |
|---|---|---|
| 1→01 \to 01→0 | 0+0.5×1+0.8×maxQ(0,:)−0=0.5×10 + 0.5 \times 1 + 0.8 \\times \\max Q(0,:) - 0 = 0.5 \times 10+0.5×1+0.8×maxQ(0,:)−0=0.5×1 | 0.5 |
| 1→31 \to 31→3 | 0+0.5×1+0.8×maxQ(3,:)−0=0.5×10 + 0.5 \times 1 + 0.8 \\times \\max Q(3,:) - 0 = 0.5 \times 10+0.5×1+0.8×maxQ(3,:)−0=0.5×1 | 0.5 |
| 1→41 \to 41→4 | 0+0.5×100+0.8×maxQ(4,:)−0=0.5×1000 + 0.5 \times 100 + 0.8 \\times \\max Q(4,:) - 0 = 0.5 \times 1000+0.5×100+0.8×maxQ(4,:)−0=0.5×100 | 50 |
📌 状态1更新完毕,maxQ(1,:)=50\max Q(1,:) = 50maxQ(1,:)=50

Step 1 后的 Q 矩阵:
Q=000000.5不可达不可达0.550000000000000000 Q = \begin{bmatrix} 0 & 0 & 0 & 0 & 0 \\ \mathbf{0.5} & 不可达& 不可达 & \mathbf{0.5} & \mathbf{50} \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \end{bmatrix} Q= 00.50000不可达0000不可达00000.5000050000
🔹 Step 2: 更新状态 2

合法动作:a=0,a=3a=0, a=3a=0,a=3
| 动作 | 计算过程 | 新Q值 |
|---|---|---|
| 2→02 \to 02→0 | 0+0.5×1+0.8×maxQ(0,:)−0=0.5×10 + 0.5 \times 1 + 0.8 \\times \\max Q(0,:) - 0 = 0.5 \times 10+0.5×1+0.8×maxQ(0,:)−0=0.5×1 | 0.5 |
| 2→32 \to 32→3 | 0+0.5×1+0.8×maxQ(3,:)−0=0.5×10 + 0.5 \times 1 + 0.8 \\times \\max Q(3,:) - 0 = 0.5 \times 10+0.5×1+0.8×maxQ(3,:)−0=0.5×1 | 0.5 |
📌 状态3尚未更新,maxQ(3,:)=0\max Q(3,:)=0maxQ(3,:)=0;状态2更新完毕,maxQ(2,:)=0.5\max Q(2,:)=0.5maxQ(2,:)=0.5
Step 2 后的 Q 矩阵:
Q=000000.5不可达不可达0.5500.5不可达不可达0.5000000播放来吃饭吧慢慢吃没事的时候过来我稍微吃吧那我以为是他来1顿饭可以做到的哇这可以啊哇这么多啊你看这个真不少你尝1个你先吃你尝1口第1次豆腐的味道这60块还吃不惯了还不如买肉吃去买的时候太累的话直接过了我自己也吃啊好甜这个芥末从阿姨家出来后我觉得我应该做点什么正好没有那种化妆我想1下拿1束花没事这不好意思这是深圳南山区人工最密度ThankyouThankyouThankyouThankyou00000 Q = \begin{bmatrix} 0 & 0 & 0 & 0 & 0 \\ 0.5 & 不可达 & 不可达 & 0.5 & 50 \\ \mathbf{0.5} & 不可达& 不可达& \mathbf{0.5} & 0 \\ 0 & 0 & 0 & 0 & 0 \\播放来吃饭吧慢慢吃没事的时候过来我稍微吃吧那我以为是他来1顿饭可以做到的哇这可以啊哇这么多啊你看这个真不少你尝1个你先吃你尝1口第1次豆腐的味道这60块还吃不惯了还不如买肉吃去买的时候太累的话直接过了我自己也吃啊好甜这个芥末从阿姨家出来后我觉得我应该做点什么正好没有那种化妆我想1下拿1束花没事这不好意思这是深圳南山区人工最密度Thank you Thank you Thank you Thank you 0 & 0 & 0 & 0 & 0 \end{bmatrix} Q= 00.50.50播放来吃饭吧慢慢吃没事的时候过来我稍微吃吧那我以为是他来1顿饭可以做到的哇这可以啊哇这么多啊你看这个真不少你尝1个你先吃你尝1口第1次豆腐的味道这60块还吃不惯了还不如买肉吃去买的时候太累的话直接过了我自己也吃啊好甜这个芥末从阿姨家出来后我觉得我应该做点什么正好没有那种化妆我想1下拿1束花没事这不好意思这是深圳南山区人工最密度ThankyouThankyouThankyouThankyou00不可达不可达000不可达不可达0000.50.500050000
🔹 Step 3: 更新状态 3 ⭐ 价值传播关键步

合法动作:a=1,a=2,a=4a=1, a=2, a=4a=1,a=2,a=4
| 动作 | 计算过程 | 新Q值 |
|---|---|---|
| 3→13 \to 13→1 | 0+0.5×1+0.8×50−0=0.5×410 + 0.5 \times 1 + 0.8 \\times \\mathbf{50} - 0 = 0.5 \times 410+0.5×1+0.8×50−0=0.5×41 | 20.5 |
| 3→23 \to 23→2 | 0+0.5×1+0.8×0.5−0=0.5×1.40 + 0.5 \times 1 + 0.8 \\times 0.5 - 0 = 0.5 \times 1.40+0.5×1+0.8×0.5−0=0.5×1.4 | 0.7 |
| 3→43 \to 43→4 | 0+0.5×100+0.8×0−0=0.5×1000 + 0.5 \times 100 + 0.8 \\times 0 - 0 = 0.5 \times 1000+0.5×100+0.8×0−0=0.5×100 | 50 |
📌 状态1已在Step 1更新,maxQ(1,:)=50\max Q(1,:)=50maxQ(1,:)=50 被吸收!状态3更新完毕,maxQ(3,:)=50\max Q(3,:)=50maxQ(3,:)=50
Step 3 后的 Q 矩阵:
Q=000000.5不可达不可达0.5500.5不可达不可达0.50不可达20.50.7不可达5000000 Q = \begin{bmatrix} 0 & 0 & 0 & 0 & 0 \\ 0.5 & 不可达 & 不可达 & 0.5 & 50 \\ 0.5 & 不可达 & 不可达 & 0.5 & 0 \\ 不可达 & \mathbf{20.5} & \mathbf{0.7} & 不可达 & \mathbf{50} \\ 0 & 0 & 0 & 0 & 0 \end{bmatrix} Q= 00.50.5不可达00不可达不可达20.500不可达不可达0.7000.50.5不可达00500500
##呢点数落市之我方正在占领地点a点已被敌方占领我刚正在这里c点播报1出攻占领地点我方确定获胜分数已经过半创造奇迹消灭了很多敌人继续打东方战赛占领了a点即将达成目标今天中午时间# 🔹 Step 4: 更新状态 4
所有 R(4,:)R(4,:)R(4,:) 均为 −1-1−1,无合法动作,跳过。Q矩阵不变。
🔹 Step 5: 更新状态 0 ⭐ 吸收已传播价值
合法动作:a=1,a=2a=1, a=2a=1,a=2
| 动作 | 计算过程 | 新Q值 |
|---|---|---|
| 0→10 \to 10→1 | 0+0.5×1+0.8×50−0=0.5×410 + 0.5 \times 1 + 0.8 \\times \\mathbf{50} - 0 = 0.5 \times 410+0.5×1+0.8×50−0=0.5×41 | 20.5 |
| 0→20 \to 20→2 | 0+0.5×1+0.8×0.5−0=0.5×1.40 + 0.5 \times 1 + 0.8 \\times 0.5 - 0 = 0.5 \times 1.40+0.5×1+0.8×0.5−0=0.5×1.4 | 0.7 |
📌 状态1的 max=50\max=50max=50、状态2的 max=0.5\max=0.5max=0.5 均已被吸收
Step 5 后的最终 Q₁ 矩阵:
| 状态 \ 动作 | a=0 | a=1 | a=2 | a=3 | a=4 |
|---|---|---|---|---|---|
| s=0 | 不可达 | 20.5 | 0.7 | 不可达 | 不可达 |
| s=1 | 0.5 | 不可达 | 不可达 | 0.5 | 50 |
| s=2 | 0.5 | 不可达 | 不可达 | 0.5 | 0 |
| s=3 | 不可达 | 20.5 | 0.7 | 不可达 | 50 |
| s=4 | 不可达 | 不可达 | 不可达 | 不可达 | 不可达 |