Función: Componentes conexas y fuertemente conexasVolver

Descripción

En un grafo no dirigido, devuelve las componentes conexas, en un digrafo, las componentes fuertemente conexas mediante el algoritmo de Kosaraju.
Las componentes se devuelven como un vector de diccionarios grafo.

Cadena de entrada

gr_componentes

Cadena de salida

GRAFO.componentes

Uso

gr_componentes(<grafo>[,<método>])


<método> sólo se aplica a grafos no dirigidos, cuando vale true indica que se usará búsqueda en amplitud, false búsqueda en profundidad.

Ejemplos

Pseudografo no dirigido de ocho nodos:

gr_nuevo([[0,0,1,1,1,0,0,0],[0,0,1,0,0,0,0,0],[1,1,1,1,0,0,0,0],[1,0,1,0,1,0,0,0],[1,0,0,1,0,0,0,0],[0,0,0,0,0,0,2,1],[0,0,0,0,0,2,0,1],[0,0,0,0,0,1,1,1]],falso,falso,verdadero,verdadero)

Diccionario: { 'etiquetas': ['v0','v1','v2','v3','v4','v5','v6','v7'] 'ady': [[0,0,1,1,1,0,0,0],[0,0,1,0,0,0,0,0],[1,1,1,1,0,0,0,0],[1,0,1,0,1,0,0,0],[1,0,0,1,0,0,0,0],[0,0,0,0,0,0,2,1],[0,0,0,0,0,2,0,1],[0,0,0,0,0,1,1,1]] 'esDirigido': falso 'esPonderado': falso 'esPseudografo': verdadero 'esMultigrafo': verdadero 'nodoData': '__null__' 'aristaData': '__null__' }

Salida JMEScriptGUI con visor de grafos v0.1:

gr_componentes(gr_nuevo([[0,0,1,1,1,0,0,0],[0,0,1,0,0,0,0,0],[1,1,1,1,0,0,0,0],[1,0,1,0,1,0,0,0],[1,0,0,1,0,0,0,0],[0,0,0,0,0,0,2,1],[0,0,0,0,0,2,0,1],[0,0,0,0,0,1,1,1]],falso,falso,verdadero,verdadero))

VectorEvaluado: [ {'etiquetas'=['v0','v2','v1','v3','v4'], 'ady'=[[0,1,0,1,1],[1,1,1,1,0],[0,1,0,0,0],[1,1,0,0,1],[1,0,0,1,0]], 'esDirigido'=falso, 'esPonderado'=falso, 'esPseudografo'=verdadero, 'esMultigrafo'=verdadero, 'nodoData'='__null__', 'aristaData'='__null__'}, {'etiquetas'=['v5','v6','v7'], 'ady'=[[0,2,1],[2,0,1],[1,1,1]], 'esDirigido'=falso, 'esPonderado'=falso, 'esPseudografo'=verdadero, 'esMultigrafo'=verdadero, 'nodoData'='__null__', 'aristaData'='__null__'} ]

Salida JMEScriptGUI con visor de grafos v0.1:
  



Digrafo de ocho nodos:

gr_nuevo([[0,1,0,0,0,0,0,0],[0,0,1,0,1,1,0,0],[0,0,0,1,0,0,1,0],[0,0,1,0,0,0,0,1],[1,0,0,0,0,1,0,0],[0,0,0,0,0,0,1,0],[0,0,0,0,0,1,0,0],[0,0,0,1,0,0,1,0]],['a','b','c','d','e','f','g','h'],verdadero)

Diccionario: { 'etiquetas': ['a','b','c','d','e','f','g','h'] 'ady': [[0,1,0,0,0,0,0,0],[0,0,1,0,1,1,0,0],[0,0,0,1,0,0,1,0],[0,0,1,0,0,0,0,1],[1,0,0,0,0,1,0,0],[0,0,0,0,0,0,1,0],[0,0,0,0,0,1,0,0],[0,0,0,1,0,0,1,0]] 'esDirigido': verdadero 'esPonderado': falso 'esPseudografo': falso 'esMultigrafo': falso 'nodoData': '__null__' 'aristaData': '__null__' }

Salida JMEScriptGUI con visor de grafos v0.1:

gr_componentes(gr_nuevo([[0,1,0,0,0,0,0,0],[0,0,1,0,1,1,0,0],[0,0,0,1,0,0,1,0],[0,0,1,0,0,0,0,1],[1,0,0,0,0,1,0,0],[0,0,0,0,0,0,1,0],[0,0,0,0,0,1,0,0],[0,0,0,1,0,0,1,0]],['a','b','c','d','e','f','g','h'],verdadero))

VectorEvaluado: [ {'etiquetas'=['a','e','b'], 'ady'=[[0,0,1],[1,0,0],[0,1,0]], 'esDirigido'=verdadero, 'esPonderado'=falso, 'esPseudografo'=falso, 'esMultigrafo'=falso, 'nodoData'='__null__', 'aristaData'='__null__'}, {'etiquetas'=['c','d','h'], 'ady'=[[0,1,0],[1,0,1],[0,1,0]], 'esDirigido'=verdadero, 'esPonderado'=falso, 'esPseudografo'=falso, 'esMultigrafo'=falso, 'nodoData'='__null__', 'aristaData'='__null__'}, {'etiquetas'=['g','f'], 'ady'=[[0,1],[1,0]], 'esDirigido'=verdadero, 'esPonderado'=falso, 'esPseudografo'=falso, 'esMultigrafo'=falso, 'nodoData'='__null__', 'aristaData'='__null__'} ]

Salida JMEScriptGUI con visor de grafos v0.1:
    



Desde / Última modificación

v0.6.2.0