1

我有一个具有多个栖息地的景观(即具有不同 ID 的多边形)。每个栖息地多边形都由几个补丁组成。此外,每个栖息地多边形都有相关的成本。我想获得包含乌龟的多边形与包含乌龟的多边形周围 2 公里缓冲区中的所有多边形之间的成本最低的路径。

第一次,我想使用 NW 扩展的“加权距离”。根据与此原语相关的示例,我应该在包含海龟的多边形和 2 公里缓冲区中的所有多边形之间创建一个链接,然后我应该为链接分配一个权重值。在示例中,两个海龟之间的每个链接都分配给用户定义的一个权重值。在我的情况下,当一个链接跨越不同的栖息地时,是否可以计算一个权重值等于沿着通往 2 公里缓冲区中的一个多边形的路径的累积成本?

非常感谢您的帮助。

4

1 回答 1

1

听起来您可以创建 Dijkstra 最短路径算法的一个很酷的变体。

http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm

如果您将所有生成的路径保留在按长度排序的 TreeSet 中,则拉出当前最短路径,使用尚未访问的所有可能多边形扩展它,并将这些解决方案推送到 TreeSet 中。如果从一个多边形移动到周围的多边形,您只能以高于或等于迄今为止找到的最短路线的成本移动到周围的多边形,您可以放弃该路线。这样,您只扩展最短路径,生成广度优先搜索最近的海龟,同时截断永远不会起作用的可能性。

祝你好运!

于 2013-10-02T20:17:34.770 回答