La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Árbol recubridor mínimo Distancias

Presentaciones similares


Presentación del tema: "Árbol recubridor mínimo Distancias"— Transcripción de la presentación:

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

2 El problema del mínimo árbol recubridor
Boruvka en 1926 se planteo el problema de minimizar el coste del tendido eléctrico en 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. Tiene que ser conexo. 2 No debería tener ciclos. 5 5 Entonces es un árbol 6 3 4 2 2 1

3 Algoritmo de Boruvka Encuentra un árbol recubridor de tamaño mínimo cuando todas las aristas tienen distintos 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.

4 u5 e4=2 Coste=0 Numero de aristas=0 u4 e7=9 e8=8 e9=6 e5=3 e6=4 u3 e2=7 e3=5 e1=1 u2 u1

5 u5 e4=2 Coste=8 Numero de aristas=3 u4 e7=9 e8=8 e9=6 e5=3 e6=4 u3 e2=7 e3=5 e1=1 u2 u1

6 u5 e4=2 Coste=11 Numero de aristas=4 u4 e7=9 e8=8 e9=6 e5=3 e6=4 u3 e2=7 e3=5 e1=1 u2 u1

7 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 Como determinar algorítmicamente si al añadir una arista se crea un 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.

8 u5 e4=2 C=[ ] Coste=0 Numero de aristas=0 u4 e7=5 e8=5 e9=6 e5=3 e6=4 u3 e2=2 e3=2 e1=1 u2 u1

9 u5 e4=2 C=[ ] Coste=1 Numero de aristas=1 u4 e7=5 e8=5 e9=6 e5=3 e6=4 u3 e2=2 e3=2 e1=1 u2 u1

10 u5 e4=2 C=[ ] Coste=3 Numero de aristas=2 u4 e7=5 e8=5 e9=6 e5=3 e6=4 u3 e2=2 e3=2 e1=1 u2 u1

11 u5 e4=2 C=[ ] Coste=3 Numero de aristas=2 u4 e7=5 e8=5 e9=6 e5=3 e6=4 u3 e2=2 e3=2 e1=1 u2 u1

12 u5 e4=2 C=[ ] Coste=5 Numero de aristas=3 u4 e7=5 e8=5 e9=6 e5=3 e6=4 u3 e2=2 e3=2 e1=1 u2 u1

13 u5 e4=2 C=[ ] Coste=8 Numero de aristas=4 u4 e7=5 e8=5 e9=6 e5=3 e6=4 u3 e2=2 e3=2 e1=1 u2 u1

14 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

15 u5 e4=2 Coste=0 Numero de aristas=0 u4 e7=5 e8=5 e9=6 e5=3 e6=4 u3 e2=2 e3=2 e1=1 u2 u1

16 u5 e4=2 Coste=2 Numero de aristas=1 u4 e7=5 e8=5 e9=6 e5=3 e6=4 u3 e2=2 e3=2 e1=1 u2 u1

17 u5 e4=2 Coste=5 Numero de aristas=2 u4 e7=5 e8=5 e9=6 e5=3 e6=4 u3 e2=2 e3=2 e1=1 u2 u1

18 u5 e4=2 Coste=6 Numero de aristas=3 u4 e7=5 e8=5 e9=6 e5=3 e6=4 u3 e2=2 e3=2 e1=1 u2 u1

19 u5 e4=2 Coste=8 Numero de aristas=4 u4 e7=5 e8=5 e9=6 e5=3 e6=4 u3 e2=2 e3=2 e1=1 u2 u1

20 Teorema (Formula de Cayley)
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 v2 v1 v2 v1 v2 v1 v2 v3 v4 v3 v4 v3 v4 v3 v4 v1 v2 v1 v2 v1 v2 v1 v2 v3 v4 v3 v4 v3 v4 v3 v4 v1 v2 v1 v2 v1 v2 v1 v2 v3 v4 v3 v4 v3 v4 v3 v4 v1 v2 v1 v2 v1 v2 v1 v2 v3 v4 v3 v4 v3 v4 v3 v4

21 W4 W3 W5 W1 W8 W7 W2 W6 W10 W9 ¿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

22 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 ∞. v u x y La distancia de u a v es 2 La distancia de x a y es ∞

23 Teorema. Dado un grafo G. Se cumple:
d(u,v) ≥ 0 y d(u,v)=0 si y solo si u=v. d(u,v)= d(v,u) para todo u, v Є V(G) d(u,v) ≤ d(u,w) + d(w,v) para todo u, v, w Є V(G) 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 tanto d(u,v) ≤ d(u,w) + d(w,v)

24 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 ≠ u a ∞, 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. .

25 u u v2 v3 Cola u v1 v5 v6 v4 v9 v8 v10 v7 u v v v v v v v v v v10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞

26 u u v2 v3 Cola v1 v2 v5 v1 v2 v5 v1 v5 v6 v4 v9 v8 v10 v7
D=1 v5 v6 v4 v9 v8 v10 v7 u v v v v v v v v v v10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞

27 u u v2 v3 Cola v2 v5 v4 v1 v2 v5 v1 v4 v5 v6 v4 v9 v8 v10 v7
D=1 v4 v5 v6 D=2 v4 v9 v8 v10 v7 u v v v v v v v v v v10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞

28 u u v2 v3 Cola v5 v4 v3 v1 v2 v5 v1 v4 v3 v5 v6 v4 v9 v8 v10 v7
D=1 v4 v3 v5 v6 D=2 v4 v9 v8 v10 v7 u v v v v v v v v v v10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞

29 u u v2 v3 Cola v4 v3 v6 v10 v1 v2 v5 v1 v4 v3 v5 v6 v4 v6 v10 v9 v8
D=1 v4 v3 v5 v6 D=2 v4 v6 v10 v9 v8 v10 v7 u v v v v v v v v v v10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞

30 u u v2 v3 Cola v3 v6 v10 v7 v1 v2 v5 v1 v4 v3 v5 v6 v4 v6 v10 v7 v9 v8
D=1 v4 v3 v5 v6 D=2 v4 v6 v10 D=3 v7 v9 v8 v10 v7 u v v v v v v v v v v10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞

31 u u v2 v3 Cola v6 v10 v7 v1 v2 v5 v1 v4 v3 v5 v6 v4 v6 v10 v7 v9 v8
D=1 v4 v3 v5 v6 D=2 v4 v6 v10 D=3 v7 v9 v8 v10 v7 u v v v v v v v v v v10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞

32 u u v2 v3 Cola v10 v7 v1 v2 v5 v1 v4 v3 v5 v6 v4 v6 v10 v7 v9 v8 v10
D=1 v4 v3 v5 v6 D=2 v4 v6 v10 D=3 v7 v9 v8 v10 v7 u v v v v v v v v v v10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞

33 u u v2 v3 Cola v7 v1 v2 v5 v1 v4 v3 v5 v6 v4 v6 v10 v7 v9 v8 v10 v7
D=1 v4 v3 v5 v6 D=2 v4 v6 v10 D=3 v7 v9 v8 v10 v7 u v v v v v v v v v v10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞

34 u u v2 v3 Cola v1 v2 v5 v1 v4 v3 v5 v6 v4 v6 v10 v7 v9 v8 v9 v10 v7 v8
D=1 v4 v3 v5 v6 D=2 v4 v6 v10 D=3 v7 v9 v8 v9 v10 v7 D=∞ v8 u v v v v v v v v v v10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞

35 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.

36 u0 8 v1 16 10 v5 11 9 v6 v7 7 13 17 6 v4 v2 14 5 v3 l(u0) v1 v2 v3 v4 v5 v6 v7 activo (S) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) u0 v5 (∞,-) (13,u0) (∞,-) (16,u0) (8,u0) (∞,-) (∞,-) (8) (18,v5) (13,u0) (25,v5) (15,v5) (∞,-) (∞,-) v2 (13) (18,v5) (25,v5) (15,v5) (∞,-) (∞,-) v4 (15) (18,v5) (20,v4) (∞,-) (∞,-) v1 (18) (20,v4) (∞,-) (∞,-) v3 (20) (∞,-) (∞,-)

37 l(u0) v1 v2 v3 v4 v5 v6 v7 activo (S)
(∞,-) (13,u0) (∞,-) (16,u0) (8,u0) (∞,-) (∞,-) (8) (18,v5) (13,u0) (25,v5) (15,v5) (∞,-) (∞,-) v2 (13) (18,v5) (25,v5) (15,v5) (∞,-) (∞,-) v4 (15) (18,v5) (20,v4) (∞,-) (∞,-) v1 (18) (20,v4) (∞,-) (∞,-) v3 (20) (∞,-) (∞,-) u0 V2(13) V5(8) V4(15) V6 (∞) V7 (∞) V1(18) V3(20)

38 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

39 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.

40 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

41 v2 e=6 e=6 v1 v4 e=3 e=5 v3 v5 e=5 e=4 v6 v8 e=4 v7 e=3 v9 e=3 Distancias: V2->27 V4->15 V9->16 V1: >27 V3: >20 V5->20 V7->15 V6: >15 V6->15 V8->15 Radio Diámetro Centro Mediana 3 6 <v4 v7 v9> Policía <v4 v6 v7 v8> Quiosco


Descargar ppt "Árbol recubridor mínimo Distancias"

Presentaciones similares


Anuncios Google