您当前的位置: 首页 > 

段智华

暂无认证

  • 0浏览

    0关注

    1232博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

CS 188 Project3(RL) Q5: Prioritized Sweeping Value Iteration

段智华 发布时间:2019-03-23 14:56:29 ,浏览量:0

     现在您将实现PrioritedSweepingValueIterationAgent,它已在ValueIterationAgents.py中为您部分指定。注意,这个类是从AsynchronousValueIterationAgent派生的,所以唯一需要更改的方法是RunValueIteration,它实际上运行值迭代。优先以可能改变策略的方式集中更新状态值。

     对于这个项目,您将实现标准优先级扫描算法的简化版本,本文对此进行了描述。我们已经为我们的设置调整了这个算法。首先,将状态s的前一个状态定义为所有通过采取某种行动a达到s的概率为非零的状态。另外,作为参数传入的theta,在决定是否更新状态值时,将表示对错误的容忍度。这是在实现中应该遵循的算法。

  • 计算所有状态的前一个状态。
  • 初始化空优先级队列。
  • 对于每个非终端状态s,(注意:为了使autograder程序能够处理这个问题,必须按照self.mdp.getStates()返回的顺序迭代状态)。在self.value s中的s的当前值与s的所有可能操作中的最高Q值之间的差的绝对值(表示该值应该是什么),可调用数字diff,在此步骤中不要更新self.value s[s];使用priority-diff将s推入优先级队列(请注意,这是负数)。我们使用负数,因为优先级队列是最小堆,但我们希望对错误更大的更新状态进行优先级排序。
  • 对于0,1,2,…,self.iterations-1中的迭代,请执行以下操作:
    • 如果优先级队列为空,则终止;

关注
打赏
1659361485
查看更多评论
立即登录/注册

微信扫码登录

0.0763s