【问题标题】:Shortest path between two points in coordinates system坐标系中两点之间的最短路径
【发布时间】:2017-02-06 05:27:24
【问题描述】:

我有两个点 A 和 B。我想找到从 A 到 B 的最短路径,但是有 N 个(最多 200 个)矩形,并且路径不能与这些矩形中的任何一个相交。路径和矩形只能在矩形的顶点和矩形的边处相交。最短路径的长度是多少?矩形不能相交。他们可以分享观点或一方。因此,如果其中有两个共享一侧,那么您可以在它们之间传递。

【问题讨论】:

标签: algorithm geometry shortest-path path-finding


【解决方案1】:

通常,解决这类问题的最佳算法是A*,使用像Manhattan Distance 这样的简单启发式算法。但首先你应该找到非法点。非法点是您无法在此问题中输入的点,矩形内的点是非法的(位于矩形边上的点是合法的,因为您可以通过它们)。找到这些点后,只需执行 A* 算法即可找到 AB 之间的最短路径。

请注意,由于此问题中没有边权重,您可以简单地运行 BFS 来找到最短路径,但它不会像 A* 那样快。

如果您的搜索空间很大并且使用 A* 时内存不足,您应该考虑使用 IDA*,它消耗的内存更少,但会多次探索节点。

【讨论】:

    猜你喜欢
    • 2022-01-06
    • 1970-01-01
    • 2016-03-04
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-15
    相关资源
    最近更新 更多