问题: 我有两个网络文件(比如 NET1 和 NET2)——每个都有一组节点,每个节点都有唯一的 ID 和地理坐标 X 和 Y。NET2 中的每个节点都有n 个连接到 NET1 和 ID n 个节点将由最小直线距离确定。输出将具有 NET1、NET2 中节点的三个字段 ID 以及它们之间的距离。所有文件均采用制表符分隔格式。
前进的一种方法.. 一种实现方法是针对 NET2 中的每个节点,我们循环遍历 NET1 中的每个节点并计算所有 NET1-NET2 距离组合。按 NET2 节点 ID 和距离对其进行排序,并写出每个节点的前四个记录。但问题是 NET1 上有接近 200 万个节点,NET2 中有 2000 个节点——即在该算法的第一步中要计算和编写 40 亿个距离……而且运行时间非常令人生畏!
要求: 我很好奇你们中是否有人遇到过类似的问题。我很想听听大家关于可用于加速处理的任何算法和数据结构的信息。我知道这个问题的范围非常广泛,但我希望有人能指出正确的方法,因为我在优化这种规模数据的代码方面的经验非常有限。
语言: 我正在尝试使用 C++、Python 和 R。
请提出想法!非常感谢帮助!