【发布时间】:2020-05-12 11:04:27
【问题描述】:
我认为这是深度优先搜索(但这可能会陷入循环),所以我认为这不是最好的算法。 a*,统一成本,......或者呼吸优先搜索是否有机会成为最好的搜索算法?
【问题讨论】:
-
任何跟踪访问状态(从而避免循环)的搜索算法都应该这样做。
-
是的,但哪个是最好的?
标签: search artificial-intelligence
我认为这是深度优先搜索(但这可能会陷入循环),所以我认为这不是最好的算法。 a*,统一成本,......或者呼吸优先搜索是否有机会成为最好的搜索算法?
【问题讨论】:
标签: search artificial-intelligence
答案取决于您测量的内容。可能的衡量标准是运行时间、扩展/生成的节点、实现复杂性或其他。
我建议使用广度优先搜索 (BFS),因为它实现起来最简单,而且这个特定问题足够小,甚至可以通过 BFS 几乎立即解决。
另外,值得注意的是,BFS 与具有零启发式的 A* 不同。 BFS 可以在目标生成后立即终止,而 A* 在目标从 OPEN 中移除以进行扩展时终止。此外,A* 需要更复杂的数据结构,难以实现,而 BFS 可以使用简单的 FIFO 队列。
【讨论】: