grafos_dirigidos_aciclicos
TRANSCRIPT
5/11/2018 Grafos_Dirigidos_Aciclicos - slidepdf.com
http://slidepdf.com/reader/full/grafosdirigidosaciclicos 1/5
8. Recorridos en Grafos Dirigidos
8.1 Grafos Dirigidos aciclicos Un grafo dirigido acíclico o gda es un grafo dirigido sin ciclos. Cuantificados enfunción de las relaciones que representan, los gda son mas generales que losárboles, pero menos que los grafos dirigidos arbitrarios. A continuación sepresenta un ejemplo de un árbol, un gda y un grafo dirigido con un ciclo.
A
B C
D E
A
B C
D E
A
B C
D E
Figura 8.1 Tres grafos dirigidos
Entre otros, los gda se usan para representar la estructura sintáctica deexpresiones aritméticas con subexpresiones comunes. Por ejemplo, laexpresión:
((a+b)*c+((a+b)+e)*(e+f))*((a+b)*c)
Se puede representar con el grafo dirigido:
+
e
++
b
c
*
*
a
+
*
f
Figura 8.2 Gda para expresiones aritméticas
Los gda son útiles también para la representación de órdenes parciales. Unaorden parcial R en un conjunto S es una relación binaria tal que:
5/11/2018 Grafos_Dirigidos_Aciclicos - slidepdf.com
http://slidepdf.com/reader/full/grafosdirigidosaciclicos 2/5
2
1. Para toda a en S , a R a es falsa. (R es irreflexivo)2. Para toda a,b,c en S , si a R b y b R c , entonces, a R c (R es transitivo)Dos ejemplos naturales de órdenes parciales son la relación menor que (<) en
enteros, y la relación de subconjunto propio (⊂).
Si se tiene S={1,2,3} y P(S) el conjunto exponencial de S , es decir el conjunto
de todos los subconjuntos de S . P(S)={ Φ ,{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}} . ⊂ es de orden parcial en P(S). Ciertamente, A ⊂ A es falso para cualquier
conjunto A (irreflexibilidad), y si A ⊂ B y B ⊂ C , entonces, A ⊂ C (transitividad).
{1,2,3}
{1,2} {2,3}{1,3}
{3}{2}{1}
Φ
Fig. 8.3 Gda para inclusiones propias
8.1.1 Prueba de aciclicidad Se tiene un grafo dirigido G=(V,A), para determinar si G es acíclico, se usa labúsqueda en profundidad. Si se encuentra un arco en retroceso durante labúsqueda en profundidad de G , el grafo tiene un ciclo y viceversa.Para ver este hecho, supóngase que G es cíclico. Si se efectúa una búsquedaen profundidad de G , habrá un vértice v que tenga el número de búsqueda enprofundidad menor en un ciclo. Considérese un arco u v en algún ciclo quecontenga a v . Ya que u está en el ciclo, debe ser un descendiente de v en elbosque abarcador en profundidad. Así, u v no puede ser un arco cruzado.
Puesto que el número en profundidad de u es mayor que el de v , u v nopuede ser un arco de árbol, ni un arco de avance. Así que u v debe ser unarco de retroceso.
8.1.2 Clasificación topológica Un proyecto grande, suele dividirse en una colección de tareas mas pequeñas,algunas deben realizarse en ordenes específicos. Por ejemplo, un plancurricular.
5/11/2018 Grafos_Dirigidos_Aciclicos - slidepdf.com
http://slidepdf.com/reader/full/grafosdirigidosaciclicos 3/5
3
La clasificación topológica es un proceso de asignación de un orden lineal a losvértices de un gda tal que si existe un arco del vértice i al vértice j , i apareceantes que j en el ordenamiento lineal.A continuación se presenta un algoritmo para la clasificación topológica que esuna modificación del algoritmo bpf, estableciendo una instrucción de impresióndespués de la salida de cada llamado recursivo.clasificacion_topologica: Grafo X Vértice X Lista
Procedimiento clasificacion_topologica(G:Grafo, v:vértice, var
Marca:Lista[Booleano])
{Pre: v∈V, Marca tiene la información sobre los vértices que ya han
sido visitados en la búsqueda en profundidad.}
{Post: imprime los vértices accesibles desde el vértice v en ordentopológico invertido}
Var
long,pos:entero
Lst:Lista[Vértice]
Inicio
Anx_Lista(Marca,v,VERDADERO)
Lstsuc_grafo(G,v)
Longlong_lista(lst)
Pos1
Mientras pos<long+1 haga
Si info_lista(Marca,i)=FALSO entonces
Clasificacion_topologica(G,info_lista(Marca,i),Marca)Fin_si
Pospos+1
Fin_mientras
Escribir(info_lista(Marca,v))
Fin
8.2 Componentes fuertes Un componente fuerte conexo de un grafo dirigido es un conjunto maximal devértices en el cual existe un camino que va desde cualquier vértice del conjuntohasta cualquier otro vértice también del conjunto. La búsqueda en profundidad
puede usarse para determinar con eficiencia los componentes fuertementeconexos de un grafo dirigido.
Sea G=(V,A) un grafo dirigido; se puede dividir V en clases de equivalencia V i ,1≤i ≤r , tales que los vértices v y w son equivalentes si y solo si, existe un caminode v a w y otro de w a v . Sea Ai , 1 ≤ i ≤ r , el conjunto de los arcos con cabeza ycola en V i . Los grafos G i =(V i ,Ai ) se denominan componentes fuertemente conexos de G . Un grafo dirigido con sólo un componente fuerte, se dice queestá fuertemente conexo .
5/11/2018 Grafos_Dirigidos_Aciclicos - slidepdf.com
http://slidepdf.com/reader/full/grafosdirigidosaciclicos 4/5
4
Fig. 8.4 Grafo dirigido y sus componentes fuertes
a b
d c
(a)
a b
d c
(b)
Todo vértice de un grafo dirigido G está en algún componente fuerte, pero
ciertos arcos pueden no estarlo. Tales arcos llamados cruce de componentes ,van de un vértice de un componente de un vértice a otro.
A continuación se presenta un algoritmo para encontrar los componentesfuertemente conexos de un grafo dirigido G dado:1. Efectúese una búsqueda en profundidad de G y numérense los vértices en
el orden de terminación de las llamadas recursivas; esto es, asígnese unnúmero al vértice v después del llamado recursivo.
2. Constrúyase un grafo dirigido nuevo G r invirtiendo las direcciones de losarcos de G .
3. Realícese una búsqueda en profundidad en G r , partiendo del vértice con
numeración más alta de acuerdo con la numeración asignada en el paso 1.Si la búsqueda en profundidad no llega a todos los vértices, iníciese lasiguiente búsqueda a partir del vértice restante con numeración más alta.
4. Cada árbol del bosque abarcador resultante es un componente fuertementeconexo de G.
Ejemplo: Para el grafo dirigido de la figura 8.4 (a), se parte en la búsqueda enprofundidad en el vértice a y después del paso 1, se tiene la figura 8.5 (b).
Fig. 8.5 Grafo dirigido G y su arbol abarcador numerado (paso 1 del algoritmo)
a b
d c
(a) (b)
a
b
c
d
4
3
2
1
Luego se crea el grafo G r con los arcos en dirección contraria y se hace labúsqueda en profundidad iniciando en el vértice de numeración mas alta (a).
5/11/2018 Grafos_Dirigidos_Aciclicos - slidepdf.com
http://slidepdf.com/reader/full/grafosdirigidosaciclicos 5/5
5
Fig. 8.6 Grafo dirigido G r y su bosque abarcador en profundidad
a b
d c
(a) (b)
a
c
b
d 4
3
2
1
Aparecen al final en la figura 8.6 (b) dos árboles del bosque abarcador enprofundidad que son los componentes fuertemente conexos de G .