我有几个关于在图表/树中搜索的问题:
假设我有一个空棋盘,我想将棋子从 A 点移动到 B 点。
A. 当使用深度优先搜索或广度优先搜索时,我们必须使用开放列表和封闭列表吗?这是一个包含所有要检查的元素的列表,以及已经检查过的所有其他元素的列表?甚至可以在没有这些列表的情况下做到这一点吗?A*呢,需要吗?
B. 使用列表时,找到解决方案后,如何获得从 A 到 B 的状态序列?我假设当您在打开和关闭列表中有项目时,不仅仅是具有 (x, y) 状态,而是具有由 (x, y, parent_of_this_node) 形成的“扩展状态”?
C. 状态 A 有 4 种可能的移动方式(右、左、上、下)。如果我先左移,我应该让它在下一个状态回到原来的状态吗?这,就是,做“正确”的举动吗?如果不是,我是否必须每次都遍历搜索树以检查我去过哪些州?
D. 当我在树上看到我已经去过的状态时,我是否应该忽略它,因为我知道这是一条死胡同?我想要做到这一点,我必须始终保留访问状态的列表,对吗?
E. 搜索树和图有什么区别吗?它们只是看待同一事物的不同方式吗?