【问题标题】:Creating several minimum spanning trees with specific requirements创建几个具有特定要求的最小生成树
【发布时间】:2018-03-16 13:54:12
【问题描述】:

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

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

执行此操作的最佳算法是什么?

【问题讨论】:

  • 你能澄清一下你的描述和/或添加一个例子吗?如果我理解得很好,一个 A 型节点需要连接到至少一个节点(A 型或 B 型,我们不在乎)。但是 B 类节点呢?
  • @DamienProt 帖子已经说过:该算法可以忽略 B 节点。我们只需要让每个连通图都至少包含一个 B 节点。

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


【解决方案1】:

遍历这个过程:

  1. 找到将 A 类节点连接到 B 类节点的成本最低的连接。
  2. 将该 A 节点的标签更改为类型 B。
  3. 重复直到没有更多的 A 节点。

请注意问题的一个重要属性:任何最小解决方案都必须让每个 A 节点恰好连接到一个 B 节点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多