q learning sarsa 二维寻宝

原文链接: q learning sarsa 二维寻宝

上一篇: vue 实现 q learning 一维寻宝

下一篇: Python 线程 实现 循环定时器和延时器

使用q learning 算法 实现二维寻宝游戏

sarsa(lambda) 算法其中lambda表示过往经历的重要性

如果 lambda = 0, Sarsa-lambda 就是 Sarsa, 只更新获取到 reward 前经历的最后一步.

如果 lambda = 1, Sarsa-lambda 更新的是 获取到 reward 前所有经历的步.

q learning sarsa 二维寻宝_第1张图片

游戏过程

q learning sarsa 二维寻宝_第2张图片

几次结果图可以看到基本是有效的找到了所需路径

q learning sarsa 二维寻宝_第3张图片

q learning sarsa 二维寻宝_第4张图片

q表

q learning sarsa 二维寻宝_第5张图片

sarsa 算法

这张图表示的是经历的衰减,一般选取第三种,不累加的替代

因为在开始时会有很多无用步骤,所以如果累加的话,那些无用步骤所占的就多了

        # Method 1:
        # self.eligibility_trace.loc[s, a] += 1

        # Method 2:
        self.eligibility_trace.loc[s, :] *= 0
        self.eligibility_trace.loc[s, a] = 1

        # Q update
        self.q_table += self.lr * error * self.eligibility_trace

        # decay eligibility trace after update
        self.eligibility_trace *= self.gamma*self.lambda_

q learning sarsa 二维寻宝_第6张图片






你可能感兴趣的:(游戏,强化学习,flex,快速排序,widget)