Python 欧氏最小生成树与Delaunay三角剖分

Python 欧氏最小生成树与Delaunay三角剖分,python,euclidean-distance,minimum-spanning-tree,delaunay,Python,Euclidean Distance,Minimum Spanning Tree,Delaunay,我想根据二维平面上一组点之间的欧几里德距离计算最小生成树。我当前的代码存储所有的边,然后执行Prim算法以获得最小生成树。但是,我知道这样做会占用所有边的O(n^2)空间 在做了一些研究之后,很明显,如果我首先在这组点上计算delaunay三角剖分,然后通过在三角剖分的边上运行Prim或Kruskal算法获得最小生成树,那么内存和运行时间就可以优化 这是编程竞赛()的一部分,所以我怀疑我是否能够使用scipy.spatial。是否有其他方法可以简单地获取Delaunay三角剖分中包含的边 提前谢

我想根据二维平面上一组点之间的欧几里德距离计算最小生成树。我当前的代码存储所有的边,然后执行Prim算法以获得最小生成树。但是,我知道这样做会占用所有边的
O(n^2)
空间

在做了一些研究之后,很明显,如果我首先在这组点上计算delaunay三角剖分,然后通过在三角剖分的边上运行Prim或Kruskal算法获得最小生成树,那么内存和运行时间就可以优化

这是编程竞赛()的一部分,所以我怀疑我是否能够使用scipy.spatial。是否有其他方法可以简单地获取Delaunay三角剖分中包含的边


提前谢谢。

模块有帮助吗?以下是一些可能有效的方法:

你自己滚?这两种方法都描述了增量算法,似乎是O(n logn):


这可能有助于入门,但它似乎还没有完成。

看起来Scipy使用了QHull,它。。在这个文件夹的某个地方。。。有执行delaunay三角剖分和获取边的代码(尽管是用C实现的)


没问题,希望Wildwillhelm的回答会有所帮助!看起来他找到了算法的抽象描述。是的,你的两个答案对我都有帮助,所以这里是向上投票,谢谢!