首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >强化学习中状态、Q和R矩阵的定义

强化学习中状态、Q和R矩阵的定义
EN

Stack Overflow用户
提问于 2018-07-28 20:25:45
回答 1查看 434关注 0票数 0

我是RL的新手,我参考了几本书和教程,但我有一个基本的问题,我希望在这里找到基本的答案。

参考的主要书籍:Sutton & Barto 2nd editionblog

问题描述(仅Q学习方法):智能体必须从A点到达B点,它是一条直线,B点是静态的,只有智能体的初始位置总是随机的。-----------A(60,0)----------------------------------B(100,0)------------->

保持它的简单性Agent总是向前移动。B始终位于X轴位置100,这也是目标状态,并且在第一次迭代中A位于60 X轴位置。因此,操作将只是“前进”和“停止”。奖励结构是当A到达点B时奖励智能体100,否则只保持0,当A超过B时,它得到-500。因此,智能体的目标是到达并停在位置B。

1)在这种情况下,从点A到点B需要多少个状态?如何定义Q和R矩阵?2)如果发现新的状态,如何添加新的列和行?

任何帮助都将不胜感激。

Q_matrix实现:

代码语言:javascript
运行
复制
Q_matrix((find(List_Ego_pos_temp == current_state)) , 
                    possible_actions) = Q_matrix(find(List_Ego_pos_temp == current_state),possible_actions) + this.learning_rate * (Store_reward(this.Ego_pos_counter) + ...
                    this.discount * max(Q_matrix(find(List_Ego_pos_temp == List_Ego_pos_temp(find(current_state)+1))),possible_actions) - Q_matrix((find(List_Ego_pos_temp == current_state)) , possible_actions));

这个实现是在matlab中实现的。List_Ego_pos_temp是一个临时列表,存储了智能体的所有位置。

此外,假设有10个状态1到10,我们还知道智能体在每个状态中移动到状态10的速度和距离,并且智能体始终只能按顺序移动,这意味着智能体可以从s1到s2到s3到s4直到10,而不是s1到s4或s10。假设在s8是目标状态,奖励= 10,s10是终端状态,奖励是-10,从s1到s7,它收到的奖励是0。那么,如果当前状态被视为state1,下一状态被视为state2,并且在下一次迭代中,当前状态被视为state2,下一状态被视为state3,那么计算Q表是否是一种正确的方法?这会正确地计算Q表吗,因为下一个状态已经被馈送了,并且没有任何预测?

EN

回答 1

Stack Overflow用户

发布于 2018-08-02 01:50:20

由于您在本例中定义了问题,因此许多变量都依赖于您。

  1. 您可以定义一个最小状态(例如0)和一个最大状态(例如150),并将每个步骤定义为一个状态(因此您可以有150个可能的状态)。那么100将是你的目标状态。那么您的操作将被定义为+1 (移动一步)和0(停止)。那么Q矩阵将是所有可能状态和所有动作的150x2矩阵。奖励将是您定义的标量。
  2. 您不需要添加新的列和行,因为您已经定义了整个Q矩阵。

祝你好运。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51571375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档