2024-05-14 19:51:24 发布
网友
考虑一个标准的7*6板。假设我想应用Q学习算法。为了应用它,我需要一套所有可能的状态和动作。可能有3^(7*6)=150094635296999121。因为储存这些是不可行的,我只考虑合法的国家。在
如何为所有的法律状态和行为生成Q(s,a)?在
这不是我的家庭作业。我正在学习强化算法。我从两天起就一直在找这个。我最接近的是只考虑合法国家。在
您需要设置3个流程。一个是生成下一个移动,一个是改变移动方向,最后通过一系列检查来评估一个4x4块是否是赢家。Numpy和scipy会帮忙的。在
设置一个由零组成的Numpy数组。对于玩家1的移动,将数字更改为1;对于玩家2完成的移动,将数字更改为-1。4x4检查是在x轴上求和,然后在y轴上求和,如果abs(sum(axis))==4,则在结束之前生成板。在
这可能会根据实现创建重复项,因此在最后将所有这些项放在一个集合中。在
**根据评论和问题修改进行编辑。在
您需要使用生成器并进行深度优先搜索。对于任何一个有42次移动的状态,最多有7个可能的分支。你只需要寻找输赢的州来存储(不要保存僵局,因为它们占用了最多的记忆)。州将有2套位置,每个玩家一套。 当您向前一步并找到一个胜负状态时,将该状态与值一起存储,后退到上一步,并更新存储该状态的值。在
有144种可能的输赢方式,我不知道每种方式有多少种。所以我不知道你离胜利还有多少步要储存。在
您需要设置3个流程。一个是生成下一个移动,一个是改变移动方向,最后通过一系列检查来评估一个4x4块是否是赢家。Numpy和scipy会帮忙的。在
设置一个由零组成的Numpy数组。对于玩家1的移动,将数字更改为1;对于玩家2完成的移动,将数字更改为-1。4x4检查是在x轴上求和,然后在y轴上求和,如果abs(sum(axis))==4,则在结束之前生成板。在
这可能会根据实现创建重复项,因此在最后将所有这些项放在一个集合中。在
**根据评论和问题修改进行编辑。在
您需要使用生成器并进行深度优先搜索。对于任何一个有42次移动的状态,最多有7个可能的分支。你只需要寻找输赢的州来存储(不要保存僵局,因为它们占用了最多的记忆)。州将有2套位置,每个玩家一套。 当您向前一步并找到一个胜负状态时,将该状态与值一起存储,后退到上一步,并更新存储该状态的值。在
有144种可能的输赢方式,我不知道每种方式有多少种。所以我不知道你离胜利还有多少步要储存。在
相关问题 更多 >
编程相关推荐