繁体   English   中英

A *(A Star)算法输出所有可能的解决方案

[英]A* (A Star) Algorithm outputting all possible solutions

已知A星算法是完整的。 但是,我在网上搜索的所有实现似乎只返回第一个(最佳)解决方案。

例如,这个实现: 一个明星算法实现

由于算法总是扩展具有最小f值的节点,并且当第一个节点是解决方案时实现似乎停止,如何调整上述代码以便输出导致a的所有(或前n个 )路径目标,没有考虑重复的操作(即一遍又一遍地包含相同操作的路径)?

它是完整的,这意味着它将找到一个解决方案,如果存在,但算法专门只返回一个路径。 广度优先搜索将找到两个节点之间的所有非循环路径,但是: http//en.wikipedia.org/wiki/Breadth-first_search

更新 - 这是k-最短路径算法,它将以最短到最长的顺序返回n(或在这种情况下,k)最短路径的列表。 http://code.google.com/p/k-shortest-paths/

对于所有路径,使用呼吸优先搜索可能更有意义。 或者,如果要查找前n个最短路径,可以尝试使用Dijkstra算法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM