我是靠谱客的博主 欣喜大象,最近开发中收集的这篇文章主要介绍动态规划:值函数迭代例子,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  • 最优方程:
    V ( h ) = min ⁡ { R + α [ P 1 C + V ( 0 ) ] , α [ h P 2 C + ( 1 − h ) γ P 2 C + ( 1 − h ) ( 1 − γ ) P 1 C + V ( h + ( 1 − h ) γ ) ] } V(h)=min left{R+alphaleft[P_{1} C+V(0)right]right., left.alphaleft[h P_{2} C+(1-h) gamma P_{2} C+(1-h)(1-gamma) P_{1} C+V(h+(1-h) gamma)right]right} V(h)=min{R+α[P1C+V(0)],α[hP2C+(1h)γP2C+(1h)(1γ)P1C+V(h+(1h)γ)]}
    其中, P 2 > P 1 P_2>P_1 P2>P1

  • 值迭代:
    V n ( h ) = min ⁡ { R + α [ P 1 C + V n − 1 ( 0 ) ] , α [ h P 2 C + ( 1 − h ) γ P 2 C + ( 1 − h ) ( 1 − γ ) P 1 C + V n − 1 ( h + ( 1 − h ) γ ) ] } V_{n}(h)=min left{R+alphaleft[P_{1} C+V_{n-1}(0)right]right., left.alphaleft[h P_{2} C+(1-h) gamma P_{2} C+(1-h)(1-gamma) P_{1} C+V_{n-1}(h+(1-h) gamma)right]right} Vn(h)=min{R+α[P1C+Vn1(0)],α[hP2C+(1h)γP2C+(1h)(1γ)P1C+Vn1(h+(1h)γ)]}
    其中, V 0 ( h ) ≡ 0 V_0(h)equiv0 V0(h)0

  • 离散化:
    因为 h ∈ [ 0 , 1 ] hin[0,1] h[0,1],所以我们要对 h h h进行离散化。设 h ∈ H = { 0.01 k ∣ 0 ≤ k ≤ 100 , k ∈ N } hin H={0.01k|0le k le100, kin N} hH={0.01k0k100,kN}
    又因为 h + ( 1 − h ) γ h+(1-h)gamma h+(1h)γ可能不属于 H H H,所以我们要将其近似为 H H H中最近的元素: round ( 100 ( h + ( 1 − h ) γ ) ) / 100 text{round}(100(h+(1-h)gamma))/100 round(100(h+(1h)γ))/100

  • MATLAB实现:

R = 100;
a = 0.9;
P1 = 0.1;
P2 = 0.5;
C = 20;
gamma = 0.5;

V = zeros(101, 100); % V(i,j)表示第j次迭代中第i个状态所对应的值函数的值
for j = 2:100
    for i = 1:101
        h = (i - 1) / 100;
        V(i, j) = min(R + a * (P1 * C + V(1, j-1)), ...
           a * (h * P2 * C + (1 - h ) * gamma * P2 * C ...
           + (1 - h) * (1 - gamma) * P1 * C)...
           + V(round((h + (1 - h) * gamma) * 100) + 1, j - 1));
    end
end

p = 0:0.01:1;
plot(p, V(:,100))
  • 实验结果:
    在这里插入图片描述

最后

以上就是欣喜大象为你收集整理的动态规划:值函数迭代例子的全部内容,希望文章能够帮你解决动态规划:值函数迭代例子所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(74)

评论列表共有 0 条评论

立即
投稿
返回
顶部