哪种寻路算法可以获得从 A 到 B 和 B 到 A 的相同路径?

Which pathfinding algorithm for getting same path from A to B and B to A?

我需要一个算法来计算在有障碍物的二维网格环境中从 A 到 B 和从 B 到 A 的完全相同的路径。

我尝试过 A* 算法,但在某些情况下它会计算出不同的路径(从 A 到 B,以及从 B 到 A)。

这些算法叫什么?你有什么建议?

谢谢

如果网格不是定向的,那么从A到B的每条路径都是从B到A的路径!

但是,您可以使用 bi-directional 搜索策略。您可以同时从 A 到 B 和 B 到 A 开始搜索。然后,在中间选择一条路径,某处A到B的路径,遇到一条B到A的路径。

对于所有可能的 A 和 B 对,仅计算 A < B 的情况的路径。假设 A 和 B 是一对 co-ordinates x 和 y。你可以这样比较:

bool isALessThanB(point A, point B):
    return (A.x < B.x) or (A.x == B.x and A.y < B.y)

因此,如果您需要一条从 B 到 A 的路径,只需取从 A 到 B 的路径并反转即可。