主要内容

conncomp

连通图组件

描述

例子

垃圾箱= conncomp (G返回连接组件的图G垃圾箱。bin编号表示图中的每个节点属于哪个组件。

  • 如果G为无向图,则如果有路径连接两个节点,则两个节点属于同一个组件。

  • 如果G是有向图,那么只有在两个方向上都有路径连接它们时,两个节点才属于同一个强分量。

例子

垃圾箱= conncomp (G名称,值使用由一个或多个名称-值对参数指定的附加选项。例如,conncomp (G, OutputForm”、“细胞”)返回描述连接组件的单元格数组。

垃圾箱binsizes) = conncomp (___也返回连接的组件的大小。binsizes(我)给出组件中的节点数

例子

全部折叠

创建并绘制一个无向图,其中包含三个相连的组件。使用conncomp来确定每个节点属于哪个组件。

G = graph([1 1 4],[2 3 5],[1 1 1],6);情节(G)

图中包含一个axes对象。axes对象包含一个graphplot类型的对象。

垃圾箱= conncomp (G)
垃圾箱=1×61 1 1 2 2 3

创建并绘制有向图,然后计算强连通分量和弱连通分量。弱连接组件忽略连接边的方向。

S = [1 2 2 3 3 3 4 5 5 5 8 8];T = [2 3 4 1 4 5 5 3 6 7 9 10];G =有向图(s, t);情节(G,“布局”“分层”

图中包含一个axes对象。axes对象包含一个graphplot类型的对象。

str_bins = conncomp (G)
str_bins =1×104 4 4 4 4 6 5 1 3 2
weak_bins = conncomp (G,“类型”“弱”
weak_bins =1×101 1 1 1 1 1 1 1 2 2 2

的第二个输出conncomp提取图的最大分量或删除小于一定大小的分量。

创建并绘制有向图。该图有一个大组件、一个小组件和几个只包含一个节点的组件。

S = [1 2 2 3 3 3 4 5 5 5 8 8 9];T = [2 3 4 1 4 5 5 3 6 7 9 10 10];G =有向图(s t [], 20);情节(G,“布局”“分层”

图中包含一个axes对象。axes对象包含一个graphplot类型的对象。

计算弱连接分量并指定两个输出conncomp得到每个组件的大小。

[本,binsize] = conncomp (G,“类型”“弱”
本=1×2011 11 11 2 2 2 3 4 5 6 7 8 9 10 11 12
binsize =1×127 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1

使用binsize从图中提取最大的分量。idx是一个逻辑索引,指示每个节点是否属于最大的组件。的子图函数提取所选择的节点idxG

Idx = binsize(bin) == max(binsize);SG =子图(G, idx);情节(SG)

图中包含一个axes对象。axes对象包含一个graphplot类型的对象。

类似的用法binsizes是根据尺寸过滤掉组件。该过程类似于提取最大的组件,但是在这种情况下,每个节点可以属于满足大小要求的任何组件。

过滤掉任何成分G少于3个节点的。idx是一个逻辑索引,指示每个节点是否属于具有3个或更多节点的组件。

Idx = binsize(bin) >= 3;SG =子图(G, idx);情节(SG)

图中包含一个axes对象。axes对象包含一个graphplot类型的对象。

输入参数

全部折叠

输入图形,指定为a有向图对象。使用创建无向图或有向图创建一个有向图。

例子:图G =(1、2)

例子:G =有向图([1 2],[2 3])

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

例子:垃圾箱= conncomp (G, OutputForm”,“细胞”)

输出类型,指定为逗号分隔的对,由“OutputForm”,要么“向量”“细胞”

选项 输出
“向量”(默认) 垃圾箱是一个数字向量,指示每个节点属于哪个连接组件。
“细胞” 垃圾箱是单元格数组,和垃圾箱{j}包含属于该组件的所有节点的节点idj

请注意

“类型”选项仅支持使用创建的有向图有向图

连接组件的类型,指定为逗号分隔的对,由“类型”,要么“强”(默认)或“弱”

选项 结果
“强”(默认) 只有在有路径连接它们时,两个节点才属于同一个连接组件这两个的方向。
“弱” 如果有路径连接两个节点,则两个节点属于同一个被连接组件,忽略边缘方向。

例子:垃圾箱= conncomp (G、“类型”、“弱”)计算有向图的弱连通分量G

输出参数

全部折叠

连接的组件,作为向量或单元格数组返回。bin编号将图中的每个节点分配给一个连接的组件:

  • 如果OutputForm“向量”(默认)垃圾箱是一个数字向量,指示每个节点属于哪个连接的组件(bin)。

  • 如果OutputForm“细胞”,然后垃圾箱是单元格数组,与垃圾箱{j}包含属于该组件的所有节点的节点idj

每个连接组件的大小,作为向量返回。binsizes(我)给出组件中元素的个数.的长度binsizes等于连接组件的数量,马克斯(箱)

更多关于

全部折叠

弱连接组件

如果有路径连接两个节点(忽略边缘方向),则两个节点属于同一个弱连接分量。两个弱连接的分量之间没有边。

强分量和弱分量的概念只适用于有向图,因为它们对无向图是等价的。

强连通分量

如果两个节点在两个方向上都有路径连接,则两个节点属于同一个强连通分量。两个强连接的组件之间可以有边,但这些连接的边从来不是循环的一部分。

强连接组件的仓号是这样的,连接两个组件的任何边都是从仓号较小的组件指向仓号较大的组件。

强分量和弱分量的概念只适用于有向图,因为它们对无向图是等价的。

扩展功能

版本历史

介绍了R2015b

另请参阅

||

Baidu
map