当兴趣点超过 2 个时,如何在 2d 网格上通过路径长度找到最等距的点?

问题描述

假设有一个已定义的二维正方形网格,其条件如下:

  • 这个网格的宽度和高度是有限的
  • 出于路径目的,每个网格位置都可以步行或不可步行
  • 在网格内移动的代理可以从一个位置移动到任何可步行的相邻位置,在 8 个方向上
  • 如果两个位置都可步行,则从一个位置移动到相邻位置的成本为 1
  • 此网格上至少有 2 个,但通常有更多兴趣点 (POI)
  • 每个 POI 都有一个保证有效的路径到网格上的每个其他 POI

当只有 2 个兴趣点时,很容易找到等距点,方法是找到一条从一个到另一个的路径,然后沿着这条路径取中间点。

我发现有效的方法是遍历网格上的每个可步行点,找到从该点到每个 POI 的路径,并评估每条路径的长度,并保存路径最相等的位置长度。这是相当繁重的操作,并且在寻路方面有优化的空间,例如从每个兴趣点进行洪水填充以使通往 POI 的路径只计算一次。

感觉可能有一种更高效的方法解决它,但我无法完全理解它。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)