0

我正在做 unifrom 成本搜索算法。我的解决方案比实际的要大一些。扩展节点的数量越来越多。

我使用了这个算法:

获取初始节点并将其放入优先队列。P.queue 将自己根据成本安排其中的节点。成本较低的节点将首先出现。

使用while循环,直到队列为空。

从队列中删除一个节点并检查它是否是目标状态。如果没有,请检查它是否在访问列表中。访问列表是一个集合,其中包含所有已展开的节点。如果访问列表中不存在,则获取其后继者以及成本和操作。

计算到此节点的成本。

如果后继节点的成本大于父节点的成本,则将其添加到队列中并检查该后继节点是否在父目录中。如果没有,让他成为一个明显的人,这样我们就可以原路返回。

我的算法是正确的还是我需要检查其他东西:

4

1 回答 1

2

看来您正在实施具有优先级队列的Dijkstra 。但由于成本是统一的,BFS就足够了。

于 2010-07-22T18:57:05.317 回答