连接点集的算法?

时间:2013-12-08 16:42:29

标签: algorithm math geometry

假设在真实平面中给出了一组N个点(xi,yi)。

我们希望将它们与任意数量的线连接起来,这样对于每对点A,B,都有一条从A到B的路径(可能间接地通过另一个点) - 并且线的总长度是最小的

例如,假设这些是沙漠中的城镇,我们正在建设一个道路网络。我们希望使用最少量的材料来建造道路,但仍然可以通过公路到达每个城镇。

对于N = 2,解决方案当然只是两点之间的线段:

+------------------+

对于N = 3,假设点是共线的,那么解是一个线段:

+------+-----------+

对于N = 3,假设点将形成等边三角形的顶点,那么我们将在中心添加一个点,然后构造三个线段,将新的中心点连接到三个点中的每一个:

         +
         |
         |
        / \
       /   \
      /     \
     +       +

我确信问题及其解决方案应该得到很好的研究。问题和/或算法是否有名称?

1 个答案:

答案 0 :(得分:2)

好吧,从来没有人放弃轻松的代表...

考虑the Steiner tree problem似乎比最小生成树更密切地描述您的问题。引用那篇文章:

  

Steiner树问题与最小值之间的差异   生成树问题是,在Steiner树问题中,额外的   可以将中间顶点和边缘添加到图形中以便   减少生成树的长度。