【发布时间】:2017-01-03 19:09:23
【问题描述】:
我想根据二维平面上一组点之间的欧几里德距离计算最小生成树。我当前的代码存储所有边,然后执行 Prim 算法以获得最小生成树。但是,我知道这样做会占用所有边缘的O(n^2) 空间。
经过一些研究,很明显如果我首先在这组点上计算delaunay三角剖分,然后通过在三角剖分的边缘上运行Prim's或Kruskal's算法获得最小生成树,可以优化内存和运行时间.
这是编程竞赛 (https://prologin.org/train/2017/qualification/taxi_des_neiges) 的一部分,所以我怀疑我是否能够使用 scipy.spatial。是否有任何替代方法可以简单地获取 Delaunay 三角剖分中包含的边?
提前致谢。
【问题讨论】:
标签: python euclidean-distance minimum-spanning-tree delaunay