Teoría de Grafos Árbol recubridor mínimo Distancias.

41
Teoría de Grafos Árbol recubridor mínimo Distancias

Transcript of Teoría de Grafos Árbol recubridor mínimo Distancias.

Page 1: Teoría de Grafos Árbol recubridor mínimo Distancias.

Teoría de Grafos

Árbol recubridor mínimo Distancias

Page 2: Teoría de Grafos Árbol recubridor mínimo Distancias.

El problema del mínimo árbol recubridor

Boruvka en 1926 se planteo el problema de minimizar el coste del tendido eléctricoen las áreas rurales de Moravia (Republica Checa).Tenemos unas ciertas aldeas representadas por vértices y queremos conectar las líneas telefónicas con el menor coste posible.

Entonces es un árbol

2

5 5

43

2

6

1

2

Tiene que ser conexo.

No debería tener ciclos.

Page 3: Teoría de Grafos Árbol recubridor mínimo Distancias.

Algoritmo de Boruvka

Encuentra un árbol recubridor de tamaño mínimo cuando todas las aristas tienendistintos pesos.

1.- Inicializar F como el conjunto de vertices del grafo.Mientras el numero de aristas en F sea menor que p.2.- Unir cada componente con otra componente a traves de una arista de coste mínimo.

Page 4: Teoría de Grafos Árbol recubridor mínimo Distancias.

Coste=0Numero de aristas=0

e3=5

e7=9 e8=8

e6=4e5=3

e4=2

e9=6

e1=1

e2=7

u1

u4

u3

u5

u2

Page 5: Teoría de Grafos Árbol recubridor mínimo Distancias.

e3=5

e7=9 e8=8

e6=4e5=3

e4=2

e9=6

e1=1

e2=7

u1

u4

u3

u5

u2

Coste=8Numero de aristas=3

Page 6: Teoría de Grafos Árbol recubridor mínimo Distancias.

e3=5

e7=9 e8=8

e6=4e5=3

e4=2

e9=6

e1=1

e2=7

u1

u4

u3

u5

u2

Coste=11Numero de aristas=4

Page 7: Teoría de Grafos Árbol recubridor mínimo Distancias.

Algoritmo de Kruskal (1956)• Inicializar el conjunto S al conjunto vacio. S consistirá de las aristas del árbol

recubridor mínimo.• Mientras el numero de aristas sea menor que p

– Añadir a S la arista e de peso mínimo que no forme ciclo

1.- Ordenar las aristas en función del peso.2.- Crear un vector C de longitud p con valores desde 1 hasta p.3. Si queremos añadir la arista vj vk entonces

-si C(vj) es distinto de C(vk) no forma ciclo.Lo añadimos y actualizamos C. Sea m=mínimo (j ,k) y M=máximo (j ,k).Para todo vértice cuyo valor en C es M le asignamos m.- Si son iguales entonces forman ciclo y no utilizamos esa aristas.

Como determinar algorítmicamente si al añadir una arista se crea un ciclo?

Page 8: Teoría de Grafos Árbol recubridor mínimo Distancias.

e3=2

e7=5 e8=5

e6=4e5=3

e4=2

e9=6

e1=1

e2=2

u1

u4

u3

u5

u2

C=[1 2 3 4 5]Coste=0Numero de aristas=0

Page 9: Teoría de Grafos Árbol recubridor mínimo Distancias.

e3=2

e7=5 e8=5

e6=4e5=3

e4=2

e9=6

e1=1

e2=2

u1

u4

u3

u5

u2

C=[1 1 3 4 5]Coste=1Numero de aristas=1

Page 10: Teoría de Grafos Árbol recubridor mínimo Distancias.

e3=2

e7=5 e8=5

e6=4e5=3

e4=2

e9=6

e1=1

e2=2

u1

u4

u3

u5

u2

C=[1 1 1 4 5]Coste=3Numero de aristas=2

Page 11: Teoría de Grafos Árbol recubridor mínimo Distancias.

e3=2

e7=5 e8=5

e6=4e5=3

e4=2

e9=6

e1=1

e2=2

u1

u4

u3

u5

u2

C=[1 1 1 4 5]Coste=3Numero de aristas=2

Page 12: Teoría de Grafos Árbol recubridor mínimo Distancias.

e3=2

e7=5 e8=5

e6=4e5=3

e4=2

e9=6

e1=1

e2=2

u1

u4

u3

u5

u2

C=[1 1 1 4 4]Coste=5Numero de aristas=3

Page 13: Teoría de Grafos Árbol recubridor mínimo Distancias.

e3=2

e7=5 e8=5

e6=4e5=3

e4=2

e9=6

e1=1

e2=2

u1

u4

u3

u5

u2

C=[1 1 1 1 1]Coste=8Numero de aristas=4

Page 14: Teoría de Grafos Árbol recubridor mínimo Distancias.

Algoritmo de Prim(1957)

1.- Inicializar un árbol T con un vértice aleatorio.2.- Mientras el árbol no tenga mas de p-1 aristas

-añadir el vértice que no pertenece a T que se une a T a través de una arista con coste mínimo

Page 15: Teoría de Grafos Árbol recubridor mínimo Distancias.

e3=2

e7=5 e8=5

e6=4e5=3

e4=2

e9=6

e1=1

e2=2

u1

u4

u3

u5

u2

Coste=0Numero de aristas=0

Page 16: Teoría de Grafos Árbol recubridor mínimo Distancias.

e3=2

e7=5 e8=5

e6=4e5=3

e4=2

e9=6

e1=1

e2=2

u1

u4

u3

u5

u2

Coste=2Numero de aristas=1

Page 17: Teoría de Grafos Árbol recubridor mínimo Distancias.

e3=2

e7=5 e8=5

e6=4e5=3

e4=2

e9=6

e1=1

e2=2

u1

u4

u3

u5

u2

Coste=5Numero de aristas=2

Page 18: Teoría de Grafos Árbol recubridor mínimo Distancias.

e3=2

e7=5 e8=5

e6=4e5=3

e4=2

e9=6

e1=1

e2=2

u1

u4

u3

u5

u2

Coste=6Numero de aristas=3

Page 19: Teoría de Grafos Árbol recubridor mínimo Distancias.

e3=2

e7=5 e8=5

e6=4e5=3

e4=2

e9=6

e1=1

e2=2

u1

u4

u3

u5

u2

Coste=8Numero de aristas=4

Page 20: Teoría de Grafos Árbol recubridor mínimo Distancias.

Teorema (Formula de Cayley). Sea G un grafo completo etiquetado de orden p.Entonces existen p p-2 árboles recubridores mínimos de G.

Ejemplo. Si p=4. Entonces tendremos 42 = 16 árboles recubridores mínimos

v1

v3 v4

v2

v1

v3 v4

v2v1

v3 v4

v2v1

v3 v4

v2

v1

v3 v4

v2v1

v3 v4

v2 v1

v3 v4

v2v1

v3 v4

v2

v1

v3 v4

v2

v1

v3 v4

v2

v1

v3 v4

v2 v1

v3 v4

v2

v1

v3 v4

v2

v1

v3 v4

v2

v1

v3 v4

v2 v1

v3 v4

v2

Page 21: Teoría de Grafos Árbol recubridor mínimo Distancias.

W1 W7W8

W5W3

W4

W10 W6

W9

W2

¿Cómo mandar un mensaje desde la Workstation 1 a la Workstation 2 de la forma mas rápida. Dos posibles opciones serian:(i) W1-W3-W5-W4-W2(ii) W1-W10-W6-W9-W2

Page 22: Teoría de Grafos Árbol recubridor mínimo Distancias.

Definición: Dado un grafo G y un par de vértices u y v , la distancia de u a v es la longitud del camino mas corto de u a v. Si no existe un camino de u a v entonces la distancia se define como ∞.

La distancia de u a v es 2 La distancia de x a y es ∞

u v x

y

Page 23: Teoría de Grafos Árbol recubridor mínimo Distancias.

Teorema. Dado un grafo G. Se cumple:(i) d(u,v) ≥ 0 y d(u,v)=0 si y solo si u=v.(ii) d(u,v)= d(v,u) para todo u, v Є V(G)(iii) d(u,v) ≤ d(u,w) + d(w,v) para todo u, v, w Є V(G)

(i) Evidentemente d(u,v) ≥ 0, ya la distancia es el mínimo numero de aristas para llegar de u a v. Si no están conectados será ∞. Si es 0 no hay aristas y es el mismo vértice.

(ii) Simplemente recorrer el camino al revés.(iii) Sea P el camino mas corto de u a w y Q el camino mas corto de w a v. Entonces P seguido de Q es una cadena de u a v que tiene longitud d(u,w)+d(w,v). Vimos que dada una cadena existe un camino de u a v. Por tantod(u,v) ≤ d(u,w) + d(w,v)

Page 24: Teoría de Grafos Árbol recubridor mínimo Distancias.

Algoritmo extendido Moore’s Breadth First Search

Permite encontrar el camino más corto desde un vértice u a cualquier vértice v del grafo.

1.- Inicializar la distancia l de u a a u a 0, l (u ,u)=0 y la distancia de u a v donde v ≠ ua ∞, l( u, v)= ∞ .2.- Poner u en la cola.Hasta que la cola se quede vacía

3.-Eliminar el primer elemento x de la cola.4.-Añadir los vecinos y del vértice eliminado que tienen distancia infinita a la cola y asignarles l( y) = l( x)+1.

.

Page 25: Teoría de Grafos Árbol recubridor mínimo Distancias.

v1

v7

v4

v10

v8

v9

v6

v3v2

v5

u

u v1 v2 v3 v4 v5 v6 v7 v8 v9 v10

0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞

Colau

u

Page 26: Teoría de Grafos Árbol recubridor mínimo Distancias.

v1

v7

v4

v10

v8

v9

v6

v3v2

v5

u

u v1 v2 v3 v4 v5 v6 v7 v8 v9 v10

0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞0 1 1 ∞ ∞ 1 ∞ ∞ ∞ ∞ ∞

Colav1 v2 v5

u

v1v5

D=1

v2

Page 27: Teoría de Grafos Árbol recubridor mínimo Distancias.

v1

v7

v4

v10

v8

v9

v6

v3v2

v5

u

u v1 v2 v3 v4 v5 v6 v7 v8 v9 v10

0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞0 1 1 ∞ ∞ 1 ∞ ∞ ∞ ∞ ∞0 1 1 ∞ 2 1 ∞ ∞ ∞ ∞ ∞

Colav2 v5 v4

u

v1v5

D=1

v2

D=2v4

Page 28: Teoría de Grafos Árbol recubridor mínimo Distancias.

v1

v7

v4

v10

v8

v9

v6

v3v2

v5

u

u v1 v2 v3 v4 v5 v6 v7 v8 v9 v10

0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞0 1 1 ∞ ∞ 1 ∞ ∞ ∞ ∞ ∞0 1 1 ∞ 2 1 ∞ ∞ ∞ ∞ ∞0 1 1 2 2 1 ∞ ∞ ∞ ∞ ∞

Colav5 v4 v3

u

v1v5

D=1

v2

D=2v4 v3

Page 29: Teoría de Grafos Árbol recubridor mínimo Distancias.

v1

v7

v4

v10

v8

v9

v6

v3v2

v5

u

u v1 v2 v3 v4 v5 v6 v7 v8 v9 v10

0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞0 1 1 ∞ ∞ 1 ∞ ∞ ∞ ∞ ∞0 1 1 ∞ 2 1 ∞ ∞ ∞ ∞ ∞0 1 1 2 2 1 ∞ ∞ ∞ ∞ ∞0 1 1 2 2 1 2 ∞ ∞ ∞ 2

Colav4 v3 v6 v10

u

v1v5

D=1

v2

D=2v4 v3

v6 v10

Page 30: Teoría de Grafos Árbol recubridor mínimo Distancias.

v1

v7

v4

v10

v8

v9

v6

v3v2

v5

u

u v1 v2 v3 v4 v5 v6 v7 v8 v9 v10

0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞0 1 1 ∞ ∞ 1 ∞ ∞ ∞ ∞ ∞0 1 1 ∞ 2 1 ∞ ∞ ∞ ∞ ∞0 1 1 2 2 1 ∞ ∞ ∞ ∞ ∞0 1 1 2 2 1 2 ∞ ∞ ∞ 20 1 1 2 2 1 2 3 ∞ ∞ 2

Colav3 v6 v10 v7

u

v1v5

D=1

v2

D=2v4 v3

v6 v10

D=3 v7

Page 31: Teoría de Grafos Árbol recubridor mínimo Distancias.

v1

v7

v4

v10

v8

v9

v6

v3v2

v5

u

u v1 v2 v3 v4 v5 v6 v7 v8 v9 v10

0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞0 1 1 ∞ ∞ 1 ∞ ∞ ∞ ∞ ∞0 1 1 ∞ 2 1 ∞ ∞ ∞ ∞ ∞0 1 1 2 2 1 ∞ ∞ ∞ ∞ ∞0 1 1 2 2 1 2 ∞ ∞ ∞ 20 1 1 2 2 1 2 3 ∞ ∞ 2

Colav6 v10 v7

u

v1v5

D=1

v2

D=2v4 v3

v6 v10

D=3 v7

Page 32: Teoría de Grafos Árbol recubridor mínimo Distancias.

v1

v7

v4

v10

v8

v9

v6

v3v2

v5

u

u v1 v2 v3 v4 v5 v6 v7 v8 v9 v10

0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞0 1 1 ∞ ∞ 1 ∞ ∞ ∞ ∞ ∞0 1 1 ∞ 2 1 ∞ ∞ ∞ ∞ ∞0 1 1 2 2 1 ∞ ∞ ∞ ∞ ∞0 1 1 2 2 1 2 ∞ ∞ ∞ 20 1 1 2 2 1 2 3 ∞ ∞ 2

Colav10 v7

u

v1v5

D=1

v2

D=2v4 v3

v6 v10

D=3 v7

Page 33: Teoría de Grafos Árbol recubridor mínimo Distancias.

v1

v7

v4

v10

v8

v9

v6

v3v2

v5

u

u v1 v2 v3 v4 v5 v6 v7 v8 v9 v10

0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞0 1 1 ∞ ∞ 1 ∞ ∞ ∞ ∞ ∞0 1 1 ∞ 2 1 ∞ ∞ ∞ ∞ ∞0 1 1 2 2 1 ∞ ∞ ∞ ∞ ∞0 1 1 2 2 1 2 ∞ ∞ ∞ 20 1 1 2 2 1 2 3 ∞ ∞ 2

Colav7

u

v1v5

D=1

v2

D=2v4 v3

v6 v10

D=3 v7

Page 34: Teoría de Grafos Árbol recubridor mínimo Distancias.

v1

v7

v4

v10

v8

v9

v6

v3v2

v5

u

u v1 v2 v3 v4 v5 v6 v7 v8 v9 v10

0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞0 1 1 ∞ ∞ 1 ∞ ∞ ∞ ∞ ∞0 1 1 ∞ 2 1 ∞ ∞ ∞ ∞ ∞0 1 1 2 2 1 ∞ ∞ ∞ ∞ ∞0 1 1 2 2 1 2 ∞ ∞ ∞ 20 1 1 2 2 1 2 3 ∞ ∞ 2

Colau

v1v5

D=1

v2

D=2v4 v3

v6 v10

D=3 v7

v8

v9D=∞

Page 35: Teoría de Grafos Árbol recubridor mínimo Distancias.

Algoritmo de Dijkstra

1.- Inicializa la distancia de u a todos los vértices v ≠ u a ∞ y la distancia de u a u a 0.Crear un conjunto S donde están los vértices cuya distancia ya esta determinada S<-u.Contador=0.

Mientras contador sea menor que p -1. Siendo p el orden del grafo.

2.- Para cada vértice v que no pertenece a S y es adyacente al ultimo vértice añadido a S: si l(v) ≤ l(ui) +w(ui,v) entonces no hacer nada, de otra forma l(v) = l(ui) +w(ui,v).

3.- De los vértices que no pertenecen a S, Determinar el que tiene menor distancia y añadirlo a S

4.Contador= Contador+1.

Page 36: Teoría de Grafos Árbol recubridor mínimo Distancias.

v1 v5

v6

v2 v3

v4

v7

u0

16

13

10

911

6

14 5

7

8

17

l(u0) v1 v2 v3 v4 v5 v6 v7 activo (S)

0 (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) u0

(∞,-) (13,u0) (∞,-) (16,u0) (8,u0) (∞,-) (∞,-) v5

(18,v5) (13,u0) (25,v5) (15,v5) (∞,-) (∞,-)

(8)

v2 (13)

(18,v5) (25,v5) (15,v5) (∞,-) (∞,-) v4 (15)

(18,v5) (20,v4) (∞,-) (∞,-) v1 (18)

(20,v4) (∞,-) (∞,-) v3 (20)

(∞,-) (∞,-)

Page 37: Teoría de Grafos Árbol recubridor mínimo Distancias.

l(u0) v1 v2 v3 v4 v5 v6 v7 activo (S)

0 (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) u0

(∞,-) (13,u0) (∞,-) (16,u0) (8,u0) (∞,-) (∞,-) v5

(18,v5) (13,u0) (25,v5) (15,v5) (∞,-) (∞,-)

(8)

v2 (13)

(18,v5) (25,v5) (15,v5) (∞,-) (∞,-) v4 (15)

(18,v5) (20,v4) (∞,-) (∞,-) v1 (18)

(20,v4) (∞,-) (∞,-) v3 (20)

(∞,-) (∞,-)

V3(20)

V4(15)

V5(8)

u0

V1(18)

V2(13)

V6 (∞) V7 (∞)

Page 38: Teoría de Grafos Árbol recubridor mínimo Distancias.

Observación: El algoritmo de Dijkstra es mas general que Moore ya que poniendo 1 como peso también encontraría el camino con menos aristas

Page 39: Teoría de Grafos Árbol recubridor mínimo Distancias.

Centro y mediana de un grafo

Si en el grafo anterior, las aristas representan calles y los vértices intersecciones.¿Dónde colocar un puesto de policía? ¿Y un quiosco?

El puesto de policía debería estar en el vértice que minimice el tiempo de respuesta entre la estación y el posible punto de acción. ES decir, minimizar la distancia mas larga.El quiosco debería minimizar el promedio de las distancias al puesto.

Page 40: Teoría de Grafos Árbol recubridor mínimo Distancias.

Se define la excentricidad de un vértice v en un grafo como la distancia de v al vértice mas lejano.

Se define el radio de un grafo como el mínimo de las excentricidades de los vértices del grafo.

Se define el diámetro de un grafo como el máximo de las excentricidades del grafo.

Se define el centro del grafo como el subgrafo inducido por los vértices con excentricidad igual al radio.

Se define la distancia de un vértice v en un grafo como la suma de las distancias de v a cada vértice de G.Se define la mediana como el subgrafo inducido por los vértices que tienen mínima distancia

Page 41: Teoría de Grafos Árbol recubridor mínimo Distancias.

v7

v4

v9

v6

v3

v1

v8

v5

v2e=6

e=3

e=5

e=4

e=3

e=3

e=5

e=6

e=4

Distancias:

V1: 1 2 3 3 3 4 5 6->27

V3: 1 1 2 2 2 3 4 5->20

V6: 2 1 1 1 1 2 3 4->15

V9->16

V8->15

V7->15

V6->15

V5->20

V4->15V2->27

RadioDiámetroCentroMediana

36

<v4 v6 v7 v8>

<v4 v7 v9> Policía

Quiosco