SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
Tema: Algoritmos de Grafos
C´atedra: Algoritmos y Complejidad
Mg. Mart´ın M. P´erez
Facultad de Ciencias de la Administraci´on
Universidad Nacional de Entre R´ıos
Noviembre de 2015
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
En la clase de hoy: Algoritmos de Grafos
1 Introducci´on
2 Representaci´on de Grafos
3 Recorridos
Recorrido en Profundidad: Grafos No Dirigidos
Puntos de Articulaci´on
Recorrido en Profundidad: Grafos Dirigidos
Grafos Ac´ıclicos: Orden Topol´ogico
Recorrido por Niveles
4 Camino y Circuito de Euler
Algoritmo de Fleury
5 Bibliograf´ıa
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 2 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Introducci´on
Los grafos son estructuras muy importantes en las ciencias
de la computaci´on. Con ellos se puede encontrar la soluci´on
a una inmensa variedad de problemas.
Hoy veremos t´ecnicas generales que pueden usarse cuando
no se requiere ning´un orden particular para visitar cada
nodo.
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 3 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Representaci´on de Grafos No Dirigidos (GND)
Memoria GND =
Θ(n2
) Matriz de Adyacencia
Θ(n + 2a) = Θ(m´ax(n, a)) Lista de Adyacencia
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 4 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Representaci´on de Grafos Dirigidos (GD)
Memoria GD =
Θ(n2
) Matriz de Adyacencia
Θ(n + a) = Θ(m´ax(n, a)) Lista de Adyacencia
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 5 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Recorridos
Un recorrido es un algoritmo que visita todos los nodos de
un grafo.
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 6 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Recorridos
Un recorrido es un algoritmo que visita todos los nodos de
un grafo.
Los algoritmos m´as comunes generalizan las t´ecnicas para
recorrer ´arboles:
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 6 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Recorridos
Un recorrido es un algoritmo que visita todos los nodos de
un grafo.
Los algoritmos m´as comunes generalizan las t´ecnicas para
recorrer ´arboles:
Pre-orden
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 6 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Recorridos
Un recorrido es un algoritmo que visita todos los nodos de
un grafo.
Los algoritmos m´as comunes generalizan las t´ecnicas para
recorrer ´arboles:
Pre-orden
In-orden
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 6 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Recorridos
Un recorrido es un algoritmo que visita todos los nodos de
un grafo.
Los algoritmos m´as comunes generalizan las t´ecnicas para
recorrer ´arboles:
Pre-orden
In-orden
Post-orden
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 6 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Recorrido en Profundidad: Grafos No Dirigidos
Procedimiento de Recorrido en Profundidad: GND
Se elige un nodo v ∈ N como punto de partida.
Se marca el nodo v como visitado.
Si hay un nodo no visitado adyacente a v, se elige como
nuevo punto de partida.
Se sigue el proceso recursivamente, hasta que todos los
nodos de G est´en marcados.
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 7 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Recorrido en Profundidad: Grafos No Dirigidos
Ejemplo
Para el siguiente grafo, ¿c´omo proceder´ıa el recorrido en
profundidad?
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 8 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Recorrido en Profundidad: Grafos No Dirigidos
Ejemplo
1. dfs(1) llamada inicial
2. dfs(2) llamada recursiva
3. dfs(3) llamada recursiva
4. dfs(6) llamada recursiva
5. dfs(5) llamada recursiva; se bloquea
6. dfs(4) vecino del nodo 1 no visitado
7. dfs(7) llamada recursiva
8. dfs(8) llamada recursiva; se bloquea
9. − no hay m´as nodos para visitar
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 9 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Recorrido en Profundidad: Grafos No Dirigidos
Ejemplo
´Arbol de cubrimiento asociado al recorrido
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 10 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Recorrido en Profundidad: Grafos No Dirigidos
Definiciones
Punto de Articulaci´on
Un nodo v de un grafo conexo es un punto de articulaci´on
si el subgrafo obtenido por la eliminaci´on de v y todos sus
arcos incidentes deja de ser conexo.
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 11 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Recorrido en Profundidad: Grafos No Dirigidos
Definiciones
Punto de Articulaci´on
Un nodo v de un grafo conexo es un punto de articulaci´on
si el subgrafo obtenido por la eliminaci´on de v y todos sus
arcos incidentes deja de ser conexo.
Grafo Biconexo
Un grafo G es biconexo si es co-
nexo y no tiene puntos de articu-
laci´on.
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 11 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Recorrido en Profundidad: Grafos No Dirigidos
Definiciones
Punto de Articulaci´on
Un nodo v de un grafo conexo es un punto de articulaci´on
si el subgrafo obtenido por la eliminaci´on de v y todos sus
arcos incidentes deja de ser conexo.
Grafo Biconexo
Un grafo G es biconexo si es co-
nexo y no tiene puntos de articu-
laci´on.
Grafo Bicoherente
Un grafo G es bicoherente si ca-
da punto de articulaci´on se conec-
ta por medio de al menos dos ar-
cos a cada componente de los sub-
grafos restantes.
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 11 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Recorrido en Profundidad: Grafos Dirigidos
Procedimiento de Recorrido en Profundidad: GD
El algoritmo es el mismo. La ´unica diferencia reside en la
interpretaci´on de la palabra “adyacente”
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 12 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Recorrido en Profundidad: Grafos Dirigidos
Procedimiento de Recorrido en Profundidad: GD
El algoritmo es el mismo. La ´unica diferencia reside en la
interpretaci´on de la palabra “adyacente”
¿C´omo proceder´ıa el recorrido
en profundidad en este grafo
dirigido?
¿Cu´ales ser´ıan los ´arboles de
cubrimiento resultantes?
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 12 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Recorrido en Profundidad: Grafos Dirigidos
Grafos Ac´ıclicos: Orden Topol´ogico
Los grafos dirigidos ac´ıclicos pueden usarse para repre-
sentar muchas relaciones interesantes.
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 13 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Recorrido en Profundidad: Grafos Dirigidos
Grafos Ac´ıclicos: Orden Topol´ogico
Los grafos dirigidos ac´ıclicos pueden usarse para repre-
sentar muchas relaciones interesantes.
Orden Topol´ogico
Es un listado de los nodos de un GDA donde, si existe un arco (i, j) en
el grafo, entonces el nodo i precede al j en la lista.
¿C´omo se puede adaptar el procedimiento dfs para que
muestre el orden topol´ogico de un grafo?
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 13 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Recorrido por Niveles
Recorrido por Niveles
Cuando una b´usqueda por niveles llega a cierto nodo
v, primero visita todos los vecinos de v. S´olo entonces
comienza a visitar los nodos m´as lejanos.
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 14 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Recorrido por Niveles
Recorrido por Niveles
Cuando una b´usqueda por niveles llega a cierto nodo
v, primero visita todos los vecinos de v. S´olo entonces
comienza a visitar los nodos m´as lejanos.
Para el grafo
Paso Nodo Visitado Q
1. 1 2, 3, 4
2. 2 3, 4, 5, 6
3. 3 4, 5, 6
4. 4 5, 6, 7, 8
5. 5 6, 7, 8
6. 6 7, 8
7. 7 8
8. 8 −
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 14 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Recorrido por Niveles
Recorrido por Niveles
Actividades
¿C´omo quedar´ıa el ´arbol de cubrimiento generado por
el recorrido de la diapositiva anterior?
¿Te anim´as a aplicar el algoritmo de recorrido por ni-
veles al grafo dirigido de la Figura 5 de los apuntes de
clase?
En http://visualgo.net/dfsbfs.html se puede ver c´omo
evolucionan los recorridos en profundidad y por niveles,
tanto para GD como para GND. ¡A experimentar!
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 15 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Camino y Circuito de Euler
Un camino de Euler en un GND es un camino donde cada
arco aparece exactamente una vez .
Si el nodo inicial y el final son el mismo nodo, entonces el
camino es un circuito de Euler.
Euler enunci´o dos Teoremas:
Teorema 1: Existencia de un Camino de Euler.
Teorema 2: Existencia de Circuitos de Euler.
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 16 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Camino y Circuito de Euler
Los puentes de K¨onigsberg y su grafo asociado
¿Existe en este caso camino y/o circuito de Euler?
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 17 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Algoritmo de Fleury
Algoritmo de Fleury
Pasos para encontrar caminos de Euler:
1 Verificar que el grafo cumpla con las hip´otesis de los
teoremas de caminos o circuitos de Euler.
2 Elegir un v´ertice de grado impar. En caso de que no
exista, se puede elegir cualquier v´ertice.
3 En cada paso, recorrer cualquier arco disponible, eli-
giendo un puente o istmo s´olo cuando no haya alterna-
tiva.
4 Al recorrer el arco, borrarlo y continuar el proceso hasta
que todos lo v´ertices tengan grado cero.
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 18 / 19
Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa
Referencias Bibliogr´aficas
Brassard, G. and Bratley, P. (1995).
Fundamentals of Algorithmics.
Pearson, 1ra. edition.
Cormen, T. H., Leiserson, C. E., Rivest, R. L., and Stein, C. (2009).
Introduction to Algorithms.
The MIT Press, 3ra. edition.
Diestel, R. (2005).
Graph Theory.
Springer-Verlag Heidelberg, 3ra. edition.
Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 19 / 19

Weitere ähnliche Inhalte

Was ist angesagt?

Clase 9 grafos parte iii (cam min - arbol min)-ay_ed-2014
Clase 9  grafos parte iii (cam min - arbol min)-ay_ed-2014Clase 9  grafos parte iii (cam min - arbol min)-ay_ed-2014
Clase 9 grafos parte iii (cam min - arbol min)-ay_ed-2014
Nicolas Mattone
 
Presentación de grafos
Presentación de  grafosPresentación de  grafos
Presentación de grafos
marcoslotauro
 
Lista de adyacencia
Lista de adyacenciaLista de adyacencia
Lista de adyacencia
Frank Doria
 

Was ist angesagt? (20)

Teoría de grafos
Teoría de grafosTeoría de grafos
Teoría de grafos
 
Grafos
GrafosGrafos
Grafos
 
Grafos
GrafosGrafos
Grafos
 
Grafos
GrafosGrafos
Grafos
 
Clase 9 grafos parte iii (cam min - arbol min)-ay_ed-2014
Clase 9  grafos parte iii (cam min - arbol min)-ay_ed-2014Clase 9  grafos parte iii (cam min - arbol min)-ay_ed-2014
Clase 9 grafos parte iii (cam min - arbol min)-ay_ed-2014
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
 
Grafos
GrafosGrafos
Grafos
 
Teoria de grafos. introducción
Teoria de grafos. introducciónTeoria de grafos. introducción
Teoria de grafos. introducción
 
Grafos
GrafosGrafos
Grafos
 
Presentación de grafos
Presentación de  grafosPresentación de  grafos
Presentación de grafos
 
Teoria de Grafos. Conceptos básicos.
Teoria de Grafos. Conceptos básicos.Teoria de Grafos. Conceptos básicos.
Teoria de Grafos. Conceptos básicos.
 
Matemáticas discretas- Teoría de Grafos
Matemáticas discretas- Teoría de GrafosMatemáticas discretas- Teoría de Grafos
Matemáticas discretas- Teoría de Grafos
 
Grafos
GrafosGrafos
Grafos
 
Teoría de grafos
Teoría de grafosTeoría de grafos
Teoría de grafos
 
Grafos en sage
Grafos en sageGrafos en sage
Grafos en sage
 
Capitulo1 grafos
Capitulo1 grafosCapitulo1 grafos
Capitulo1 grafos
 
I1M2010-T22: Algoritmos sobre grafos en Haskell
I1M2010-T22: Algoritmos sobre grafos en HaskellI1M2010-T22: Algoritmos sobre grafos en Haskell
I1M2010-T22: Algoritmos sobre grafos en Haskell
 
Tema grafos
Tema grafosTema grafos
Tema grafos
 
GRAFOS
GRAFOSGRAFOS
GRAFOS
 
Lista de adyacencia
Lista de adyacenciaLista de adyacencia
Lista de adyacencia
 

Andere mochten auch (6)

Grafo bipartito
Grafo bipartitoGrafo bipartito
Grafo bipartito
 
Técnicas prácticas para la solución de algunos grafos 1
Técnicas prácticas para la solución de algunos grafos 1Técnicas prácticas para la solución de algunos grafos 1
Técnicas prácticas para la solución de algunos grafos 1
 
Grafos/EjerciciosPropuestos
Grafos/EjerciciosPropuestosGrafos/EjerciciosPropuestos
Grafos/EjerciciosPropuestos
 
grafos conexos
grafos conexosgrafos conexos
grafos conexos
 
Grafos resueltos
Grafos  resueltosGrafos  resueltos
Grafos resueltos
 
Matrices simétricas y anti simétrica
Matrices simétricas y anti simétricaMatrices simétricas y anti simétrica
Matrices simétricas y anti simétrica
 

Algoritmos de Grafos

  • 1. Tema: Algoritmos de Grafos C´atedra: Algoritmos y Complejidad Mg. Mart´ın M. P´erez Facultad de Ciencias de la Administraci´on Universidad Nacional de Entre R´ıos Noviembre de 2015
  • 2. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa En la clase de hoy: Algoritmos de Grafos 1 Introducci´on 2 Representaci´on de Grafos 3 Recorridos Recorrido en Profundidad: Grafos No Dirigidos Puntos de Articulaci´on Recorrido en Profundidad: Grafos Dirigidos Grafos Ac´ıclicos: Orden Topol´ogico Recorrido por Niveles 4 Camino y Circuito de Euler Algoritmo de Fleury 5 Bibliograf´ıa Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 2 / 19
  • 3. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Introducci´on Los grafos son estructuras muy importantes en las ciencias de la computaci´on. Con ellos se puede encontrar la soluci´on a una inmensa variedad de problemas. Hoy veremos t´ecnicas generales que pueden usarse cuando no se requiere ning´un orden particular para visitar cada nodo. Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 3 / 19
  • 4. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Representaci´on de Grafos No Dirigidos (GND) Memoria GND = Θ(n2 ) Matriz de Adyacencia Θ(n + 2a) = Θ(m´ax(n, a)) Lista de Adyacencia Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 4 / 19
  • 5. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Representaci´on de Grafos Dirigidos (GD) Memoria GD = Θ(n2 ) Matriz de Adyacencia Θ(n + a) = Θ(m´ax(n, a)) Lista de Adyacencia Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 5 / 19
  • 6. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Recorridos Un recorrido es un algoritmo que visita todos los nodos de un grafo. Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 6 / 19
  • 7. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Recorridos Un recorrido es un algoritmo que visita todos los nodos de un grafo. Los algoritmos m´as comunes generalizan las t´ecnicas para recorrer ´arboles: Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 6 / 19
  • 8. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Recorridos Un recorrido es un algoritmo que visita todos los nodos de un grafo. Los algoritmos m´as comunes generalizan las t´ecnicas para recorrer ´arboles: Pre-orden Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 6 / 19
  • 9. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Recorridos Un recorrido es un algoritmo que visita todos los nodos de un grafo. Los algoritmos m´as comunes generalizan las t´ecnicas para recorrer ´arboles: Pre-orden In-orden Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 6 / 19
  • 10. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Recorridos Un recorrido es un algoritmo que visita todos los nodos de un grafo. Los algoritmos m´as comunes generalizan las t´ecnicas para recorrer ´arboles: Pre-orden In-orden Post-orden Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 6 / 19
  • 11. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Recorrido en Profundidad: Grafos No Dirigidos Procedimiento de Recorrido en Profundidad: GND Se elige un nodo v ∈ N como punto de partida. Se marca el nodo v como visitado. Si hay un nodo no visitado adyacente a v, se elige como nuevo punto de partida. Se sigue el proceso recursivamente, hasta que todos los nodos de G est´en marcados. Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 7 / 19
  • 12. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Recorrido en Profundidad: Grafos No Dirigidos Ejemplo Para el siguiente grafo, ¿c´omo proceder´ıa el recorrido en profundidad? Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 8 / 19
  • 13. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Recorrido en Profundidad: Grafos No Dirigidos Ejemplo 1. dfs(1) llamada inicial 2. dfs(2) llamada recursiva 3. dfs(3) llamada recursiva 4. dfs(6) llamada recursiva 5. dfs(5) llamada recursiva; se bloquea 6. dfs(4) vecino del nodo 1 no visitado 7. dfs(7) llamada recursiva 8. dfs(8) llamada recursiva; se bloquea 9. − no hay m´as nodos para visitar Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 9 / 19
  • 14. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Recorrido en Profundidad: Grafos No Dirigidos Ejemplo ´Arbol de cubrimiento asociado al recorrido Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 10 / 19
  • 15. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Recorrido en Profundidad: Grafos No Dirigidos Definiciones Punto de Articulaci´on Un nodo v de un grafo conexo es un punto de articulaci´on si el subgrafo obtenido por la eliminaci´on de v y todos sus arcos incidentes deja de ser conexo. Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 11 / 19
  • 16. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Recorrido en Profundidad: Grafos No Dirigidos Definiciones Punto de Articulaci´on Un nodo v de un grafo conexo es un punto de articulaci´on si el subgrafo obtenido por la eliminaci´on de v y todos sus arcos incidentes deja de ser conexo. Grafo Biconexo Un grafo G es biconexo si es co- nexo y no tiene puntos de articu- laci´on. Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 11 / 19
  • 17. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Recorrido en Profundidad: Grafos No Dirigidos Definiciones Punto de Articulaci´on Un nodo v de un grafo conexo es un punto de articulaci´on si el subgrafo obtenido por la eliminaci´on de v y todos sus arcos incidentes deja de ser conexo. Grafo Biconexo Un grafo G es biconexo si es co- nexo y no tiene puntos de articu- laci´on. Grafo Bicoherente Un grafo G es bicoherente si ca- da punto de articulaci´on se conec- ta por medio de al menos dos ar- cos a cada componente de los sub- grafos restantes. Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 11 / 19
  • 18. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Recorrido en Profundidad: Grafos Dirigidos Procedimiento de Recorrido en Profundidad: GD El algoritmo es el mismo. La ´unica diferencia reside en la interpretaci´on de la palabra “adyacente” Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 12 / 19
  • 19. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Recorrido en Profundidad: Grafos Dirigidos Procedimiento de Recorrido en Profundidad: GD El algoritmo es el mismo. La ´unica diferencia reside en la interpretaci´on de la palabra “adyacente” ¿C´omo proceder´ıa el recorrido en profundidad en este grafo dirigido? ¿Cu´ales ser´ıan los ´arboles de cubrimiento resultantes? Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 12 / 19
  • 20. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Recorrido en Profundidad: Grafos Dirigidos Grafos Ac´ıclicos: Orden Topol´ogico Los grafos dirigidos ac´ıclicos pueden usarse para repre- sentar muchas relaciones interesantes. Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 13 / 19
  • 21. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Recorrido en Profundidad: Grafos Dirigidos Grafos Ac´ıclicos: Orden Topol´ogico Los grafos dirigidos ac´ıclicos pueden usarse para repre- sentar muchas relaciones interesantes. Orden Topol´ogico Es un listado de los nodos de un GDA donde, si existe un arco (i, j) en el grafo, entonces el nodo i precede al j en la lista. ¿C´omo se puede adaptar el procedimiento dfs para que muestre el orden topol´ogico de un grafo? Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 13 / 19
  • 22. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Recorrido por Niveles Recorrido por Niveles Cuando una b´usqueda por niveles llega a cierto nodo v, primero visita todos los vecinos de v. S´olo entonces comienza a visitar los nodos m´as lejanos. Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 14 / 19
  • 23. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Recorrido por Niveles Recorrido por Niveles Cuando una b´usqueda por niveles llega a cierto nodo v, primero visita todos los vecinos de v. S´olo entonces comienza a visitar los nodos m´as lejanos. Para el grafo Paso Nodo Visitado Q 1. 1 2, 3, 4 2. 2 3, 4, 5, 6 3. 3 4, 5, 6 4. 4 5, 6, 7, 8 5. 5 6, 7, 8 6. 6 7, 8 7. 7 8 8. 8 − Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 14 / 19
  • 24. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Recorrido por Niveles Recorrido por Niveles Actividades ¿C´omo quedar´ıa el ´arbol de cubrimiento generado por el recorrido de la diapositiva anterior? ¿Te anim´as a aplicar el algoritmo de recorrido por ni- veles al grafo dirigido de la Figura 5 de los apuntes de clase? En http://visualgo.net/dfsbfs.html se puede ver c´omo evolucionan los recorridos en profundidad y por niveles, tanto para GD como para GND. ¡A experimentar! Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 15 / 19
  • 25. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Camino y Circuito de Euler Un camino de Euler en un GND es un camino donde cada arco aparece exactamente una vez . Si el nodo inicial y el final son el mismo nodo, entonces el camino es un circuito de Euler. Euler enunci´o dos Teoremas: Teorema 1: Existencia de un Camino de Euler. Teorema 2: Existencia de Circuitos de Euler. Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 16 / 19
  • 26. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Camino y Circuito de Euler Los puentes de K¨onigsberg y su grafo asociado ¿Existe en este caso camino y/o circuito de Euler? Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 17 / 19
  • 27. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Algoritmo de Fleury Algoritmo de Fleury Pasos para encontrar caminos de Euler: 1 Verificar que el grafo cumpla con las hip´otesis de los teoremas de caminos o circuitos de Euler. 2 Elegir un v´ertice de grado impar. En caso de que no exista, se puede elegir cualquier v´ertice. 3 En cada paso, recorrer cualquier arco disponible, eli- giendo un puente o istmo s´olo cuando no haya alterna- tiva. 4 Al recorrer el arco, borrarlo y continuar el proceso hasta que todos lo v´ertices tengan grado cero. Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 18 / 19
  • 28. Intro Representaci´on de Grafos Recorridos Camino y Circuito de Euler Bibliograf´ıa Referencias Bibliogr´aficas Brassard, G. and Bratley, P. (1995). Fundamentals of Algorithmics. Pearson, 1ra. edition. Cormen, T. H., Leiserson, C. E., Rivest, R. L., and Stein, C. (2009). Introduction to Algorithms. The MIT Press, 3ra. edition. Diestel, R. (2005). Graph Theory. Springer-Verlag Heidelberg, 3ra. edition. Mart´ın P´erez (FCAD – UNER) Algoritmos de Grafos Noviembre de 2015 19 / 19