This function returns the connected components of a hypergraph. A connected component of a hypergraph is any maximal set of vertices which are pairwise connected by a non-trivial path. Isolated vertices, which are those not appearing in any edge, do not appear in any connected components. This is in contrast to connectedGraphComponents in which isolated vertices form their own connected components. See the Connected Components Tutorial for more information.
i1 : R = QQ[a..l]; |
i2 : H = hyperGraph {a*b*c, c*d, d*e*f, h*i, i*j, l} o2 = HyperGraph{edges => {{a, b, c}, {c, d}, {d, e, f}, {h, i}, {i, j}, {l}}} ring => R vertices => {a, b, c, d, e, f, g, h, i, j, k, l} o2 : HyperGraph |
i3 : L = connectedComponents H o3 = {{a, b, c, d, e, f}, {h, i, j}, {l}} o3 : List |
i4 : apply(L, C -> inducedHyperGraph(H,C)) o4 = {HyperGraph{edges => {{a, b, c}, {c, d}, {d, e, f}}}, ring => QQ[a..f] vertices => {a, b, c, d, e, f} ------------------------------------------------------------------------ HyperGraph{edges => {{h, i}, {i, j}}}, HyperGraph{edges => {{l}} }} ring => QQ[h..j] ring => QQ[l] vertices => {h, i, j} vertices => {l} o4 : List |
In the following example, hypergraph H contains the isolated vertex d and the vertex c which is in an edge of size one. Notice that d does not appear in any connected component while c does.
i5 : R = QQ[a,b,c,d]; |
i6 : H = hyperGraph {a*b, c} o6 = HyperGraph{edges => {{a, b}, {c}} } ring => R vertices => {a, b, c, d} o6 : HyperGraph |
i7 : connectedComponents H o7 = {{a, b}, {c}} o7 : List |
i8 : isolatedVertices H o8 = {d} o8 : List |
The object connectedComponents is a method function.