首页 文章

识别状态空间树中的重复状态

提问于
浏览
0

我一直在阅读这个问题以供参考:Graph Search vs Tree Search

其中一位评论者发表了这一评论,这正是我所面临的情况 .

“通过树搜索可以多次访问'单一状态',而不是节点,这是更正式的 . 因为搜索树中的每个节点都对应于状态空间图中的单个路径,并且最多访问一次通过树搜索 . “

我的搜索算法生成的节点与搜索树中已有的节点相同 . 检测这个新生成的状态已经存在的最佳方法是什么,所以我可以避免进入无限循环?我不能使用封闭列表,需要对DFS进行循环检测 . 做这个的最好方式是什么?这是我在AI课程中的一个作业问题,我正在为练习做 . 这不是为了提交 . 出于好奇,我正在 Build 代理商 . 任何帮助表示赞赏

1 回答

  • 0

    为了完整起见,我想回答我自己的问题 . 我最终在每个节点中设置了一个访问位,我触及了从根向下的路径,并且如果我访问了一个设置了访问标志的节点,这将是一个循环,这是正常的方式 .

    我基本上有一堆被称为“顶点”和“边缘”的对象,它们位于这些顶点之间,如果我曾经遍历一个边缘,另一端是一个顶点,我设置了访问标志,我知道有一个在代码中循环 . 如在另一个链接中所提到的,每个节点基本上是具有不同状态对象的新对象,但是状态对象基本上表示代理之前已经存在的位置,并且我们希望避免生成该重复节点 .

相关问题