我有图像中的顶部图(无权无向图),我想找到一组节点(数量最少的节点),以便所有选定的节点(红色)都连接在一起。在这种情况下,我可以假设总是有一种方法可以到达“主节点”(大节点),这意味着总是有解决方案。我的解决方案如图像底部所示。是否有这种问题的算法?我对“图形场景”很新,找不到任何算法,也许是因为我缺乏描述我所寻找的内容的术语。
这里有一个答案,可能不是最优的但容易理解,并且可能足够满足你的需求。 使用Floyd-Warshall算法解决所有节点间最短路径问题。 以每个节点作为源节点,计算到每个红色节点的距离之和(如果存在无法到达的红色节点,则跳过源节点)。 主节点是第2步中距离之和最低的源节点。 这仅适用于无权图,也就是说距离等同于路径中的节点数。