CONEXO
CONEXO
CONEXO
Guillermo Palma
Plan
1. Preliminares
Digrafo inverso
4
1 2 3
1 2 3
4
Función grafo-inverso(G (V , E ))
1 inicio
2 G −1 ; /* Digrafo como lista de adyacencias */
3 G −1 .adyacentes[|V |] ; /* Se crea un arreglo de listas */
4 para i ← 0 a |V | − 1 hacer
5 G −1 .adyacentes[i] ← new Lista ; /* Se crean listas */
6 para cada u ∈ V hacer
7 para cada v ∈ G .adyacentes[u] hacer
8 G −1 .adyacentes[v ].agregar (u) ; /* Nuevo arco */
9 devolver G −1
a b c d
e f g h
Figura 2: Grafo no dirigido con cuatro componentes fuertemente conexas
{a, b, e}, {c, d}, {f , g } y {h}. Fuente: [1]
Grafo componente
a b c d
e f g h
(a) Grafo dirigido con 4 componentes fuertemente conexas.
cd
abe
fg h
(b) Grafo componente G SCC de G .
d(U) = mı́n{u.d}
u∈U
y
f (U) = máx{u.f }
u∈U
Componentes fuertemente
conexas
Algoritmo de las componentes fuertemente conexas
Función componentes-fuertemente-conexas(G (V , E ))
1 inicio
2 Ejecutar DFS(G ) y obtener el orden topológico de todos los
vértices ;
3 G −1 ← grafo-inverso(G ) ;
4 Ejecutar DFS(G −1 ) modificado, tal que considere en ciclo
principal DFS a los vértices en el orden topológico obtenido en la
lı́nea 2 ;
5 CFC ← Los vértices que componen cada árbol i del bosque de
DFS (depth-first trees) de la lı́nea 4 van a formar parte de la
componente fuertemente conexa Ci , se crea un conjunto con
todas las componentes fuertemente conexas Ci , esto es
{C1 , . . . Cn }. ;
6 devolver CFC ; /* Se tiene que CFC = {C1 , . . . Cn } */
a b c d
e f g h
(a) Digrafo G con 4 componentes fuertemente conexas.
a b c d
13/14 11/16 1/10 8/9
a b c d
13/14 11/16 1/10 8/9
e f g h
(b) Grafo inverso G −1 de G .
a b c d
13/14 11/16 1/10 8/9
e f g h
(b) Resultado de DFS(G −1 ).
a b c d
e f g h
(a) Resultado de DFS(G −1 ).
cd
abe
fg h
(b) Grafo componente con los vértices de las CFC obtenidas de
DFS(G −1 ) y los lados de G .
Figura 7: Componentes fuertemente conexas
CFC = {{a, b, e}, {c, d}, {f , g }, {h}} de 7(a). Fuente: [1]
Guillermo Palma Componentes fuertemente conexas 17 / 26
Caminos entre componentes fuertemente conexas
Lema 1
Sean C y C 0 dos componentes fuertemente conexas de un digrafo G ,
sean u, v ∈ C y u 0 , v 0 ∈ C 0 y suponga que en G existe el camino
u u 0 . Entonces G no puede tener un camino v 0 v.
Prueba Lema 1
Por contradicción.
Lema 2
Sean C y C 0 dos componentes fuertemente conexas de un digrafo
G = (V , E ). Suponga que existe un lado (u, v ) ∈ E , donde u ∈ C y
v ∈ C 0 . Entonces f (C ) > f (C 0 ).
Corolario 1
Sean C y C 0 dos componentes fuertemente conexas de un digrafo
G = (V , E ) y sea G −1 = (V , E −1 ) su digrafo inverso. Suponga que
existe un arco (u, v ) ∈ E −1 , donde u ∈ C y v ∈ C 0 . Entonces
f (C ) < f (C 0 ).