26.07.2013 Views

Algoritmos sobre Grafos - Departamento de Ciencias e Ingeniería ...

Algoritmos sobre Grafos - Departamento de Ciencias e Ingeniería ...

Algoritmos sobre Grafos - Departamento de Ciencias e Ingeniería ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Lema<br />

Introducción<br />

Recorridos<br />

Or<strong>de</strong>namiento topológico<br />

Componentes fuertemente conexos<br />

Puntos <strong>de</strong> articulación y puentes<br />

Flujo máximo<br />

Recorrido por Niveles<br />

Recorrido por profundidad<br />

el Nivel <strong>de</strong> cada nodo es la distancia (cantidad <strong>de</strong> arcos) que<br />

<strong>de</strong>ben recorrerse en la foresta para llegar <strong>de</strong>s<strong>de</strong> la raíz al nodo<br />

correspondiente<br />

se representa por un arreglo adicional nivel[1..n], inicializado<br />

en 0<br />

se <strong>de</strong>be recordar que la raíz es en principio un nodo arbitrario<br />

se pue<strong>de</strong>n calcular esta información adicional al mismo tiempo<br />

que se hace el recorrido; esto no agrega tiempo adicional al<br />

or<strong>de</strong>n <strong>de</strong>l algoritmo<br />

Pablo R. Fillottrani <strong>Algoritmos</strong> y Complejidad<br />

Introducción<br />

Recorridos<br />

Or<strong>de</strong>namiento topológico<br />

Componentes fuertemente conexos<br />

Puntos <strong>de</strong> articulación y puentes<br />

Flujo máximo<br />

Recorrido por Niveles<br />

Recorrido por profundidad<br />

se pue<strong>de</strong>n probar las siguientes propieda<strong>de</strong>s <strong>sobre</strong> los recorridos<br />

por nivel<br />

Si el grafo es conexo, entonces la foresta <strong>de</strong> recorrido es un árbol<br />

Lema<br />

en el caso <strong>de</strong> un grafo dirigido, conexo significa que existe un<br />

camino <strong>de</strong> ida y <strong>de</strong> vuelta entre cada par <strong>de</strong> nodos<br />

al finalizar un recorrido BF, nivel[v] contiene la mínima distancia<br />

<strong>de</strong>s<strong>de</strong> la raíz <strong>de</strong>l árbol <strong>de</strong> v en la foresta <strong>de</strong> recorrido hasta v<br />

ejercicio: comparar con el algoritmo <strong>de</strong> Dijkstra<br />

Pablo R. Fillottrani <strong>Algoritmos</strong> y Complejidad<br />

Introducción<br />

Recorridos<br />

Or<strong>de</strong>namiento topológico<br />

Componentes fuertemente conexos<br />

Puntos <strong>de</strong> articulación y puentes<br />

Flujo máximo<br />

Recorrido por Niveles<br />

Recorrido por profundidad<br />

PROCEDURE visitarBF(G,Q)<br />

WHILE no Q.esVacía()<br />

u::=Q.primero()<br />

IF existe w adyacente a u<br />

tal que color[w]=blanco<br />

color[w]::=gris<br />

padre[w]::=u; nivel[w]::=nivel[u]+1<br />

Q.insertar(w)<br />

ELSE<br />

color[u]::=negro<br />

Q.sacarDeCola()<br />

ENDIF<br />

ENDWHILE<br />

Pablo R. Fillottrani <strong>Algoritmos</strong> y Complejidad<br />

Introducción<br />

Recorridos<br />

Or<strong>de</strong>namiento topológico<br />

Componentes fuertemente conexos<br />

Puntos <strong>de</strong> articulación y puentes<br />

Flujo máximo<br />

Recorrido por Niveles<br />

Recorrido por profundidad<br />

el recorrido permite clasificar los arcos <strong>de</strong>l grafo en las siguientes<br />

categorías:<br />

arcos <strong>de</strong> la foresta son los arcos (padre[v],v) utilizados en el<br />

recorrido<br />

arcos hacia atrás son arcos (u,v) en don<strong>de</strong> v es un ancestro <strong>de</strong><br />

u en la foresta <strong>de</strong>l recorrido<br />

arcos hacia a<strong>de</strong>lante son arcos (u,v) en don<strong>de</strong> v es<br />

<strong>de</strong>scendiente <strong>de</strong> u en la foresta <strong>de</strong>l recorrido<br />

arcos que cruzan son los <strong>de</strong>más arcos que no entran en las otras<br />

categorías. Los extremos pue<strong>de</strong>n estar en el mismo árbol o en<br />

árboles diferentes<br />

Pablo R. Fillottrani <strong>Algoritmos</strong> y Complejidad

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!