Python 欧氏最小生成树与Delaunay三角剖分
我想根据二维平面上一组点之间的欧几里德距离计算最小生成树。我当前的代码存储所有的边,然后执行Prim算法以获得最小生成树。但是,我知道这样做会占用所有边的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三角剖分中包含的边 提前谢
O(n^2)
空间
在做了一些研究之后,很明显,如果我首先在这组点上计算delaunay三角剖分,然后通过在三角剖分的边上运行Prim或Kruskal算法获得最小生成树,那么内存和运行时间就可以优化
这是编程竞赛()的一部分,所以我怀疑我是否能够使用scipy.spatial。是否有其他方法可以简单地获取Delaunay三角剖分中包含的边
提前谢谢。模块有帮助吗?以下是一些可能有效的方法:
这可能有助于入门,但它似乎还没有完成。看起来Scipy使用了QHull,它。。在这个文件夹的某个地方。。。有执行delaunay三角剖分和获取边的代码(尽管是用C实现的)
没问题,希望Wildwillhelm的回答会有所帮助!看起来他找到了算法的抽象描述。是的,你的两个答案对我都有帮助,所以这里是向上投票,谢谢!