给定一组笛卡尔点,找出连接所有点的最短总长度网络

2024-06-02 23:11:49 发布

您现在位置:Python中文网/ 问答频道 /正文

(为了透明起见,我想马上提到这是一个家庭作业问题)

我有一组(x,y)点,包括一个特定的起点。我想找到总长度最短的网络,这样每个点都可以从起点到达

我知道这反映了图中的MST,但问题是这些点不是在图中排列的,而是不相连的。我知道我可以通过将每个点连接到其他点并运行Prim-Jarnik来找到一个有效的MST,但是在这种情况下,仅仅创建一个图对于集合中的点数是O(n^2),对吗

我已经找到了a similar question,但是它建议使用Delaunay三角剖分来从点创建一个图,然后在上面运行Prim-Jarnik。我很确定这超出了我的课程对我的期望,因为这是一门介绍算法/数据结构的课程,而且从来没有提到过

有没有比在n^2时间内创建一个图,然后运行Prim-Jarnik(没有高级几何)更有效的方法来找到解决方案,或者这是我们能做的最好的方法


Tags: 方法网络情况建议delaunay课程similarquestion