2015-11-25 115 views
1

我有一个邻接矩阵,我似乎无法找到一个快速的方法来组合多个节点,以了解最终数量的“超级节点”。我认为一个简单的解决方案是基本上计算邻接矩阵的上三角部分的总和,并减去节点总数减去前面的总和将给我答案,但看起来有点棘手。如何合并节点给定一个邻接矩阵

假设:

我有1至6个6个节点: 节点1,2,3被连接到所有彼此。 节点4和6彼此连接, 节点5没有连接任何东西。

在这一点上,似乎微不足道的6个初始节点,我将只剩下3个超级节点。现在使用我的方法之前的问题是,假设第一个超级节点如此连接: 1到2 2到3, 但不是1到3直接。 (即使它们合并)。 (upptriangle(Adj))= 3,但是对于第一种情况,我添加了一个“虚节点”(连接1-3)输出:sum(upptriangle(Adj))= 4,并且这个连接类型不应影响最终结果。

是否存在我缺少的标准算法来解决此问题(并补偿非完全连接的子图的过度完整?),而不是迭代地遍历每个节点以查看它是否已合并?

换句话说,是否有快速的节点合并计算,我只能从邻接矩阵中获得?

+0

当你说“连接”,你的意思是“他们之间有边缘?”如在中,目标是确定有多少个不同的连接组件? – templatetypedef

+0

@templatetypedef基本上是。 – Arturo

+0

请参见[here](http://stackoverflow.com/questions/8124626/finding-connected-components-of-adjacency-matrix-graph)和[here](http://stackoverflow.com/questions/8124626/查找连接元件的邻接矩阵图) – Imran

回答