【问题标题】:Identify duplicate states in a state space tree识别状态空间树中的重复状态
【发布时间】:2017-10-08 11:46:04
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: artificial-intelligence


    【解决方案1】:

    为了完整起见,我想发布我自己问题的答案。我最终在从根向下的路径上触及的每个节点中设置了一个访问位,如果我曾经访问过一个设置了已访问标志的节点,我会得出结论,这是一个循环,这是正常的方式。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      • 2017-07-20
      • 2017-06-23
      • 2012-07-01
      • 1970-01-01
      • 2020-09-01
      • 1970-01-01
      相关资源
      最近更新 更多