具有指定目标的A星级搜索算法非常简单。但是,如果图中有多个目标,该怎么办。例如; 您可能想找到必须包含先前指定的节点的最短路径。这里的约束条件是您的路径必须包含A,B和C个节点(或更多),而不仅仅是找到指向节点A或B或C的路径。当然,该图包括一个或多个A,B,C类型的节点。因此,存在一个问题,如何 使 A star搜索算法适用于 多个目标 ?
编辑:我们可以访问多个节点。
您是在描述路径条件而不是目标条件。像所有搜索算法一样,A *正在寻找通往目标的路径[可以在目标集中,没有问题]。
您的问题(对于一般情况)至少与Traveling Salesman问题一样困难,因此,该问题是NP- Hard。
简化很简单:给定一个TSP实例- 找到从某点v到某点的最短路径,以v使该路径通过所有顶点[约束]。您可以通过简单地用不同的标记标记每个顶点来做到这一点。
v
但是请注意,该A*算法在 目标顶点集中 找到一条顶点的最短路径没有问题。请记住,A 是基于Dijkstra的Algorithm的,该算法从单个源查找到 所有顶点的* 最短路径。
A*