highlyConnSG              package:RBGL              R Documentation

_C_o_m_p_u_t_e _h_i_g_h_l_y _c_o_n_n_e_c_t_e_d _s_u_b_g_r_a_p_h_s _f_o_r _a_n _u_n_d_i_r_e_c_t_e_d _g_r_a_p_h

_D_e_s_c_r_i_p_t_i_o_n:

     Compute highly connected subgraphs for an undirected graph

_U_s_a_g_e:

     highlyConnSG(g, sat=3, ldv=c(3,2,1))

_A_r_g_u_m_e_n_t_s:

       g: an instance of the 'graph' class with 'edgemode' "undirected"

     sat: singleton adoption threshold, positive integer 

     ldv: heuristics to remove lower degree vertice, a decreasing
          sequence of positive integer 

_D_e_t_a_i_l_s:

     A graph G with n vertices is highly connected if its connectivity
     k(G) > n/2.  The HCS algorithm partitions a given graph into a set
     of highly connected subgraphs, by using minimum-cut algorithm
     recursively.  To improve performance, the approach is refined by
     adopting singletons, removing low degree vertices and merging
     clusters.    

     On singleton adoption:  after each round of partition,  some
     highly connected subgraphs could be singletons (i.e., a subgraph
     contains only one node). To reduce the number of singletons,
     therefore reduce number of clusters,  we try to get "normal"
     subgraphs to "adopt" them.  If a singleton, s, has n  neighbours
     in a highly connected subgraph c, and n > sat, we add s to c.   To
     adapt to the modified subgraphs, this adoption process is repeated
     until  no further such adoption. 

     On lower degree vertices: when the graph has low degree vertices,
     minimum-cut algorithm will just repeatedly separate these vertices
     from the rest.  To reduce such expensive and non-informative
     computation, we "remove" these  low degree vertices first before
     applying minimum-cut algorithm.   Given ldv = (d1, d2, ..., dp),
     (d[i] > d[i+1] > 0), we repeat the following (i from 1 to p):
     remove all the highly-connected-subgraph found so far;  remove
     vertices with degrees < di; find highly-connected-subgraphs; 
     perform singleton adoptions.

_V_a_l_u_e:

     A list of clusters, each is given as vertices in the graph.

_A_u_t_h_o_r(_s):

     Li Long <li.long@isb-sib.ch>

_R_e_f_e_r_e_n_c_e_s:

     A Clustering Algorithm based on Graph Connectivity by E. Hartuv,
     R. Shamir, 1999.

_S_e_e _A_l_s_o:

     'edgeConnectivity', 'minCut'

_E_x_a_m_p_l_e_s:

     coex <- fromGXL(file(system.file("XML/hcs.gxl",package="RBGL"), open="r"))
     highlyConnSG(coex)

