Python 了解mdptoolbox林示例的参数值

Python 了解mdptoolbox林示例的参数值,python,numpy,reinforcement-learning,mdptoolbox,Python,Numpy,Reinforcement Learning,Mdptoolbox,我试图了解如何使用,并有几个问题 以下语句中的20是什么意思 P, R = mdptoolbox.example.forest(10, 20, is_sparse=False) 我知道这里的10表示可能的状态数。这里的20是什么意思?它是否表示每个州的操作总数?我想将MDP限制为每个州仅执行2个操作。我怎么能这样做 上面返回的p的形状是(2,10,10)。2在这里代表什么?无论我对总状态和操作使用什么值,您运行的代码始终是正确的,但您使用的是工具箱中的示例 请仔细阅读这本书 在以下代码中: p

我试图了解如何使用,并有几个问题

以下语句中的
20
是什么意思

P, R = mdptoolbox.example.forest(10, 20, is_sparse=False)
我知道这里的
10
表示可能的状态数。这里的
20
是什么意思?它是否表示每个州的操作总数?我想将MDP限制为每个州仅执行2个操作。我怎么能这样做


上面返回的
p
的形状是
(2,10,10)
2
在这里代表什么?无论我对总状态和操作使用什么值,您运行的代码始终是正确的,但您使用的是工具箱中的示例

请仔细阅读这本书

在以下代码中:

p,R=mdptoolbox.example.forest(10,20,is\u sparse=False)

第二个参数不是MDP的操作参数。对第二个论点的解释如下:

当森林处于最古老的状态并执行“等待”操作时,奖励。默认值:4

在您的情况下,当林处于最旧状态并且执行操作
Wait
时,奖励的值作为
20
传递

在本例中,林由两个操作管理:
'Wait'
'Cut'
。请参阅此以了解更多详细信息。由于可能有两个动作,因此该函数返回的转移概率矩阵
P
的第一维度大小也为
2
。无需手动将操作空间维度限制为
2


要了解此工具箱的使用,您还应该仔细阅读。

您看过文档了吗?@roganjosh是的,我也分享了问题中的链接。但是仍然有混淆。好的,那么这两个动作
等待
剪切
是每个状态的两个可用动作吗?是的,这两个动作每个状态都可用。当我将状态数保持为
2
时,概率矩阵形状是(2,2,2),看起来像。我无法理解此输出,也无法将其与返回的奖励矩阵相关联,该矩阵如下所示。您能解释一下吗?您的奖励矩阵的维度是
(state\u size,action\u size)
,即当您在某个状态下采取某项行动时收到的奖励。它给出了
(状态i,动作j)
的奖励
r(i,j)
的输出。您有
2个状态
2个动作
,因此有
(2,2)
奖励矩阵
R
。对于状态转换,您将获得维度矩阵
(状态大小、状态大小)
。因此,矩阵
P
的维度是
(动作大小、状态大小、状态大小)
。也就是说,在
状态下采取
操作后,可能会从
状态
变为
状态