创建具有特定要求的几个最小生成树

时间:2018-03-16 13:54:13

标签: algorithm graph-theory minimum-spanning-tree

我有一个无向图,其中包含几个类型为A的节点和一些类型为B的节点。我需要创建一个图形(不一定全局连接),以便每个类型A节点连接(通过任意数量的边)到至少一个B类节点。所有边缘都有重量。我想创建一个满足这个条件的MST,但我想不出最好的算法来做到这一点。

让我澄清一下。如果我有一个B型节点,那么我需要做的就是正常创建一个MST。但由于我有多个B类节点,因此可能有一种更有效的方法来创建一个MST,它不需要我连接图中的所有顶点。例如,如果它不是任何类型A节点的最便宜连接,我可以选择忽略B类节点。最后,我可能会有一个图表,其中包含多个断开连接的MST,而不仅仅是一个。

这样做的最佳算法是什么?

1 个答案:

答案 0 :(得分:1)

迭代这个过程:

  1. 找到将类型A节点连接到B类节点的最便宜的连接。
  2. 将A节点的标签更改为B。
  3. 重复,直到没有更多的A节点。
  4. 请注意您的问题的一个重要属性:任何最小解决方案都必须让每个A节点连接到完全一个B节点。