本笔记摘自知乎博主旺财的搬砖历险记和叶强,仅用于自学
“The future is independent of the past given the present”
当且仅当 t t t时刻的状态 S t S_t St满足 P [ S t + 1 ∣ S t ] = P [ S t + 1 ∣ S 1 , S 2 , … , S t ] \mathbb{P}[S_{t+1}\vert S_t]=\mathbb{P}[S_{t+1}\vert S_1,S_2,\ldots, S_t] P[St+1∣St]=P[St+1∣S1,S2,…,St]时,这个状态才称为马尔科夫状态,即该状态满足马尔科夫性
P = [ P 11 … P 1 n ⋮ ⋮ P n 1 … P n n ] \mathcal{P}=\begin{bmatrix} P_{11} & \dots & P_{1n}\\ \vdots & & \vdots\\ P_{n1} &\dots & P_{nn} \end{bmatrix} P=⎣⎢⎡P11⋮Pn1……P1n⋮Pnn⎦⎥⎤
在RL中,从初始状态 S 1 S_1 S1到终止状态 S T S_T ST的一个序列过程被称为一个episode: S 1 , S 2 , … , S T S_1,S_2,\ldots,S_T S1,S2,…,ST
又叫马尔科夫链(Markov Chain),是一个无记忆的随机过程,可以用一个元组 ⟨ S , P ⟩ \langle{\mathcal{S}},{\mathcal{P}}\rangle ⟨S,P⟩表示。
⭐ S \mathcal{S} S是有限数量的状态集合
⭐ P \mathcal{P} P是状态转移矩阵 P S S ′ = P [ S t + 1 = s ′ ∣ S t = s ] \mathcal{P}_{SS^{\prime}}=\mathbb{P}[S_{t+1}=s^{\prime}\vert S_t=s] PSS′=P[St+1=s′∣St=s]
马尔科夫链其实是状态空间为可数集的马尔科夫过程。
注意:
一个 n n n阶马尔科夫过程是状态间的转移仅依赖于前n个状态的过程。
马尔科夫奖励过程是带有values的马尔科夫链
马尔科夫奖励过程是是一个元组 ⟨ S , P , R , γ ⟩ \langle{\mathcal{S}},\mathcal{P}, {\mathcal{R}},{\mathcal{\gamma}}\rangle ⟨S,P,R,γ⟩
⭐ S \mathcal{S} S是有限状态集合
⭐ P \mathcal{P} P是状态转移矩阵 P S S ′ = P [ S t + 1 = s ′ ∣ S t = s ] \mathcal{P}_{SS^{\prime}}=\mathbb{P}[S_{t+1}=s^{\prime}\vert S_t=s] PSS′=P[St+1=s′∣St=s]
⭐ R \mathcal{R} R是奖励函数, R s = E [ R t + 1 ∣ S t = s ] \mathcal{R}_s=\mathbb{E}[R_{t+1}\vert S_t=s] Rs=E[Rt+1∣St=s],描述了在状态 s s s的标量奖励( R t + 1 R_{t+1} Rt+1是具体的奖励值, R s \mathcal{R}_s Rs是函数)
⭐ γ \gamma γ是折扣因子/衰减系数
回报 G t G_t Gt是从时刻 t t t开始所有的折扣奖励:
连续性任务: G t = R t + 1 + γ R t + 2 + … = ∑ k = 0 ∞ γ k R t + k + 1 G_t=R_{t+1}+\gamma R_{t+2}+\ldots=\sum_{k=0}^\infty\gamma ^kR_{t+k+1} Gt=Rt+1+γRt+2+…=∑k=0∞γkRt+k+1
片段性任务: G t = R t + 1 + γ R t + 2 + … + γ T − t − 1 R T = ∑ k = 0 T − t − 1 γ k R t + k + 1 G_t=R_{t+1}+\gamma R_{t+2}+\ldots+\gamma^{T-t-1}R_T=\sum_{k=0}^{T-t-1}\gamma ^kR_{t+k+1} Gt=Rt+1+γRt+2+…+γT−t−1RT=∑k=0T−t−1γkRt+k+1
⭐ γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ∈[0,1],代表未来回报对于现在的价值
⭐奖励 R R R在第 k + 1 k+1 k+1步后为 γ k R \gamma^kR γkR
⭐即时奖励高于延迟奖励。 γ \gamma γ趋于0表示更青睐眼前利益, γ \gamma γ趋于1表示更有远见
✅如果将终止状态的自身转移概率为1、奖励为0,则连续性任务也可以表示成 G t = ∑ k = 0 T − t − 1 γ k R t + k + 1 G_t=\sum_{k=0}^{T-t-1}\gamma ^kR_{t+k+1} Gt=∑k=0T−t−1γkRt+k+1
注意:奖励是针对状态的,回报是针对片段的
大部分马尔科夫奖励和决策过程都是折扣的:
值函数 v ( s ) v(s) v(s)给出了状态 s s s的长期回报。
状态价值函数 v ( s ) v(s) v(s)是从状态 s s s开始的期望回报: v ( s ) = E [ G t ∣ S t = s ] v(s)=\mathbb{E}[G_t\vert S_t=s] v(s)=E[Gt∣St=s]
价值函数可以被分解为两部分: v ( s ) = E [ R t + 1 + γ v ( S t + 1 ) ∣ S t = s ] v(s)=\mathbb{E}[R_{t+1}+\gamma v(S_{t+1})\vert S_t=s] v(s)=E[Rt+1+γv(St+1)∣St=s]
则贝尔曼方程: v ( s ) = R s + γ ∑ s ′ ∈ S P S S ′ v ( s ′ ) v(s)=R_s+\gamma \sum_{s^{\prime}\in \mathcal{S}}\mathcal{P}_{SS^{\prime}}v(s^{\prime}) v(s)=Rs+γs′∈S∑PSS′v(s′)
证明: v ( s ) = E [ R t + 1 + γ v ( S t + 1 ) ∣ S t = s ] = E [ R t + 1 ∣ S t = s ] + E [ γ v ( S t + 1 ) ∣ S t = s ] = R s + γ ∑ s ′ ∈ S P S S ′ v ( s ′ ) v(s) = \mathbb{E}[R_{t+1}+\gamma v(S_{t+1})\vert S_t=s] = \mathbb{E}[R_{t+1}\vert S_t=s] + \mathbb{E}[\gamma v(S_{t+1})\vert S_t=s] = R_s+\gamma \sum_{s^{\prime}\in \mathcal{S}}\mathcal{P}_{SS^{\prime}}v(s^{\prime}) v(s)=E[Rt+1+γv(St+1)∣St=s]=E[Rt+1∣St=s]+E[γv(St+1)∣St=s]=Rs+γs′∈S∑PSS′v(s′)
注意:
对于大范围的MRPs,有许多迭代理论来计算状态价值函数,如动态规划、蒙特卡洛估计、时间差分学习
数学期望:
离散型的随机变量 X X X有概率函数 P ( X = x k ) = P k ( k = 1 , 2 , … ) P(X=x_k)=P_k(k=1,2,\ldots) P(X=xk)=Pk(k=1,2,…),若级数 ∑ k = 1 ∞ x k p k \sum_{k=1}^\infty x_kp_k ∑k=1∞xkpk绝对收敛,则称这个级数为 X X X的数学期望
贝尔曼方程可以写成如下的矩阵形式: v = R + γ P v v=\mathcal{R}+\gamma \mathcal{P}v v=R+γPv
其中, v v v是一个列向量,每个状态只有一个分量。
假设状态集合 S = { s 1 , s 2 , … , s n } \mathcal{S}=\{s_1,s_2,\ldots,s_n\} S={s1,s2,…,sn},则贝尔曼方程可以展开写成:
贝尔曼方程本质是一个线性方程,可以直接解: ( 1 − γ P ) v = R , v = ( 1 − γ P ) − 1 R (1-\gamma \mathcal{P})v =\mathcal{R},v= (1-\gamma \mathcal{P})^{-1}\mathcal{R} (1−γP)v=R,v=(1−γP)−1R
注意:
马尔可夫决策过程是带有决策的马尔科夫奖励过程
马尔科夫决策过程是是一个元组 ⟨ S , A , P , R , γ ⟩ \langle{\mathcal{S}},\mathcal{A}, \mathcal{P}, {\mathcal{R}},{\mathcal{\gamma}}\rangle ⟨S,A,P,R,γ⟩
⭐ S \mathcal{S} S是有限状态集合
⭐ A \mathcal{A} A是有限动作集合
⭐ P \mathcal{P} P是状态转移矩阵, P S S ′ a = P [ S t + 1 = s ′ ∣ S t = s , A t = a ] \mathcal{P}_{SS^{\prime}}^a=\mathbb{P}[S_{t+1}=s^{\prime}\vert S_t=s,A_t=a] PSS′a=P[St+1=s′∣St=s,At=a]
⭐ R \mathcal{R} R是奖励函数, R s a = E [ R t + 1 ∣ S t = s , A t = a ] \mathcal{R}_s^a=\mathbb{E}[R_{t+1}\vert S_t=s,A_t=a] Rsa=E[Rt+1∣St=s,At=a],描述了在状态 s s s的标量奖励( R t + 1 R_{t+1} Rt+1是具体的奖励值, R s \mathcal{R}_s Rs是函数)
⭐ γ \gamma γ是折扣因子/衰减系数
注意:
这里的 P \mathcal{P} P和 R \mathcal{R} R和具体的行为 a a a对应,而马尔科夫奖励过程的 P \mathcal{P} P和 R \mathcal{R} R只与状态有关
策略 π \pi π是给定状态的行为概率分布: π ( a ∣ s ) = P [ A t = a ∣ S t = s ] \pi(a\vert s)=\mathbb{P}[A_t=a\vert S_t=s] π(a∣s)=P[At=a∣St=s]
one-hot:
一个向量里,只有一个元素为1,其余均为0
给定一个MDP M = ⟨ S , A , P , R , γ ⟩ \mathcal{M}=\langle{\mathcal{S}},\mathcal{A}, \mathcal{P}, {\mathcal{R}},{\mathcal{\gamma}}\rangle M=⟨S,A,P,R,γ⟩和一个策略 π \pi π,那么:
状态价值函数 v π ( s ) v_\pi(s) vπ(s)是MDP下基于策略 π \pi π从状态 s s s获得的期望回报,衡量agent在状态 s s s时的价值大小 v π ( s ) = E [ G t ∣ S t = s ] v_\pi(s)=\mathbb{E}[G_t\vert S_t=s] vπ(s)=E[Gt∣St=s]
动作价值函数 q π ( s , a ) q_\pi(s,a) qπ(s,a)是MDP下基于策略 π \pi π选择动作 a a a后,从状态 s s s获得的期望回报,衡量状态 s s s时执行动作 a a a的价值大小 q π ( s , a ) = E [ G t ∣ S t = s , A t = a ] q_\pi(s,a)=\mathbb{E}[G_t\vert S_t=s,A_t=a] qπ(s,a)=E[Gt∣St=s,At=a]
注意:
状态-价值函数可以继续分解为即时奖励➕后续状态的折扣价值: v π ( s ) = E [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s ] v_\pi(s)=\mathbb{E}[R_{t+1}+\gamma v_\pi(S_{t+1})\vert S_t=s] vπ(s)=E[Rt+1+γvπ(St+1)∣St=s]
行为-价值函数也可以同样分解: q π ( s , a ) = E [ R t + 1 + γ q π ( S t + 1 , A t + 1 ) ∣ S t = s , A t = a ] q_\pi(s,a)=\mathbb{E}[R_{t+1}+\gamma q_\pi(S_{t+1},A_{t+1})\vert S_t=s,A_t=a] qπ(s,a)=E[Rt+1+γqπ(St+1,At+1)∣St=s,At=a]
在遵循策略 π \pi π时,状态 s s s的价值体现为在该状态下采取可能行为的价值与发生概率的求和: v π ( s ) = ∑ a ∈ A π ( a ∣ s ) q π ( s , a ) v_\pi(s)=\sum_{a\in\mathcal{A}}\pi(a\vert s)q_\pi(s,a) vπ(s)=a∈A∑π(a∣s)qπ(s,a)
类似的,行为-价值函数也可以分成离开这个状态的价值➕所有进入新的状态的价值与其转移概率成绩的和,表示成:
q π ( s , a ) = R s a + γ ∑ s ′ ∈ S P S S ′ a v π ( s ′ ) q_\pi(s,a)=\mathcal{R}_s^a+\gamma \sum_{s^{\prime}\in S}\mathcal{P}_{SS^{\prime}}^av_\pi(s^{\prime}) qπ(s,a)=Rsa+γs′∈S∑PSS′avπ(s′)
组合起来可以得到: v π ( s ) = ∑ a ∈ A π ( a ∣ s ) q π ( s , a ) = ∑ a ∈ A π ( a ∣ s ) ( R s a + γ ∑ s ∈ S ′ P S S ′ a v π ( s ′ ) ) v_\pi(s)=\sum_{a\in\mathcal{A}}\pi(a\vert s)q_\pi(s,a)=\sum_{a\in\mathcal{A}}\pi(a\vert s)(\mathcal{R}_s^a+\gamma \sum_{s\in S^{\prime}}\mathcal{P}_{SS^{\prime}}^av_\pi(s^{\prime})) vπ(s)=a∈A∑π(a∣s)qπ(s,a)=a∈A∑π(a∣s)(Rsa+γs∈S′∑PSS′avπ(s′))
本质上等价于 v π ( s ) = E [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s ] v_\pi(s)=\mathbb{E}[R_{t+1}+\gamma v_\pi(S_{t+1})\vert S_t=s] vπ(s)=E[Rt+1+γvπ(St+1)∣St=s]
将 v π ( s ′ ) v_\pi(s^{\prime}) vπ(s′)继续拆开:
q π ( s , a ) = R s a + γ ∑ s ∈ S ′ P S S ′ a v π ( s ′ ) = R s a + γ ∑ s ∈ S ′ P S S ′ a ∑ a ′ ∈ A π ( a ′ ∣ s ′ ) q π ( s ′ , a ′ ) q_\pi(s,a)=\mathcal{R}_s^a+\gamma \sum_{s\in S^{\prime}}\mathcal{P}_{SS^{\prime}}^av_\pi(s^{\prime})=\mathcal{R}_s^a+\gamma \sum_{s\in S^{\prime}}\mathcal{P}_{SS^{\prime}}^a\sum_ {a^{\prime}\in\mathcal{A}}\pi(a^{\prime}\vert s^{\prime})q_\pi(s^{\prime},a^{\prime}) qπ(s,a)=Rsa+γs∈S′∑PSS′avπ(s′)=Rsa+γs∈S′∑PSS′aa′∈A∑π(a′∣s′)qπ(s′,a′)
本质上等价于 q π ( s , a ) = E [ R t + 1 + γ q π ( S t + 1 , A t + 1 ) ∣ S t = s , A t = a ] q_\pi(s,a)=\mathbb{E}[R_{t+1}+\gamma q_\pi(S_{t+1},A_{t+1})\vert S_t=s,A_t=a] qπ(s,a)=E[Rt+1+γqπ(St+1,At+1)∣St=s,At=a]
Bellman期望方程可以用MRP简明地表示
v π = R π + γ P π v π v_\pi=\mathcal{R}^{\pi}+\gamma \mathcal{P^{\pi}}v_\pi vπ=Rπ+γPπvπ
则解得 v π = ( 1 − γ P π ) − 1 R π v_\pi=(1-\gamma \mathcal{P^{\pi}})^{-1}\mathcal{R}^{\pi} vπ=(1−γPπ)−1Rπ
最优状态价值函数 v ∗ ( s ) v_*(s) v∗(s)是所有策略产生的状态价值函数中,最大的状态价值: v ∗ ( s ) = max π v π ( s ) v_*(s)=\max \limits_\pi v_\pi(s) v∗(s)=πmaxvπ(s) 最优动作价值函数 q ∗ ( s , a ) q_*(s,a) q∗(s,a)是从所有策略产生的动作价值函数中,最大的动作价值: q ∗ ( s , a ) = max π q π ( s , a ) q_*(s,a)=\max \limits_\pi q_\pi(s,a) q∗(s,a)=πmaxqπ(s,a)
对于任何状态 s s s,遵循策略 π \pi π的价值不小于遵循策略 π ′ \pi^{\prime} π′的价值,则策略 π \pi π优于 π ′ \pi^{\prime} π′: π ≥ π ′ i f v π ( s ) ≥ v π ′ ( s ) , ∀ s \pi\geq \pi^{\prime} \ if\ v_\pi(s) \geq v_{\pi^{\prime}}(s),\forall s π≥π′ if vπ(s)≥vπ′(s),∀s
对于任意MDP,有:
⭐存在一个最优策略,比其他策略更好至少相等 π ∗ ≥ π , ∀ π \pi_*\geq\pi,\forall \pi π∗≥π,∀π
⭐所有的最优策略都有相同的最优价值函数 v π ∗ ( s ) = v ∗ ( s ) v_{\pi_*}(s)=v_*(s) vπ∗(s)=v∗(s)
⭐所有的最优策略都有相同的最优动作价值函数 q π ∗ ( s , a ) = q ∗ ( s , a ) q_{\pi_*}(s,a)=q_*(s,a) qπ∗(s,a)=q∗(s,a)
❗寻找最优策略
可以通过最大化最优动作价值函数 q ∗ ( s , a ) q_*(s,a) q∗(s,a)来寻找最优策略
对于任何MDP问题,总存在一个确定性的最优策略
如果我们直到最有动作价值函数 q ∗ ( s , a ) q_*(s,a) q∗(s,a),我们就找到了最优策略
一个状态的最优价值(最优状态价值),等于从该状态出发,采取的所有动作的动作价值中最大的一个的动作价值: v ∗ ( s ) = max a q ∗ ( s , a ) v_*(s)=\max_aq_*(s,a) v∗(s)=amaxq∗(s,a)
由下式可知 v π ( s ) = ∑ a ∈ A π ( a ∣ s ) q π ( s , a ) v_\pi(s)=\sum_ {a\in\mathcal{A}}\pi(a\vert s)q_\pi(s,a) vπ(s)=a∈A∑π(a∣s)qπ(s,a)
假设最优策略是确定性的策略,则 π ∗ ( s , a ) {\pi_*}(s,a) π∗(s,a)是one-hot的形式,只需取最大的 q π ∗ ( s , a ) q_{\pi_*}(s,a) qπ∗(s,a),且所有的最优策略有相同的动作价值函数,即 q π ∗ ( s , a ) = q ∗ ( s , a ) q_{\pi_*}(s,a)=q_*(s,a) qπ∗(s,a)=q∗(s,a):
v ∗ ( s ) = v π ∗ ( s ) = ∑ a ∈ A π ∗ ( a ∣ s ) q π ∗ ( s , a ) = max a q π ∗ ( s , a ) = max a q ∗ ( s , a ) v_*(s)=v_{\pi_*}(s)=\sum_ {a\in\mathcal{A}}{\pi_*}(a\vert s)q_{\pi_*}(s,a)=\max _aq_{\pi_*}(s,a)=\max \limits_aq_*(s,a) v∗(s)=vπ∗(s)=a∈A∑π∗(a∣s)qπ∗(s,a)=amaxqπ∗(s,a)=amaxq∗(s,a)
在某个状态下,采取某个行为的最优价值=离开该状态的即时奖励➕所有能到达的新的状态的最优价值按出现概率求和: q ∗ ( s , a ) = R s a + γ ∑ s ′ ∈ S P S S ′ a v ∗ ( s ′ ) q_*(s,a)=\mathcal{R}_s^a+\gamma \sum \limits_{s^{\prime}\in \mathcal{S}}\mathcal{P}_{SS^{\prime}}^av_*(s^{\prime}) q∗(s,a)=Rsa+γs′∈S∑PSS′av∗(s′)
与 v ∗ ( s ) = max a q ∗ ( s , a ) v_*(s)=\max \limits_aq_*(s,a) v∗(s)=amaxq∗(s,a)组合起来,有: v ∗ ( s ) = max a ( R s a + γ ∑ s ′ ∈ S P S S ′ a v ∗ ( s ′ ) ) v_*(s)=\max \limits_a(\mathcal{R}_s^a+\gamma \sum \limits_{s^{\prime}\in \mathcal{S}}\mathcal{P}_{SS^{\prime}}^av_*(s^{\prime})) v∗(s)=amax(Rsa+γs′∈S∑PSS′av∗(s′))
针对 q ∗ ( s , a ) q_*(s,a) q∗(s,a),有: q ∗ ( s , a ) = R s a + γ ∑ s ′ ∈ S P S S ′ a max a q ∗ ( s ′ , a ′ ) q_*(s,a)=\mathcal{R}_s^a+\gamma \sum \limits_{s^{\prime}\in \mathcal{S}}\mathcal{P}_{SS^{\prime}}^a\max \limits_aq_*(s^{\prime},a^{\prime}) q∗(s,a)=Rsa+γs′∈S∑PSS′aamaxq∗(s′,a′)
考虑到动作空间或状态空间的连续性,MDP有几下几种扩展:
对于复杂的系统来说,难以获得系统的精确状态,POMDPs是更接近真实世界的模型。
部分可观察马尔可夫决策过程是一种具有隐藏状态的MDP。它是一个带有动作的隐马尔可夫模型。
除了前提是部分可观测外,POMDPs也基于MDP类似的假设,采用最大化期望奖励的方法
一个POMDP是一个元组 ⟨ S , A , O , P , R , Z , γ ⟩ \langle{\mathcal{S}},\mathcal{A}, \mathcal{O},\mathcal{P}, {\mathcal{R}},\mathcal{Z},{\mathcal{\gamma}}\rangle ⟨S,A,O,P,R,Z,γ⟩
⭐ S \mathcal{S} S是有限状态集合
⭐ A \mathcal{A} A是有限动作集合
⭐ O \mathcal{O} O是有限的观测集合
⭐ P \mathcal{P} P是状态转移矩阵, P S S ′ a = P [ S t + 1 = s ′ ∣ S t = s , A t = a ] \mathcal{P}_{SS^{\prime}}^a=\mathbb{P}[S_{t+1}=s^{\prime}\vert S_t=s,A_t=a] PSS′a=P[St+1=s′∣St=s,At=a]
⭐ R \mathcal{R} R是奖励函数, R s a = E [ R t + 1 ∣ S t = s , A t = a ] \mathcal{R}_s^a=\mathbb{E}[R_{t+1}\vert S_t=s,A_t=a] Rsa=E[Rt+1∣St=s,At=a],描述了在状态 s s s的标量奖励( R t + 1 R_{t+1} Rt+1是具体的奖励值, R s \mathcal{R}_s Rs是函数)
⭐ Z \mathcal{Z} Z是观察函数,表明状态和观察值之间的关系 Z S ′ o a = P [ O t + 1 = o ∣ S t + 1 = s ′ , A t = a ] \mathcal{Z}_{S^{\prime}o}^a=\mathbb{P}[O_{t+1}=o\vert S_{t+1}=s^{\prime},A_t=a] ZS′oa=P[Ot+1=o∣St+1=s′,At=a]
⭐ γ \gamma γ是折扣因子/衰减系数
在POMDP中,agent不能确定自己处于哪个状态,因此对于下一步动作的选择的决策基础是当前所处状态的概率(最有可能处于哪个状态)。因此,agent需要通过传感器收集环境信息,来更新对自己当前所处状态的可信度。这里不是直接把agent导向目标点,而是选择一个缓冲一般让agent先运动到邻近位置,在这个邻近位置收集到的环境信息加大了对自己所处状态的可信度。在确信自己所处的状态后,agent做出的动作决策才是更有效的。
历史 H t H_t Ht是 t t t时刻观察、动作和奖励的序列: H t = A 0 , O 1 , R 1 , … , A t − 1 , O t , R t H_t=A_0,O_1,R_1,\ldots,A_{t-1},O_t,R_t Ht=A0,O1,R1,…,At−1,Ot,Rt
这种存储方式会消耗大量存储空间,可以采用较短的历史代替所有的观察和行为。Astrom提出用状态上的概率,引入信念状态 b ( h ) b(h) b(h)的概念,来表示agent对自己所处状态的可信度。
一个信念状态 b ( h ) b(h) b(h)是一个状态的概率分布,以历史h为条件: b ( h ) = ( P [ S t = s 1 ∣ H t = h ] , … , P [ S t = s n ∣ H t = h ] ) b(h)=(\mathbb{P}[S_t=s^1\vert H_t=h],\ldots,\mathbb{P}[S_t=s^n\vert H_t=h]) b(h)=(P[St=s1∣Ht=h],…,P[St=sn∣Ht=h])
信念状态 b ( h ) b(h) b(h)是对历史 H t H_t Ht的 充分估计,所有状态上维护一个概率分布可以与维护一个完整历史提供同样的信息。以前解决POMDP问题时,需要知道历史动作才能决定当前的操作,这种解决方案是非马尔科夫链。引入信念状态后,POMDP问题可以转化为基于信念空间的马尔科夫链来求解,即把POMDP问题转化为求解信念状态函数和策略的问题。
马尔科夫链的遍历性可以理解为任意取一个时间段,所有状态都有出现的可能。遍历马尔可夫链是非周期的平稳的马尔科夫链,有长时间尺度下的稳定行为,是被广泛研究应用的马尔科夫链。遍历马尔可夫过程具有:
遍历马尔科夫过程有以下性质的极限平稳分布 d π ( s ) d^\pi(s) dπ(s): d π ( s ) = ∑ s ′ d π ( s ′ ) P S ′ S d^\pi(s)=\sum \limits _{s^\prime}d^\pi(s^\prime)\mathcal{P}_{S^\prime S} dπ(s)=s′∑dπ(s′)PS′S
如果任何策略引起的马尔科夫链都是遍历的,则MDP是遍历的。
对于任何策略 π \pi π,一个遍历MDP的每个时间步长 ρ π \rho^\pi ρπ的平均奖励与开始状态无关
在马尔科夫过程的基础上增加了针对每个状态的奖励。(不包括衰减系数)
第二行对应各状态的即时奖励值(该奖励只与状态本身有关,与从何而来无关);中间区域的数字为状态转移概率,即所在行状态转移到所在列状态的概率
计算公式 G 1 = R 2 + γ R 3 + … + γ T − 2 R T G_1=R2+\gamma R_3+\ldots+\gamma^{T-2}R_T G1=R2+γR3+…+γT−2RT,这里 γ = 1 2 \gamma = \frac{1}{2} γ=21
注:图中圆圈内的数字为该状态的价值,圈外的 R = − 2 R=-2 R=−2为该状态的即时奖励
运用python求解
# coding:utf-8
import numpy as np
np.set_printoptions(precision=3, threshold=np.inf, linewidth=400, suppress=True)
gamma = 1.0
E = np.eye(7)
P = np.array([[0, 0.5, 0, 0, 0, 0.5, 0],
[0, 0, 0.8, 0, 0, 0, 0.2],
[0, 0, 0, 0.6, 0.4, 0, 0],
[0, 0, 0, 0, 0, 0, 1],
[0.2, 0.4, 0.4, 0, 0, 0, 0],
[0.1, 0, 0, 0, 0, 0.9, 0],
[0, 0, 0, 0, 0, 0, 1]])
R = np.array([-2, -2, -2, 10, 1, -1, 0]).T
# print(np.linalg.det(E-gamma*P))
# np.linalg.det(E-gamma*P) = 0.0 --> E-gamma*P是奇异矩阵
# 给矩阵主对角线每一个元素加一个很小的量,如1e-6,使其强制可逆
# print(np.linalg.det(E*1e-6 + E-gamma*P))
# np.linalg.det(E*1e-6 + E-gamma*P)=3.2401e-08
# print(np.linalg.inv(E*1e-6+E-gamma*P))
v = np.dot(np.linalg.inv(E*1e-6+E-gamma*P), R)
print("v={}".format(v))
# 输出 v=[-12.543 1.457 4.321 10. 0.803 -22.543 0. ]
❗❗❗问题:
这里取 π ( a ∣ s ) = 0.5 , γ = 1 \pi(a\vert s)=0.5,\gamma=1 π(a∣s)=0.5,γ=1
对于终点位置:没有下一个状态,也没有当前状态下的动作,因此状态价值函数为0
对于状态S1,S2,S3,S4,依次定义价值为 v 1 , v 2 , v 3 , v 4 v_1,v_2,v_3,v_4 v1,v2,v3,v4,根据KaTeX parse error: Expected group after '_' at position 14: v_\pi(s)=\sum_̲\limits {a\in\m…可以计算得到:
运用python求解该方程:
# coding:utf-8
import numpy as np
np.set_printoptions(precision=3, threshold=np.inf, linewidth=400, suppress=True)
a = np.array([[-1,0.5,0,0.5],[0,-1,0.5,0],[0.1,0.2,-0.8,0],[0.5,0,0,-0.5]])
b = np.array([[1.5],[1.0],[-5.5],[0.5]])
c = np.dot(np.linalg.inv(a), b)
print("c=\n{}".format(c)) # c=[[-1.308] [ 2.692] [ 7.385] [-2.308]]
求解得到 v 1 = − 1.3 , v 2 = 2.7 , v 3 = 7.4 , v 4 = − 2.3 v_1=-1.3,v_2=2.7,v_3=7.4,v_4=-2.3 v1=−1.3,v2=2.7,v3=7.4,v4=−2.3
利用公式KaTeX parse error: Expected group after '_' at position 39: …s^a+\gamma \sum_̲\limits {s\in S…
q π ( S 1 , S t u d y ) = R S 1 S t u d y + γ P S 1 S 2 S t u d y v π ( S 2 ) = − 2 + 2.7 = 0.7 q_\pi(S1,Study)=\mathcal{R}_{S1}^{Study}+\gamma \mathcal{P}_{S1S2}^{Study}v_\pi(S2)=-2+2.7=0.7 qπ(S1,Study)=RS1Study+γPS1S2Studyvπ(S2)=−2+2.7=0.7
q π ( S 1 , F a c e b o o k ) = R S 1 F a c e b o o k + γ P S 1 S 4 F a c e b o o k v π ( S 4 ) = − 1 − 2.3 = − 3.3 q_\pi(S1,Facebook)=\mathcal{R}_{S1}^{Facebook}+\gamma \mathcal{P}_{S1S4}^{Facebook}v_\pi(S4)=-1-2.3=-3.3 qπ(S1,Facebook)=RS1Facebook+γPS1S4Facebookvπ(S4)=−1−2.3=−3.3
q π ( S 2 , S l e e p ) = R S 2 S l e e p + γ P S 2 e n d S l e e p v π ( e n d ) = 0 + 0 = 0 q_\pi(S2,Sleep)=\mathcal{R}_{S2}^{Sleep}+\gamma \mathcal{P}_{S2end}^{Sleep}v_\pi(end)=0+0=0 qπ(S2,Sleep)=RS2Sleep+γPS2endSleepvπ(end)=0+0=0
q π ( S 2 , S t u d y ) = R S 2 S t u d y + γ P S 2 S 3 S t u d y v π ( S 3 ) = − 2 + 7.4 = 5.4 q_\pi(S2,Study)=\mathcal{R}_{S2}^{Study}+\gamma \mathcal{P}_{S2S3}^{Study}v_\pi(S3)=-2+7.4=5.4 qπ(S2,Study)=RS2Study+γPS2S3Studyvπ(S3)=−2+7.4=5.4
q π ( S 3 , S t u d y ) = R S 3 S t u d y + γ P S 3 e n d S t u d y v π ( e n d ) = 10 + 0 = 10 q_\pi(S3,Study)=\mathcal{R}_{S3}^{Study}+\gamma \mathcal{P}_{S3end}^{Study}v_\pi(end)=10+0=10 qπ(S3,Study)=RS3Study+γPS3endStudyvπ(end)=10+0=10
q π ( S 3 , P u b ) = R S 3 P u b + γ ∑ s ′ ∈ S P S 3 ⋅ P u b v π ( ⋅ ) = 1 + 0.2 × ( − 1.3 ) + 0.4 × ( 2.7 ) + 0.2 × ( 7.4 ) = 4.78 q_\pi(S3,Pub)=\mathcal{R}_{S3}^{Pub}+\gamma \sum \limits _{s^{\prime}\in \mathcal{S}}\mathcal{P}_{S3\cdot}^{Pub}v\pi(\cdot)=1+0.2\times (-1.3)+0.4\times (2.7)+0.2\times (7.4)=4.78 qπ(S3,Pub)=RS3Pub+γs′∈S∑PS3⋅Pubvπ(⋅)=1+0.2×(−1.3)+0.4×(2.7)+0.2×(7.4)=4.78
q π ( S 4 , F a c e b o o k ) = R S 4 F a c e b o o k + γ P S 4 S 4 F a c e b o o k v π ( S 4 ) = − 1 + ( − 2.3 ) = − 3.3 q_\pi(S4,Facebook)=\mathcal{R}_{S4}^{Facebook}+\gamma \mathcal{P}_{S4S4}^{Facebook}v_\pi(S4)=-1+(-2.3)=-3.3 qπ(S4,Facebook)=RS4Facebook+γPS4S4Facebookvπ(S4)=−1+(−2.3)=−3.3
q π ( S 4 , Q u i t ) = R S 4 Q u i t + γ P S 4 S 1 Q u i t v π ( S 1 ) = 0 + ( − 1.3 ) = − 1.3 q_\pi(S4,Quit)=\mathcal{R}_{S4}^{Quit}+\gamma \mathcal{P}_{S4S1}^{Quit}v_\pi(S1)=0+(-1.3)=-1.3 qπ(S4,Quit)=RS4Quit+γPS4S1Quitvπ(S1)=0+(−1.3)=−1.3
这里取 π ( a ∣ s ) = 0.5 , γ = 1 \pi(a\vert s)=0.5,\gamma=1 π(a∣s)=0.5,γ=1
用python求解该方程:
# coding:utf-8
import numpy as np
np.set_printoptions(precision=3, threshold=np.inf, linewidth=400, suppress=True)
gamma = 1.0
E = np.eye(5)
P = np.array(
[[0,0.5,0,0.5,0],
[0,0,0.5,0,0.5],
[0.1,0.2,0.2,0,0.5],
[0.5,0,0,0.5,0],
[0,0,0,0,1]])
R = np.array([[-1.5],[-1],[5.5],[-0.5],[0]])
# print(np.linalg.det(E-gamma*P))
# np.linalg.det(E-gamma*P)=0.0 --> E-gamma*P是奇异矩阵
# 给矩阵主对角线每一个元素加一个很小的量,如1e-6,使其强制可逆
# print(np.linalg.det(E*1e-6+E-gamma*P))
# np.linalg.det(E*1e-6+E-gamma*P)=1.6250e-07
v = np.dot(np.linalg.inv(E*1e-6+E-gamma*P), R)
print("v=\n{}".format(v)) # v=[[-1.308] [ 2.692] [ 7.385] [-2.308] [ 0. ]]
已知KaTeX parse error: Expected group after '_' at position 39: …s^a+\gamma \sum_̲\limits {s\in S… q ∗ ( s , a ) = max π q π ( s , a ) q_*(s,a)=\max \limits_\pi q_\pi(s,a) q∗(s,a)=πmaxqπ(s,a)
求解: q ∗ ( S 1 , S t u d y ) = R S 1 S t u d y + γ P S 1 S 2 S t u d y max a ′ q ∗ ( S 2 , a ′ ) = R S 1 S t u d y + γ P S 1 S 2 S t u d y max ( q ∗ ( S 2 , S l e e p ) , q ∗ ( S 2 , S t u d y ) ) = − 2 + m a x ( 0 , q ∗ ( S 2 , S t u d y ) ) q_*(S1,Study)=\mathcal{R}_{S1}^{Study}+\gamma \mathcal{P}_{S1S2}^{Study}\max \limits_{a^{\prime}}q_*(S2,a^{\prime}) \\ =\mathcal{R}_{S1}^{Study}+\gamma \mathcal{P}_{S1S2}^{Study}\max (q_*(S2,Sleep),q_*(S2,Study)) \\ = -2+max(0,q_*(S2,Study)) q∗(S1,Study)=RS1Study+γPS1S2Studya′maxq∗(S2,a′)=RS1Study+γPS1S2Studymax(q∗(S2,Sleep),q∗(S2,Study))=−2+max(0,q∗(S2,Study))
q ∗ ( S 1 , F a c e b o o k ) = R S 1 F a c e b o o k + γ P S 1 S 4 F a c e b o o k max a ′ q ∗ ( S 4 , a ′ ) = R S 1 F a c e b o o k + γ P S 1 S 4 F a c e b o o k max ( q ∗ ( S 4 , F a c e b o o k ) , q ∗ ( S 4 , Q u i t ) ) = − 1 + max ( q ∗ ( S 4 , F a c e b o o k ) , q ∗ ( S 4 , Q u i t ) ) q_*(S1,Facebook)=\mathcal{R}_{S1}^{Facebook}+\gamma \mathcal{P}_{S1S4}^{Facebook}\max \limits_{a^{\prime}}q_*(S4,a^{\prime}) \\ =\mathcal{R}_{S1}^{Facebook}+\gamma \mathcal{P}_{S1S4}^{Facebook}\max (q_*(S4,Facebook),q_*(S4,Quit)) \\ = -1+\max (q_*(S4,Facebook),q_*(S4,Quit)) q∗(S1,Facebook)=RS1Facebook+γPS1S4Facebooka′maxq∗(S4,a′)=RS1Facebook+γPS1S4Facebookmax(q∗(S4,Facebook),q∗(S4,Quit))=−1+max(q∗(S4,Facebook),q∗(S4,Quit))
q ∗ ( S 2 , S t u d y ) = R S 1 S t u d y + γ P S 2 S 3 S t u d y max a ′ q ∗ ( S 3 , a ′ ) = R S 1 S t u d y + γ P S 2 S 3 S t u d y max ( q ∗ ( S 3 , S t u d y ) , q ∗ ( S 3 , P u b ) ) = − 2 + max ( q ∗ ( S 3 , S t u d y ) , q ∗ ( S 3 , P u b ) ) q_*(S2,Study)=\mathcal{R}_{S1}^{Study}+\gamma \mathcal{P}_{S2S3}^{Study}\max \limits_{a^{\prime}}q_*(S3,a^{\prime}) \\ =\mathcal{R}_{S1}^{Study}+\gamma \mathcal{P}_{S2S3}^{Study}\max (q_*(S3,Study),q_*(S3,Pub)) \\ = -2+\max (q_*(S3,Study),q_*(S3,Pub)) q∗(S2,Study)=RS1Study+γPS2S3Studya′maxq∗(S3,a′)=RS1Study+γPS2S3Studymax(q∗(S3,Study),q∗(S3,Pub))=−2+max(q∗(S3,Study),q∗(S3,Pub))
q ∗ ( S 2 , S l e e p ) = R S 2 S l e e p + γ P S 2 e n d S l e e p v ( e n d ) = 0 + 0 = 0 q_*(S2,Sleep)=\mathcal{R}_{S2}^{Sleep}+\gamma \mathcal{P}_{S2end}^{Sleep}v(end)=0+0=0 q∗(S2,Sleep)=RS2Sleep+γPS2endSleepv(end)=0+0=0
q ∗ ( S 3 , S t u d y ) = R S 3 S t u d y + γ P S 3 e n d S t u d y v ( e n d ) = 10 + 0 = 10 q_*(S3,Study)=\mathcal{R}_{S3}^{Study}+\gamma \mathcal{P}_{S3end}^{Study}v(end)=10+0=10 q∗(S3,Study)=RS3Study+γPS3endStudyv(end)=10+0=10
q ∗ ( S 3 , P u b ) = R S 3 P u b + γ P S 3 ⋅ P u b max a ′ q ∗ ( ⋅ , a ′ ) = R S 3 P u b + γ ( P ⋅ S 1 a 1 max ( q ∗ ( S 1 , F a c e b o o k ) , q ∗ ( S 1 , S t u d y ) ) + P ⋅ S 2 a 2 max ( q ∗ ( S 2 , S l e e p ) , q ∗ ( S 2 , S t u d y ) ) + P ⋅ S 3 a 3 max ( q ∗ ( S 3 , P u b ) , q ∗ ( S 3 , S t u d y ) ) ) = 1 + 0.2 × max ( ( q ∗ ( S 1 , S t u d y ) , q ∗ ( S 1 , F a c e b o o k ) ) + 0.4 × max ( ( q ∗ ( S 2 , S l e e p ) , q ∗ ( S 2 , S t u d y ) ) + 0.4 × max ( ( q ∗ ( S 3 , P u b ) , q ∗ ( S 3 , S t u d y ) ) q_*(S3,Pub)=\mathcal{R}_{S3}^{Pub}+\gamma \mathcal{P}_{S3\cdot}^{Pub}\max \limits_{a^{\prime}}q_*(\cdot,a^{\prime}) \\ =\mathcal{R}_{S3}^{Pub}+\gamma (\mathcal{P}_{\cdot S1}^{a1}\max (q_*(S1,Facebook),q_*(S1,Study))+\mathcal{P}_{\cdot S2}^{a2}\max (q_*(S2,Sleep),q_*(S2,Study)) + \mathcal{P}_{\cdot S3}^{a3}\max (q_*(S3,Pub),q_*(S3,Study)))\\ = 1+0.2\times\max ((q_*(S1,Study),q_*(S1,Facebook))+0.4\times\max ((q_*(S2,Sleep),q_*(S2,Study))+0.4\times\max ((q_*(S3,Pub),q_*(S3,Study)) \\ q∗(S3,Pub)=RS3Pub+γPS3⋅Puba′maxq∗(⋅,a′)=RS3Pub+γ(P⋅S1a1max(q∗(S1,Facebook),q∗(S1,Study))+P⋅S2a2max(q∗(S2,Sleep),q∗(S2,Study))+P⋅S3a3max(q∗(S3,Pub),q∗(S3,Study)))=1+0.2×max((q∗(S1,Study),q∗(S1,Facebook))+0.4×max((q∗(S2,Sleep),q∗(S2,Study))+0.4×max((q∗(S3,Pub),q∗(S3,Study))
q ∗ ( S 4 , F a c e b o o k ) = R S 4 F a c e b o o k + γ P S 4 S 4 F a c e b o o k max a ′ q ∗ ( S 4 , a ′ ) = R S 4 F a c e b o o k + γ P S 4 S 4 F a c e b o o k max ( q ∗ ( S 4 , F a c e b o o k ) , q ∗ ( S 4 , Q u i t ) ) = − 1 + max ( q ∗ ( S 4 , F a c e b o o k ) , q ∗ ( S 4 , Q u i t ) ) q_*(S4,Facebook)=\mathcal{R}_{S4}^{Facebook}+\gamma \mathcal{P}_{S4S4}^{Facebook}\max \limits_{a^{\prime}}q_*(S4,a^{\prime}) \\ =\mathcal{R}_{S4}^{Facebook}+\gamma \mathcal{P}_{S4S4}^{Facebook}\max (q_*(S4,Facebook),q_*(S4,Quit)) \\ = -1+\max (q_*(S4,Facebook),q_*(S4,Quit)) q∗(S4,Facebook)=RS4Facebook+γPS4S4Facebooka′maxq∗(S4,a′)=RS4Facebook+γPS4S4Facebookmax(q∗(S4,Facebook),q∗(S4,Quit))=−1+max(q∗(S4,Facebook),q∗(S4,Quit))
q ∗ ( S 4 , Q u i t ) = R S 4 Q u i t + γ P S 4 S 1 Q u i t max a ′ q ∗ ( S 1 , a ′ ) = R S 4 Q u i t + γ P S 4 S 1 Q u i t max ( q ∗ ( S 1 , S t u d y ) , q ∗ ( S 1 , F a c e b o o k ) ) = 0 + max ( q ∗ ( S 1 , S t u d y ) , q ∗ ( S 1 , F a c e b o o k ) ) q_*(S4,Quit)=\mathcal{R}_{S4}^{Quit}+\gamma \mathcal{P}_{S4S1}^{Quit}\max \limits_{a^{\prime}}q_*(S1,a^{\prime}) \\ =\mathcal{R}_{S4}^{Quit}+\gamma \mathcal{P}_{S4S1}^{Quit}\max (q_*(S1,Study),q_*(S1,Facebook)) \\ = 0+\max (q_*(S1,Study),q_*(S1,Facebook)) q∗(S4,Quit)=RS4Quit+γPS4S1Quita′maxq∗(S1,a′)=RS4Quit+γPS4S1Quitmax(q∗(S1,Study),q∗(S1,Facebook))=0+max(q∗(S1,Study),q∗(S1,Facebook))
整理可得:
q ∗ ( S 1 , S t u d y ) = − 2 + m a x ( 0 , q ∗ ( S 2 , S t u d y ) ) q ∗ ( S 1 , F a c e b o o k ) = − 1 + max ( q ∗ ( S 4 , F a c e b o o k ) , q ∗ ( S 4 , Q u i t ) ) q ∗ ( S 2 , S l e e p ) = 0 q ∗ ( S 2 , S t u d y ) = − 2 + max ( 10 , q ∗ ( S 3 , P u b ) ) q ∗ ( S 3 , S t u d y ) = 10 q ∗ ( S 3 , P u b ) = 1 + 0.2 × max ( ( q ∗ ( S 1 , S t u d y ) , q ∗ ( S 1 , F a c e b o o k ) ) + 0.4 × max ( 0 , q ∗ ( S 2 , S t u d y ) ) + 0.4 × max ( ( q ∗ ( S 3 , P u b ) , 10 ) q ∗ ( S 4 , F a c e b o o k ) = − 1 + max ( q ∗ ( S 4 , F a c e b o o k ) , q ∗ ( S 4 , Q u i t ) ) q ∗ ( S 4 , Q u i t ) = 0 + max ( q ∗ ( S 1 , S t u d y ) , q ∗ ( S 1 , F a c e b o o k ) ) q_*(S1,Study) = -2+max(0,q_*(S2,Study))\\ q_*(S1,Facebook)=-1+\max (q_*(S4,Facebook),q_*(S4,Quit))\\ q_*(S2,Sleep) = 0\\ q_*(S2,Study) = -2+\max (10,q_*(S3,Pub)) \\ q_*(S3,Study) = 10\\ q_*(S3,Pub)=1+0.2\times\max ((q_*(S1,Study),q_*(S1,Facebook))+0.4\times\max (0,q_*(S2,Study))+0.4\times\max ((q_*(S3,Pub),10)\\ q_*(S4,Facebook)=-1+\max (q_*(S4,Facebook),q_*(S4,Quit))\\ q_*(S4,Quit)= 0+\max (q_*(S1,Study),q_*(S1,Facebook)) q∗(S1,Study)=−2+max(0,q∗(S2,Study))q∗(S1,Facebook)=−1+max(q∗(S4,Facebook),q∗(S4,Quit))q∗(S2,Sleep)=0q∗(S2,Study)=−2+max(10,q∗(S3,Pub))q∗(S3,Study)=10q∗(S3,Pub)=1+0.2×max((q∗(S1,Study),q∗(S1,Facebook))+0.4×max(0,q∗(S2,Study))+0.4×max((q∗(S3,Pub),10)q∗(S4,Facebook)=−1+max(q∗(S4,Facebook),q∗(S4,Quit))q∗(S4,Quit)=0+max(q∗(S1,Study),q∗(S1,Facebook))
简单观察可得: q ∗ ( S 2 , S t u d y ) ≥ 8 q ∗ ( S 1 , S t u d y ) ≥ 6 q ∗ ( S 3 , P u b ) = 1 + 0.2 × max ( ( q ∗ ( S 1 , S t u d y ) , q ∗ ( S 1 , F a c e b o o k ) ) + 0.4 × q ∗ ( S 2 , S t u d y ) + 0.4 × max ( ( q ∗ ( S 3 , P u b ) , 10 ) q_*(S2,Study) \geq 8 \\ q_*(S1,Study) \geq 6\\ q_*(S3,Pub) = 1+0.2\times\max ((q_*(S1,Study),q_*(S1,Facebook))+0.4\times q_*(S2,Study)+0.4\times\max ((q_*(S3,Pub),10)\\ q∗(S2,Study)≥8q∗(S1,Study)≥6q∗(S3,Pub)=1+0.2×max((q∗(S1,Study),q∗(S1,Facebook))+0.4×q∗(S2,Study)+0.4×max((q∗(S3,Pub),10)
观察 q ∗ ( S 4 , F a c e b o o k ) = − 1 + max ( q ∗ ( S 4 , F a c e b o o k ) , q ∗ ( S 4 , Q u i t ) ) q_*(S4,Facebook)=-1+\max (q_*(S4,Facebook),q_*(S4,Quit)) q∗(S4,Facebook)=−1+max(q∗(S4,Facebook),q∗(S4,Quit)),显然 q ∗ ( S 4 , F a c e b o o k ) = − 1 + q ∗ ( S 4 , Q u i t ) q_*(S4,Facebook)=-1+q_*(S4,Quit) q∗(S4,Facebook)=−1+q∗(S4,Quit)
则 q ∗ ( S 1 , F a c e b o o k ) = − 1 + q ∗ ( S 4 , Q u i t ) q ∗ ( S 4 , Q u i t ) = 0 + max ( q ∗ ( S 1 , S t u d y ) , − 1 + q ∗ ( S 4 , Q u i t ) ) = q ∗ ( S 1 , S t u d y ) q ∗ ( S 3 , P u b ) = 1 + 0.2 × max ( ( q ∗ ( S 1 , S t u d y ) , q ∗ ( S 1 , F a c e b o o k ) ) + 0.4 × q ∗ ( S 2 , S t u d y ) + 0.4 × max ( ( q ∗ ( S 3 , P u b ) , 10 ) = 1 + 0.2 × max ( ( q ∗ ( S 4 , Q u i t ) , − 1 + q ∗ ( S 4 , Q u i t ) ) + 0.4 × q ∗ ( S 2 , S t u d y ) + 0.4 × max ( ( q ∗ ( S 3 , P u b ) , 10 ) = 1 + 0.2 × q ∗ ( S 4 , Q u i t ) + 0.4 × q ∗ ( S 2 , S t u d y ) + 0.4 × max ( ( q ∗ ( S 3 , P u b ) , 10 ) = 1 + 0.2 × q ∗ ( S 1 , S t u d y ) + 0.4 × q ∗ ( S 2 , S t u d y ) + 0.4 × max ( ( q ∗ ( S 3 , P u b ) , 10 ) = 1 + 0.2 × ( − 2 + q ∗ ( S 2 , S t u d y ) ) + 0.4 × q ∗ ( S 2 , S t u d y ) + 0.4 × max ( ( q ∗ ( S 3 , P u b ) , 10 ) = 0.6 + 0.6 × q ∗ ( S 2 , S t u d y ) + 0.4 × max ( ( q ∗ ( S 3 , P u b ) , 10 ) ( n o t e : q ∗ ( S 2 , S t u d y ) ≥ 8 ) ) = 0.6 + 0.6 × q ∗ ( S 2 , S t u d y ) + 0.4 × 10 = 0.6 × q ∗ ( S 2 , S t u d y ) + 4.6 q_*(S1,Facebook)=-1+q_*(S4,Quit)\\ q_*(S4,Quit)= 0+\max (q_*(S1,Study),-1+q_*(S4,Quit))=q_*(S1,Study)\\ q_*(S3,Pub)=1+0.2\times\max ((q_*(S1,Study),q_*(S1,Facebook))+0.4\times q_*(S2,Study)+0.4\times\max ((q_*(S3,Pub),10)\\ =1+0.2\times\max ((q_*(S4,Quit),-1+q_*(S4,Quit))+0.4\times q_*(S2,Study)+0.4\times\max ((q_*(S3,Pub),10) \\ =1+0.2\times q_*(S4,Quit)+0.4\times q_*(S2,Study)+0.4\times\max ((q_*(S3,Pub),10)\\ =1+0.2\times q_*(S1,Study)+0.4\times q_*(S2,Study)+0.4\times\max ((q_*(S3,Pub),10)\\ =1+0.2\times (-2+q_*(S2,Study))+0.4\times q_*(S2,Study)+0.4\times\max ((q_*(S3,Pub),10)\\ = 0.6+0.6\times q_*(S2,Study)+0.4\times\max ((q_*(S3,Pub),10) \ \ \ (note:q_*(S2,Study) \geq 8))\\ = 0.6+0.6\times q_*(S2,Study)+0.4\times 10\\ = 0.6\times q_*(S2,Study) + 4.6 q∗(S1,Facebook)=−1+q∗(S4,Quit)q∗(S4,Quit)=0+max(q∗(S1,Study),−1+q∗(S4,Quit))=q∗(S1,Study)q∗(S3,Pub)=1+0.2×max((q∗(S1,Study),q∗(S1,Facebook))+0.4×q∗(S2,Study)+0.4×max((q∗(S3,Pub),10)=1+0.2×max((q∗(S4,Quit),−1+q∗(S4,Quit))+0.4×q∗(S2,Study)+0.4×max((q∗(S3,Pub),10)