关于Uniform Cost Search(UCS)重复节点处理的疑问
Uniform Cost Search(UCS)节点处理疑问解答
- 明确结论:不需要将(V2,9)加入Open节点
- 核心逻辑:
UCS的核心是始终优先扩展当前代价最低的节点,Closed集合的作用是存放已经找到最小代价路径的节点。当(V2,6)被加入Closed时,说明我们已经找到了到达V2的最优路径(代价6),任何后续生成的到达V2的路径(比如代价9、12),其代价都比6高,不可能成为更优的路径,因此这类节点没有继续处理的价值。 - 推演时的节点处理规则:
当生成一个新的(节点,代价)对时,按以下逻辑判断:- 若该节点既不在Open也不在Closed:将其加入Open集合
- 若该节点在Open集合中,且当前生成的代价比Open中已有的该节点代价更低:替换Open中该节点的代价为更低的那个
- 若该节点已经在Closed集合中:直接丢弃这个新生成的节点,因为Closed里的路径已是最优,更高代价的路径无法带来更优结果
内容的提问来源于stack exchange,提问作者Muhammad Uzair Kabeer
相关产品推荐
相关产品推荐

