主要内容

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

conncomp

グラフの連結要素

説明

箱子=conncomp(G)は、グラフG連結要素をビンとして返します。ビン番号はグラフの各ノードが属する要素を示します。

  • Gが無向グラフの場合、2.つのノードを連結する経路があれば、それらのノードは同じ要素に属します。

  • Gが有向グラフの場合、2.つのノードを双方向で連結する経路があるときに限り、それらのノードは同じ強要素に属します。

箱子=conncomp(G,名称、值)は、1.つ以上の名前と値のペアの引数で指定された追加のオプションを使用します。たとえば、连接组件(G,'OutputForm','cell')は連結要素を表す细胞配列を返します。

[箱子,垃圾箱]=conncomp(___)は連結要素のサイズも返します。(一)は、要素のノード数を返します。

すべて折りたたむ

連結要素を 3.つもつ無向グラフを作成してプロットします。conncompを使用して、各ノードが属する要素を求めます。

G=图([11 4],[23 5],[11],6);图(G)

箱子=连接件(G)
垃圾箱=1×61 1 1 2 2 3

有向グラフを作成してプロットし、強連結要素および弱連結要素を計算します。弱連結要素は、連結エッジの方向を無視します。

s=[1234345588];t=[2341455367910];G=有向图(s,t);绘图(G,“布局”,“分层”)

str_bins=conncomp(G)
垃圾桶=1×104 4 4 4 4 6 5 1 3 2
弱容器=连接件(G,“类型”,“弱”)
弱垃圾箱=1×101 1 1 1 1 1 1 2 2 2

conncompの 2.つ目の出力を使用して、グラフの最大要素を抽出するか、特定のサイズを下回る要素を削除します。

有向グラフを作成してプロットします。グラフには 1.つの大きな要素、1.つの小さい要素、および 1.つのノードのみを含む複数の要素があります。

s=[123439];t=[23414555369100];G=有向图(s,t,[],20);绘图(G,“布局”,“分层”)

弱連結要素を計算し、conncompに 2.つの出力を指定して各要素のサイズを取得します。

[bin,bin size]=conncomp(G,“类型”,“弱”)
垃圾箱=1×201 1 1 1 1 1 1 2 2 2 3 4 5 6 7 8 9 10 11 12
装箱=1×127 3 1 1 1 1 1 1 1 1 1 1

装箱を使用してグラフから最大要素を抽出します。idxは、各ノードが最大要素に属しているかどうかを示す論理インデックスです。関数子图は、idxで選択されたノードをGから抽出します。

idx=binsize(bin)==max(binsize);SG=子图(G,idx);绘图(SG)

垃圾箱の同様の使用方法として、サイズに基づいて要素をフィルターで除外することがあります。この手順は最大要素の抽出と似ていますが、この場合は、各ノードが、サイズ要件を満たすどの要素にも属することができます。

ノードの数が 3.未満のG内の要素をすべてフィルターで除外します。idxは、各ノードが 3.つ以上のノードをもつ要素に属するかどうかを示す論理インデックスです。

idx=binsize(bin)>=3;SG=子图(G,idx);绘图(SG)

入力引数

すべて折りたたむ

入力グラフ。图表オブジェクトまたは有向图オブジェクトとして指定します。無向グラフの作成には图表を、有向グラフの作成には有向图を使用します。

例:G=图(1,2)

例:G=有向图([12],[23])

名前と値のペアの引数

オプションの名称、值の引数ペアをコンマ区切りで指定します。名称は引数名で、价值は対応する値です。名称は引用符で囲まなければなりません。名称1,值1,…,名称,值のように、複数の名前と値のペアの引数を任意の順序で指定できます。

例:bins=conncomp(G,'OutputForm','cell')

出力のタイプ。“输出形式”“向量”または“细胞”のいずれかで構成されるコンマ区切りのペアとして指定します。

オプション 出力
“向量”(既定) 箱子は各ノードが属する連結要素を示す数値ベクトルです。
“细胞” 箱子は 细胞配列であり、宾斯{j}は要素Jに属するすべてのノードのノード 身份证件を含みます。

メモ

“类型”オプションは、有向图を使用して作成された有向グラフでのみサポートされます。

連結要素のタイプ。“类型”“强壮”(既定) または“弱”のいずれかで構成されるコンマ区切りのペアとして指定されます。

オプション 結果
“强壮”(既定) 2つのノードを"双" 方向で連結する経路がある場合にのみ、それらのノードは同じ連結要素に属します。
“弱” 2.つのノードを連結する経路がある場合、それらのノードは同じ連結要素に属します。エッジの方向は無視されます。

例:bins=conncomp(G,“类型”,“弱”)は、有向グラフGの弱連結要素を計算します。

出力引数

すべて折りたたむ

連結要素。ベクトルまたは 细胞配列として返されます。ビン番号は、グラフの各ノードを連結要素に割り当てます。

  • 输出形式“向量”(既定) の場合、箱子は各ノードが属する連結要素 (ビン) を示す数値ベクトルです。

  • 输出形式“细胞”の場合、箱子は 细胞配列であり、宾斯{j}は要素Jに属するすべてのノードのノード 身份证件を含みます。

各連結要素のサイズ。ベクトルとして返されます。(一)は要素の要素数を返します。垃圾箱の長さは、連結要素最大(垃圾箱)の数と等しくなります。

詳細

すべて折りたたむ

弱連結要素

2.つのノードを連結する経路がある場合 (エッジの方向は無視)、それらのノードは同じ弱連結要素に属します。2.つの弱連結要素の間にはエッジがありません。

強要素と弱要素の概念は有向グラフにのみ適用されます。これは、無向グラフで強要素と弱要素は同等だからです。

強連結要素

2.つのノードを連結する双方向の経路がある場合、これらのノードは同じ強連結要素に属します。2.つの強連結要素の間にエッジが存在できますが、この連結エッジは絶対に循環の一部にはなりません。

強連結要素のビン番号は、2.つの要素を連結する任意のエッジが小さい方のビン番号をもつ要素から大きい方のビン番号をもつ要素を向くように付けられます。

強要素と弱要素の概念は有向グラフにのみ適用されます。これは、無向グラフで強要素と弱要素は同等だからです。

R2015bで導入