在强化学习中定义状态,Q和R矩阵

时间:2018-07-28 12:25:45

标签: machine-learning artificial-intelligence reinforcement-learning q-learning

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

所引用的主要书籍:Sutton & Barto 2nd editionblog

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

保持简单代理始终会向前移动。 B始终处于X轴位置100,这也是一个进球状态,并且在第一次迭代中A处于60 X轴位置。因此,动作将只是“前进”和“停止”。奖励结构是在A到达点B时奖励代理商100,否则保持0,而当A越过B时奖励-500。因此,特工的目标是到达并停在位置B。

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

任何帮助将不胜感激。

Q_matrix实现:

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是一个临时列表,用于存储代理的所有位置。

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

1 个答案:

答案 0 :(得分:0)

由于在这种情况下要定义问题,因此许多变量都取决于您。

  1. 您可以定义一个最小状态(例如0)和一个最大状态(例如150),并将每个步骤定义为一个状态(因此您可以拥有150个可能的状态)。那么100将是您的目标状态。然后,您的操作将被定义为+1(向前移动一步)和0(停止)。然后,对于所有可能的状态和所有动作,Q矩阵将为150x2矩阵。奖励将是您定义的标量。

  2. 您不需要添加新的列和行,因为您已定义了整个Q矩阵。

好运。