![]() |
1
1
你必须有一个条件,即权重不能为负,否则问题变得非常棘手。否则,它只是一个广度优先搜索,为每个访问的节点标记距离。所以你不必重新访问一个节点,因为之前的移动已经以较低的成本访问了它。 您保留了所有活动节点的优先级队列,因此每次都要检查成本最低的节点。事实上,优先级队列是最难正确处理的部分。如果你检查我的二进制图像库的A*算法 https://github.com/MalcolmMcLean/binaryimagelibrary 你可以在那里排队。迷宫上的*非常类似于图上的最短路径,但你没有启发式,因为你必须有精确的最短路径,而不是每个图块有4/8条边,你有具有任意数量连接的节点。 |
![]() |
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 5 月前 |
![]() |
Alisa Petrova · 在有向图中更改一对顶点以创建循环 5 月前 |
![]() |
b39b332d · 使用C++标准库实现高效间隔存储 9 月前 |
![]() |
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 10 月前 |
![]() |
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 10 月前 |