![]() |
1
1
老实说,我认为这取决于你希望你的近似值有多接近,以及你的子集有多大。如果您只想了解矩阵的整体外观,可以对随机子集(包括最大和最小节点)进行简单的线性插值,获得相当准确的(tm)结果。
我认为真正的诀窍是找出启发式(线性、二次等插值)和子集大小。您还可以计算出各种子集的距离矩阵,然后用某种方法(线性、球面线性、立方)对这些矩阵进行插值。 根据你最初的样本,这几乎是一个启发式的尝试和错误,直到你去“哦,那对我所需要的足够好了”。 如果你想了解矩阵的整体外观,你可以在一个随机子集上做简单的线性插值(包括最大和最小节点),得到相当精确的(tm)结果。
我认为真正的诀窍是找出启发式(线性、二次等插值)和子集大小。您还可以计算出各种子集的距离矩阵,然后用某种方法(线性、球面线性、立方)对这些矩阵进行插值。 根据你最初的样本,这几乎是一个启发式的尝试和错误,直到你去“哦,这足够好,我需要的”。 |
![]() |
3
1
您需要的解决方案与我们在图中常见的类似,您可以使用 All pair shortest path 为了找到距离,你也可以看看 johnson's algorithm |
![]() |
4
0
我也有同样的问题,最后为它编写了python代码: https://github.com/jpeterbaker/lazyDistance readme.md解释了如何使用三角形不等式更新每个距离的上限和下限。 只需在二维空间中以脚本的形式运行python文件即可。绘制的线是实际计算的唯一距离。 在我的版本中,节省的时间不在于拥有大量对象。正如我写的,这是一个O(n^4)算法,所以它实际上比计算所有距离(如果对象数量很大)更糟糕。但是我的方法会节省时间,当你有一个适度的对象数量和距离函数是非常昂贵的计算。它假设多个O(n^2)操作比单个距离测量更快。 如果n是大的,您可以寻找更便宜的方法来决定下一步要计算的距离(不包括带有n^2个距离边界矩阵条目的算术)。每次执行此代码时,也可能不需要更新所有2*n^2边界。 |
|
Cas · 自动制动系统激光雷达传感器的速度测量 7 年前 |
![]() |
Lisarv · 按组列出的所有可能坐标对之间的最大距离 7 年前 |
|
N. Anderson · 计算R中一系列x-y坐标之间的距离 7 年前 |
![]() |
Quinn · 查找多个点之间的最短距离 7 年前 |
![]() |
Redeemer · Redis。不同键中两个成员之间的距离 7 年前 |
![]() |
Jeroen van Onzen · 单个对象的最小屏幕宽度 7 年前 |
![]() |
V. Andy · 使用Python[闭合]计算两个坐标之间的距离 8 年前 |