首页 文章

什么寻路算法适用于小网格和硬编码点?

提问于
浏览
-2

我制作了一个A *探路者,看看它是否适用于我正在尝试做的事情,但我认为它不够好 .

我的网格不是太大而且有一些硬编码点,所以我要做的就是只检查硬编码点以找到它们之间的路径;例如:

┌──────────┐
│A        B│
├───────── │
│D        C│
└──────────┘

因此,从A点到D点,探路者功能应该告诉你从A - > B - > C - > D.

什么寻路算法适用于此?

1 回答

  • 2

    对于单个查询,A *可能与您可以做的一样好 .

    对于许多查询,您可以将网格转换为无向的加权图形,该图形仅由硬编码点组成,其中直接连接的点之间具有边缘,边缘权重是它们之间的距离 .

    对于您的示例,图形看起来像:

    9
    A --- B
          | 2
    D --- C
       9
    

    To construct this graph:

    对于每个点只能直接到达其他几个点的矩阵,每个点的breadth-first search可能是最好的选择 .

    如果任何一点可以得到许多其他点,那么我会想到一个算法或一些推导,尽管可能有更好的方法 .

    To use this graph:

    你可以在它上面运行A * .

    假设您存储每个点的坐标,您仍然可以使用Manhattan distance作为启发式(假设您之前使用过) .

相关问题