主要内容

graphconncomp.

在图中找到强烈或弱连接的组件

句法

[S.C] = graphconncomp(G
[S.C] = graphconncomp(G,......'指示',潜艇,......)
[S.C] = graphconncomp(G, ...'虚弱的',弱势,......)

争论

G 表示图形的n-by-n稀疏矩阵。矩阵中的非零条目G表示存在边缘。
潜艇 表示图表是否有针对性的属性。进入错误的对于一个无向图。这导致稀疏矩阵的上三角形忽略。默认为真的

基于DFS的算法计算连接的组件。时间复杂性是o(n + e), 在哪里NE.是节点和边缘的数量。

弱势 属性,指示是否找到弱连接的组件或强连接的组件。弱连接的组件是通过违反边缘方向而相互达到的最大节点组。放弱势真的找到弱连接的组件。默认为错误的,找到强大连接的组件。该参数的状态对无向图形没有影响,因为在无向图形中弱和强连接的组件相同。时间复杂性是o(n + e), 在哪里NE.是节点和边缘的数量。

描述

小费

有关图形理论功能的介绍信息,请参阅图论函数

[S.C] = graphconncomp(G找到由矩阵表示的图表的强连接组件G使用Tarjan的算法。强连接的组件是在不违反边缘方向的情况下相互可到达的最大节点组。输入G是表示图形的n个逐个稀疏矩阵。矩阵中的非零条目G表示存在边缘。

找到的组件数量返回S., 和C是指示每个节点所属的组件的矢量。

tarjan的算法有时间复杂性o(n + e), 在哪里NE.是节点和边缘的数量。

[S.C] = graphconncomp(G,......propertyname.',适当的价值,......)呼叫graphconncomp.具有使用属性名称/属性值对的可选属性。您可以按任何顺序指定一个或多个属性。每个propertyname.必须用单引号括起来,不论不敏感。这些属性名称/属性值对如下:

[S.C] = graphconncomp(G,......'指示',潜艇,......)指示图形是针对还是无向。放潜艇错误的对于一个无向图。这导致稀疏矩阵的上三角形忽略。默认为真的。基于DFS的算法计算连接的组件。时间复杂性是o(n + e), 在哪里NE.是节点和边缘的数量。

[S.C] = graphconncomp(G, ...'虚弱的',弱势,......)指示是否找到弱连接的组件或强连接的组件。弱连接的组件是通过违反边缘方向而相互达到的最大节点组。放弱势真的找到弱连接的组件。默认为错误的,找到强大连接的组件。该参数的状态对无向图形没有影响,因为在无向图形中弱和强连接的组件相同。时间复杂性是o(n + e), 在哪里NE.是节点和边缘的数量。

笔记

根据定义,单个节点可以是强连接的组件。

笔记

定向的无循环图(DAG)不能具有大于1的强连接的组件。

例子

  1. 创建和查看具有10个节点和17个边的定向图。

    dg =稀疏([1 1 1 2 2 3 3 4 5 6 7 7 8 9 9 9 9],......[2 6 8 3 1 4 2 5 4 7 6 4 9 8 10 5 3],True,10,10)Dg =(2,1)1(1,2)1(3,2)1(2,3)1(9,3)1(3,4)1(5,4)1(7,4)1(4,5)1(9,5)1(1,6)1(7,6)1(6,7)1(1,8)1(9,8)1(8,9)1(9,10)1 H =视图(传记(DG));

  2. 找到有关图表中的强连接组件的数量,并确定每个节点中的每一个所属的组件。

    [s,c] = graphconncomp(dg)s = 4 c = 4 4 4 4 1 1 2 2 4 4 4 3
  3. 以不同的颜色为每个组件的节点彩色。

    颜色=喷气式飞机;为了i = 1:numel(h.nodes)h.nodes(i).color =颜色(c(i),:);结尾

参考

[1] Tarjan,R.E.,(1972)。深度第一搜索和线性图形算法。暹罗杂志计算1(2),146-160。

[2] Sedgewick,R.,(2002)。C ++中的算法,第5部分图算法(Addison-Wesley)。

[3] Siek,J.G.,Lee,L-Q和Lumsdaine,A.(2002)。Boost Graph Library用户指南和参考手册(Upper Saddle River,NJ:Pearson教育)。