gpt4 book ai didi

algorithm - 在图中找到最近的边

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:20:10 24 4
gpt4 key购买 nike

我想在图中找到最近的边。考虑以下示例: yellow: vertices, black: edges, blue: query-point

图 1:黄色: 顶点,黑色: 边,蓝色: 查询点

一般信息:该图包含大约 1000 万个顶点 和大约 1500 万个边。每个顶点都有坐标。边由两个相邻的顶点定义。

最简单的解决方案:我可以简单地计算从查询点到图中所有其他边的距离,但这会非常慢。

思路与难点:我的想法是使用一些空间索引来加速查询。我已经实现了一个 kd-tree 来找到最近的顶点。但如图 1 所示,入射到最近顶点的边不一定最接近查询点。我会得到边缘 3-4 而不是更近的边缘 7-8

问题:是否有一种算法可以找到图中最近的边?

最佳答案

一个非常简单的解决方案(但可能不是复杂度最低的解决方案)是使用 quad tree基于边界框的所有边缘。然后,您只需提取离查询点最近的边集并迭代它们以找到最近的边。

四叉树返回的提取边集应该比原来的 1500 万条边小很多倍,因此迭代的成本要低得多。

四叉树是一种比 R 树更简单的数据结构。它相当普遍,在许多环境中应该很容易获得。例如,在 Java 中 JTS Topology Suite有一个结构 QuadTree 可以很容易地包装来执行这个任务。

关于algorithm - 在图中找到最近的边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19892564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com