我正在尝试在Java中实现 A *搜索算法,我有一个问题:
我需要运行A *循环多少次,直到显然没有现有路径?
例如:如果我有一个for循环; “i”应该增多多久?
答案 0 :(得分:2)
当您探索了使用A *可以到达的所有节点时,如果没有找到目标,那么您可以假设没有路径。
答案 1 :(得分:1)
我认为你正在考虑A *错误的方式。 您运行它直到没有更多节点要搜索。如果到目前为止还没有达到你的目标,那就没有路径了。
的伪:
//Our list of still open nodes
List<Node> nodesToSearch = new List<Node>();
while (nodesToSearch.Count > 0)
{
//SearchNode, if its our target we are done
//Add reachable neighbours to the list of nodes to search. So next iteration we will continue on searching those
//Remove current node.. since its searched
}
//If we end up here without a target there is no path.
//That means we have searched all nodes and their neighbours etc etc etc. Without reaching the target.