【发布时间】:2016-10-04 14:27:09
【问题描述】:
我试图了解 A*、统一成本和贪婪搜索算法的工作原理。我知道在所有 3 种算法中探索节点的方式都发生了变化(贪婪将基于启发式值进行探索,A* 基于启发式加距离,统一基于距离)。
我想知道对于给定的来源和目的地,是否应该所有 3 种算法都提供最短路径(仅探索不同数量的城市?)或者它们是否可以提供不同的路径。
我主要是因为实现部分而感到困惑 - 如果您将节点存储在队列中,那么当您即将探索目标节点时,您将拥有最短的路径,但如果您有路径队列(并且这个队列是现在根据启发式 + 距离排序),那么您可能并不总是得到最短路径。
【问题讨论】: