grafos - unican.es · 2017-03-06 · domingo gómez pérez grafos 2 / 16....

16
Grafos Domingo Gómez Pérez Domingo Gómez Pérez Grafos 1 / 16

Upload: others

Post on 15-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Grafos - unican.es · 2017-03-06 · Domingo Gómez Pérez Grafos 2 / 16. Representación(tomadodellibroAlgorithmsde Papadimitrouetal.) Domingo Gómez Pérez Grafos 3 / 16. Representacióndegrafos

Grafos

Domingo Gómez Pérez

Domingo Gómez Pérez Grafos 1 / 16

Page 2: Grafos - unican.es · 2017-03-06 · Domingo Gómez Pérez Grafos 2 / 16. Representación(tomadodellibroAlgorithmsde Papadimitrouetal.) Domingo Gómez Pérez Grafos 3 / 16. Representacióndegrafos

El problema de colorear un mapa político

Suponemos que tenemos un mapa con diferentes países y queremospintarlos de forma que países vecinos tengan colores diferentes. ¿Cómorepresentamos el problema?

Domingo Gómez Pérez Grafos 2 / 16

Page 3: Grafos - unican.es · 2017-03-06 · Domingo Gómez Pérez Grafos 2 / 16. Representación(tomadodellibroAlgorithmsde Papadimitrouetal.) Domingo Gómez Pérez Grafos 3 / 16. Representacióndegrafos

Representación (tomado del libro Algorithms dePapadimitrou et al.)

Domingo Gómez Pérez Grafos 3 / 16

Page 4: Grafos - unican.es · 2017-03-06 · Domingo Gómez Pérez Grafos 2 / 16. Representación(tomadodellibroAlgorithmsde Papadimitrouetal.) Domingo Gómez Pérez Grafos 3 / 16. Representacióndegrafos

Representación de grafos

Los grafos consisten en un conjunto de vértices y un conjunto de aristas, G= (V, E). La representación de las aristas puede ser mediante:

Matriz de adyacencia (grafos densos).Lista de nodos adyacentes (grafos dispersos).

Domingo Gómez Pérez Grafos 4 / 16

Page 5: Grafos - unican.es · 2017-03-06 · Domingo Gómez Pérez Grafos 2 / 16. Representación(tomadodellibroAlgorithmsde Papadimitrouetal.) Domingo Gómez Pérez Grafos 3 / 16. Representacióndegrafos

Recorrido en grafos (tomado del libro Algorithms dePapadimitrou et al.)

Domingo Gómez Pérez Grafos 5 / 16

Page 6: Grafos - unican.es · 2017-03-06 · Domingo Gómez Pérez Grafos 2 / 16. Representación(tomadodellibroAlgorithmsde Papadimitrouetal.) Domingo Gómez Pérez Grafos 3 / 16. Representacióndegrafos

Algoritmo explorar

explorar(v,G):visitados(v) = trueprevisit(v)para cada arista (v,u) en G.E:

si no visitado(u):explorar(u)

postvisit(v)

Domingo Gómez Pérez Grafos 6 / 16

Page 7: Grafos - unican.es · 2017-03-06 · Domingo Gómez Pérez Grafos 2 / 16. Representación(tomadodellibroAlgorithmsde Papadimitrouetal.) Domingo Gómez Pérez Grafos 3 / 16. Representacióndegrafos

Algoritmo explorar

El algoritmo explorar genera una estructura de árbol no binario.También se pueden añadir aristas de vuelta.Almacena un array de elementos del grafo que han sido visitados.

Domingo Gómez Pérez Grafos 7 / 16

Page 8: Grafos - unican.es · 2017-03-06 · Domingo Gómez Pérez Grafos 2 / 16. Representación(tomadodellibroAlgorithmsde Papadimitrouetal.) Domingo Gómez Pérez Grafos 3 / 16. Representacióndegrafos

Algoritmo explorar

¿Cual es el orden que da explorar?

Domingo Gómez Pérez Grafos 8 / 16

Page 9: Grafos - unican.es · 2017-03-06 · Domingo Gómez Pérez Grafos 2 / 16. Representación(tomadodellibroAlgorithmsde Papadimitrouetal.) Domingo Gómez Pérez Grafos 3 / 16. Representacióndegrafos

Algoritmo de recorrido en profundidad

dfs(G):para cada v en G.V:

visitados(v) = falsepara cada v en G.V:

si no visitados(v):explorar(v)

Domingo Gómez Pérez Grafos 9 / 16

Page 10: Grafos - unican.es · 2017-03-06 · Domingo Gómez Pérez Grafos 2 / 16. Representación(tomadodellibroAlgorithmsde Papadimitrouetal.) Domingo Gómez Pérez Grafos 3 / 16. Representacióndegrafos

DFS en laberintos

Domingo Gómez Pérez Grafos 10 / 16

Page 11: Grafos - unican.es · 2017-03-06 · Domingo Gómez Pérez Grafos 2 / 16. Representación(tomadodellibroAlgorithmsde Papadimitrouetal.) Domingo Gómez Pérez Grafos 3 / 16. Representacióndegrafos

DFS en laberintos malos

Domingo Gómez Pérez Grafos 11 / 16

Page 12: Grafos - unican.es · 2017-03-06 · Domingo Gómez Pérez Grafos 2 / 16. Representación(tomadodellibroAlgorithmsde Papadimitrouetal.) Domingo Gómez Pérez Grafos 3 / 16. Representacióndegrafos

Algoritmo exploración en profundidad

previsit(v)pre[v] = clockclock = clock + 1

postvisit(v)post[v] = clockclock = clock + 1

Domingo Gómez Pérez Grafos 12 / 16

Page 13: Grafos - unican.es · 2017-03-06 · Domingo Gómez Pérez Grafos 2 / 16. Representación(tomadodellibroAlgorithmsde Papadimitrouetal.) Domingo Gómez Pérez Grafos 3 / 16. Representacióndegrafos

Algoritmo exploración en profundidad

Tipos de aristas que hay en un grafo dependiendo del árbol dfs:Aristas del árbol. (Tree edges)Aristas adelante. (Forward edges)Aristas atrás. (Back edges)Aristas cruzadas. (Cross edges)

Domingo Gómez Pérez Grafos 13 / 16

Page 14: Grafos - unican.es · 2017-03-06 · Domingo Gómez Pérez Grafos 2 / 16. Representación(tomadodellibroAlgorithmsde Papadimitrouetal.) Domingo Gómez Pérez Grafos 3 / 16. Representacióndegrafos

Clasificar las aristas del siguiente grafo

Domingo Gómez Pérez Grafos 14 / 16

Page 15: Grafos - unican.es · 2017-03-06 · Domingo Gómez Pérez Grafos 2 / 16. Representación(tomadodellibroAlgorithmsde Papadimitrouetal.) Domingo Gómez Pérez Grafos 3 / 16. Representacióndegrafos

Pre/Post y clasificación de aristas

Tipo de arista (u, v) Relación entre los números pre/postarista del árbol pre[u]≤ pre[v]≤ post[v]≤ post[u]arista adelante pre[u]≤ pre[v]≤ post[v]≤ post[u]arista atrás pre[v]≤ pre[u]≤ post[u]≤ post[v]

Domingo Gómez Pérez Grafos 15 / 16

Page 16: Grafos - unican.es · 2017-03-06 · Domingo Gómez Pérez Grafos 2 / 16. Representación(tomadodellibroAlgorithmsde Papadimitrouetal.) Domingo Gómez Pérez Grafos 3 / 16. Representacióndegrafos

Aplicaciones del algoritmo DFS

Domingo Gómez Pérez Grafos 16 / 16