我需要帮助来了解Demyen在他的论文《基于有效三角剖分的寻路》(第76-81页)中描述的Triangle A *(TA *)算法。
他描述了如何使常规A *算法适用于三角剖分,甚至在到达/扩展最终节点之后也可以搜索其他可能更理想的路径。当最终节点展开时,常规A *停止,但是在三角图中使用时,这并不总是最佳路径。这正是我遇到的问题。
第78页的图5.4中说明了此问题:
我了解如何计算论文中介绍的g和h值(第80页)。
而且我认为搜索停止条件是:
if (currentNode.fCost > shortestDistanceFound)
{
// stop
break;
}
其中,currentNode是从打开列表(优先级队列)中弹出的搜索节点,其f得分最低。shortestDistanceFound是到目前为止找到的最短路径的实际距离。
但是,如何从以后的搜索中排除以前找到的路径?因为如果再次进行搜索,显然会找到相同的路径。我是否要重置已关闭的列表?我需要修改某些内容,但是我不知道需要更改什么。该论文缺少伪代码,因此会有所帮助。