如何生成connect four的所有legal stateaction对?

2024-05-14 19:51:24 发布

您现在位置:Python中文网/ 问答频道 /正文

考虑一个标准的7*6板。假设我想应用Q学习算法。为了应用它,我需要一套所有可能的状态和动作。可能有3^(7*6)=150094635296999121。因为储存这些是不可行的,我只考虑合法的国家。在

如何为所有的法律状态和行为生成Q(s,a)?在

这不是我的家庭作业。我正在学习强化算法。我从两天起就一直在找这个。我最接近的是只考虑合法国家。在


Tags: 算法标准状态国家储存法律家庭作业动作
1条回答
网友
1楼 · 发布于 2024-05-14 19:51:24

您需要设置3个流程。一个是生成下一个移动,一个是改变移动方向,最后通过一系列检查来评估一个4x4块是否是赢家。Numpy和scipy会帮忙的。在

设置一个由零组成的Numpy数组。对于玩家1的移动,将数字更改为1;对于玩家2完成的移动,将数字更改为-1。4x4检查是在x轴上求和,然后在y轴上求和,如果abs(sum(axis))==4,则在结束之前生成板。在

这可能会根据实现创建重复项,因此在最后将所有这些项放在一个集合中。在

**根据评论和问题修改进行编辑。在

您需要使用生成器并进行深度优先搜索。对于任何一个有42次移动的状态,最多有7个可能的分支。你只需要寻找输赢的州来存储(不要保存僵局,因为它们占用了最多的记忆)。州将有2套位置,每个玩家一套。 当您向前一步并找到一个胜负状态时,将该状态与值一起存储,后退到上一步,并更新存储该状态的值。在

有144种可能的输赢方式,我不知道每种方式有多少种。所以我不知道你离胜利还有多少步要储存。在

相关问题 更多 >

    热门问题