definición de cicloslos grafos directos acíclicos son muy utilizados, modelan: relaciones de...

22
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Definición de ciclos _ciclo.png _ciclo.bb ciclo.png height7.60422ptciclo.png width55.97243ptciclo.pngGraphic file (type bmp) Figura: Figura con ciclos Definición de camino Un camino en un grafo es una lista de nodos de forma que dos nodos consecutivos son adyacentes. Utilizaremos la siguiente notación: v 0 v 1 ... v n . Definición de ciclo Un ciclo es un camino donde el vértice de inicio y el final son iguales. Domingo Gómez Pérez Ciclos y grafos acíclicos 1 / 22

Upload: others

Post on 17-Mar-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Definición de ciclosLos grafos directos acíclicos son muy utilizados, modelan: relaciones de causalidad, cadenas de trabajos, parentescos, preguntas y respuestas. Domingo Gómez

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Definición de ciclos

_ciclo.png _ciclo.bb ciclo.png height7.60422ptciclo.pngwidth55.97243ptciclo.pngGraphic file (type bmp)

Figura: Figura con ciclos

Definición de caminoUn camino en un grafo es una lista de nodos de forma que dos nodosconsecutivos son adyacentes. Utilizaremos la siguiente notación:

v0 7→ v1 7→ . . . vn.

Definición de cicloUn ciclo es un camino donde el vértice de inicio y el final son iguales.

Domingo Gómez Pérez Ciclos y grafos acíclicos 1 / 22

Page 2: Definición de ciclosLos grafos directos acíclicos son muy utilizados, modelan: relaciones de causalidad, cadenas de trabajos, parentescos, preguntas y respuestas. Domingo Gómez

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

£Cómo podemos saber si un grafo tiene ciclos?

PropiedadUn grafo dirigido tiene ciclos si y solamente si realizando el algoritmo DFSaparecen aristas atrás.

Domingo Gómez Pérez Ciclos y grafos acíclicos 2 / 22

Page 3: Definición de ciclosLos grafos directos acíclicos son muy utilizados, modelan: relaciones de causalidad, cadenas de trabajos, parentescos, preguntas y respuestas. Domingo Gómez

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Ciclos

Figura: Figura con ciclos

Domingo Gómez Pérez Ciclos y grafos acíclicos 3 / 22

Page 4: Definición de ciclosLos grafos directos acíclicos son muy utilizados, modelan: relaciones de causalidad, cadenas de trabajos, parentescos, preguntas y respuestas. Domingo Gómez

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

DAG (Direct Acyclic Graphs)

Los grafos directos acíclicos son muy utilizados, modelan:relaciones de causalidad,cadenas de trabajos,parentescos,preguntas y respuestas.

Domingo Gómez Pérez Ciclos y grafos acíclicos 4 / 22

Page 5: Definición de ciclosLos grafos directos acíclicos son muy utilizados, modelan: relaciones de causalidad, cadenas de trabajos, parentescos, preguntas y respuestas. Domingo Gómez

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Propiedades de los DAGs

Figura: Ejemplo de DAG

En los DAGs hay, al menos, una fuente y un sumidero.Un DAG admite una linearización.En un DAG, cada eje lleva a nodos con menor valor post.

Domingo Gómez Pérez Ciclos y grafos acíclicos 5 / 22

Page 6: Definición de ciclosLos grafos directos acíclicos son muy utilizados, modelan: relaciones de causalidad, cadenas de trabajos, parentescos, preguntas y respuestas. Domingo Gómez

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

£En que orden hay que ponerse el equipamiento?

Figura: Tomada del libro Unlocked algorithms de T. Cormen (capítulo 5).

Domingo Gómez Pérez Ciclos y grafos acíclicos 6 / 22

Page 7: Definición de ciclosLos grafos directos acíclicos son muy utilizados, modelan: relaciones de causalidad, cadenas de trabajos, parentescos, preguntas y respuestas. Domingo Gómez

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Grafos con pesos en las aristas

Figura: Grafo con pesos

Domingo Gómez Pérez Ciclos y grafos acíclicos 7 / 22

Page 8: Definición de ciclosLos grafos directos acíclicos son muy utilizados, modelan: relaciones de causalidad, cadenas de trabajos, parentescos, preguntas y respuestas. Domingo Gómez

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Otro ejemplo de ordenación lineal

Domingo Gómez Pérez Ciclos y grafos acíclicos 8 / 22

Page 9: Definición de ciclosLos grafos directos acíclicos son muy utilizados, modelan: relaciones de causalidad, cadenas de trabajos, parentescos, preguntas y respuestas. Domingo Gómez

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Camino crítico en un grafo

Domingo Gómez Pérez Ciclos y grafos acíclicos 9 / 22

Page 10: Definición de ciclosLos grafos directos acíclicos son muy utilizados, modelan: relaciones de causalidad, cadenas de trabajos, parentescos, preguntas y respuestas. Domingo Gómez

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Camino crítico

El camino crítico en un grafo es el camino cuya suma de longitudes dearistas es máxima entre todos los posibles caminos.

Domingo Gómez Pérez Ciclos y grafos acíclicos 10 / 22

Page 11: Definición de ciclosLos grafos directos acíclicos son muy utilizados, modelan: relaciones de causalidad, cadenas de trabajos, parentescos, preguntas y respuestas. Domingo Gómez

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Camino mínimo

El camino mínimo entre dos vértices u,v es cualquier con longitud mínimaentre u y v.

Domingo Gómez Pérez Ciclos y grafos acíclicos 11 / 22

Page 12: Definición de ciclosLos grafos directos acíclicos son muy utilizados, modelan: relaciones de causalidad, cadenas de trabajos, parentescos, preguntas y respuestas. Domingo Gómez

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Caminos mínimos en DAGs

Linearizar el DAG.Llevar dos arrays distancia y predecesorRecorrer los vertices en el orden dado por linearizar e ir actualizandotanto el array de distancias y el predecesor

Domingo Gómez Pérez Ciclos y grafos acíclicos 12 / 22

Page 13: Definición de ciclosLos grafos directos acíclicos son muy utilizados, modelan: relaciones de causalidad, cadenas de trabajos, parentescos, preguntas y respuestas. Domingo Gómez

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Problemas de DFS

Domingo Gómez Pérez Ciclos y grafos acíclicos 13 / 22

Page 14: Definición de ciclosLos grafos directos acíclicos son muy utilizados, modelan: relaciones de causalidad, cadenas de trabajos, parentescos, preguntas y respuestas. Domingo Gómez

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

BFS (Busqueda en anchura)

_fisico.png _fisico.bb fisico.png height7.60422ptfisico.pngwidth58.55753ptfisico.pngGraphic file (type

bmp)

Imagen tomada de Algorithms ( Papadimitriou, C. H. et al)

Domingo Gómez Pérez Ciclos y grafos acíclicos 14 / 22

Page 15: Definición de ciclosLos grafos directos acíclicos son muy utilizados, modelan: relaciones de causalidad, cadenas de trabajos, parentescos, preguntas y respuestas. Domingo Gómez

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

BFS (Busqueda en anchura)

1 BFS(G,s):2 for(int u: G.V):3 distancia[u]=Double.Infinity;4 distancia[s] = 0;5 Q = Queue(s);6 while !Q.isEmpty(){7 u = Q.poll();8 for((u,v): G.E){9 if(distancia[v] == Double.Infinity)

10 {11 Q.push(v);12 distancia[v]=distancia[u] + 1;13 }1415 }16 }

Domingo Gómez Pérez Ciclos y grafos acíclicos 15 / 22

Page 16: Definición de ciclosLos grafos directos acíclicos son muy utilizados, modelan: relaciones de causalidad, cadenas de trabajos, parentescos, preguntas y respuestas. Domingo Gómez

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

BFS con longitudes de aristas enteras

_pesos.png _pesos.bb pesos.png height7.60422ptpesos.pngwidth60.23045ptpesos.pngGraphic file (type bmp)

Figura: Dos grafos equivalentes para BFS

Domingo Gómez Pérez Ciclos y grafos acíclicos 16 / 22

Page 17: Definición de ciclosLos grafos directos acíclicos son muy utilizados, modelan: relaciones de causalidad, cadenas de trabajos, parentescos, preguntas y respuestas. Domingo Gómez

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

BFS con longitudes de aristas enteras

1 Elegir un nodo de inicio s.2 Poner la alarma de ese nodo a 0.3 Repetir mientras haya alarmas.

1 Denotemos T el tiempo de la siguiente alarma y nos despertamos en u.2 Ponemos la distancia de u a T.3 A cada uno de sus vecinos le asignamos el menor valor entre la alarma

que da T mas la longitud de la arista que los une o la que tienen.

Domingo Gómez Pérez Ciclos y grafos acíclicos 17 / 22

Page 18: Definición de ciclosLos grafos directos acíclicos son muy utilizados, modelan: relaciones de causalidad, cadenas de trabajos, parentescos, preguntas y respuestas. Domingo Gómez

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

El algoritmo de Dijkstra

El algoritmo de Dijkstra implementa el sistema de alarmas con una cola deprioridad que tiene las siguientes operaciones:

InsertDecrease-keyDelete-minMake-queue

Domingo Gómez Pérez Ciclos y grafos acíclicos 18 / 22

Page 19: Definición de ciclosLos grafos directos acíclicos son muy utilizados, modelan: relaciones de causalidad, cadenas de trabajos, parentescos, preguntas y respuestas. Domingo Gómez

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

El algoritmo de Dijkstra

1 update(u,v):2 if (dist[v] > dist(u) + l(u,v))3 {4 dist[v] = dist(u) + l(u,v);5 prev[v] = u;6 Decrease-key(H,v);7 }

Domingo Gómez Pérez Ciclos y grafos acíclicos 19 / 22

Page 20: Definición de ciclosLos grafos directos acíclicos son muy utilizados, modelan: relaciones de causalidad, cadenas de trabajos, parentescos, preguntas y respuestas. Domingo Gómez

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

El algoritmo de Dijkstra

1 dijkstra (G, l, s):2 for (v: V)3 {4 dist[v] = Infinity;5 prev[v] = nil;6 }7 dist[s] = 0;8 H = makequeue(s); // Hacer la cola de prioridad9 while(!H.empty())

10 {11 u = H.Delete-min();12 for ((u,v): E)13 {14 update(u,v);15 }1617 }

Domingo Gómez Pérez Ciclos y grafos acíclicos 20 / 22

Page 21: Definición de ciclosLos grafos directos acíclicos son muy utilizados, modelan: relaciones de causalidad, cadenas de trabajos, parentescos, preguntas y respuestas. Domingo Gómez

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

El algoritmo de Dijkstra con pesos negátivos

_negativos.png _negativos.bb _negativos.bb" negativos.pngGraphic file

(type bmp)

Figura: Grafo con pesos negativos

Domingo Gómez Pérez Ciclos y grafos acíclicos 21 / 22

Page 22: Definición de ciclosLos grafos directos acíclicos son muy utilizados, modelan: relaciones de causalidad, cadenas de trabajos, parentescos, preguntas y respuestas. Domingo Gómez

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

El algoritmo de Bellman-Ford

1 BellmanFord (G, l, s):2 for (v: V)3 {4 dist[v] = Infinity;5 prev[v] = nil;6 }7 dist[s] = 0;8 for(v:V)9 {

10 for(e:E)11 {12 update(e);13 }14 }

Domingo Gómez Pérez Ciclos y grafos acíclicos 22 / 22