Árbol recubridor mínimo Distancias

Slides:



Advertisements
Presentaciones similares
Branch-and-bound Search
Advertisements

Tania Guzmán García Luis González Varela Alexandre González Rivas
ALGORITMOS DE KRUSKAL Y PRIM
Caminos más cortos a partir de múltiples fuentes en un grafo
GRAFOS Presentado por: Oscar Leonardo Ramírez John Freddy Sandoval
Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.
GRAFOS: ALGORITMOS FUNDAMENTALES
Grupo 4 Matías Melgar Pablo Carbonell
OPTIMIZACIÓN EN REDES EN ALGUNOS PROBLEMAS DE OPTIMIZACIÓN PUEDE SER ÚTIL REPRESENTAR EL PROBLEMA A TRAVÉS DE UNA GRÁFICA: ruteo de vehículos, distribución.
MATEMÁTICAS DISCRETAS.
Instituto Tecnológico De Villahermosa
Grafos dualmente cordales y sus relaciones con otros tipos de grafos

Recurrencia Programación II 3-4 de febrero de 2009.
Teoría de Grafos.
Chantal de Leste Conde David Ramos Navarro
Complejidad Problemas NP-Completos
Problemes de Viatjants
AED I. Estructuras de Datos.
GRAFOS HUGO ARAYA CARRASCO.
Teoría de Grafos.
1 Algoritmos Elementales de Grafos Agustín J. González ELO-320: Estructura de Datos Y Algoritmos 1er.Sem
Programación entera y grafos
Matemáticas para Ciencias de la Computación MCC3182
PROGRAMACIÓN PARALELA EN ALGORITMOS SOBRE GRAFOS
Ejemplos de Grafos: Red de tráfico con caminos y cruces.
Grafos. Un Grafo G es un par de conjuntos (V, E), donde V es un conjunto no vacío de elementos llamados vértices o nodos y E es un conjunto formado por.
Teoria de grafos.-clase 4
Problemas de proximidad
Definiciones: conjuntos, grafos, y árboles
Trabajo presentado por: LUIS FERNANDO OBANDO ING
Single-Source Shortest Paths “Camino más corto desde/hacia una fuente”
Problemas de Decisión y Optimización
Matemáticas Discretas
APLICACIÓN DEL ALGORITMO FAST MARCHING EN AMBIENTES TRIDIMENSIONALES: CASO DE ESTUDIO EN IMÁGENES MÉDICAS Autor: Luis Andrés Almanza Caicedo Director Leonardo.
Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
Diagramas de Voronoi.

Métodos de Búsqueda Informada. Búsqueda de la mejor Ruta En esta sección no sólo nos interesa encontrar una posible ruta, sino obtener aquella ruta que.
A LGORITMO DE BÚSQUEDA POR COSTO UNIFORME Dorian López.
Sesión 6: Campos de Markov
Diseño y análisis de algoritmos
Parte II. Algorítmica. 3. Algoritmos voraces.
Grafos planos Jose hungria.
Teoría de Grafos.-Clase 2

Diseño y análisis de algoritmos
INSTITUTO TECNOLÓGICO DE VILLAHERMOSA. CATEDRATICO:
Estructuras de datos para Grafos
s t a c b d Grafos.
Modelos de Conectividad
Coloración de grafos Teoría de Grafos
Sesión 3: Teoría de Grafos
Minimum Spanning Tree (Árbol de Expansión Mínima)
Definiciones: conjuntos, grafos, y árboles
TEMA 5: El problema del flujo con costo mínimo
Flujo en redes Def: una red N es un grafo orientado conexo que tiene dos nodos distinguidos una fuente s con grado de salida positivo y un sumidero t con.
Cecilia Laborde González
Estructura de Datos 4 Grafos Dirigidos
Instituto Tecnológico De Villahermosa Alumno: Lázaro García Hernández.
Centro y mediana de un grafo
UNIDAD 2 Grafos Árboles abarcadores mínimos Caminos más cortos.
Matemática Aplicada I Alberto Márquez Envolvente convexa Tema 5.
ANALISIS DE REDES Problema de Transporte Método de la esquina Noroeste
Capítulo 8: Árboles Autor: José Alfredo Jiménez Murillo.
M.C. Meliza Contreras González
Matemáticas Discretas MISTI
Recorridos de grafos Segunda Parte M.C. Meliza Contreras González.
TEORÍA DE GRAFOS -Algoritmo de Dijkstra -Algoritmo de Primm -Algoritmo de Kruskal Integrantes:
Transcripción de la presentación:

Árbol recubridor mínimo Distancias 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é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

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.

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

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

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

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.

u5 e4=2 C=[1 2 3 4 5] 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

u5 e4=2 C=[1 1 3 4 5] 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

u5 e4=2 C=[1 1 1 4 5] 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

u5 e4=2 C=[1 1 1 4 5] 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

u5 e4=2 C=[1 1 1 4 4] 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

u5 e4=2 C=[1 1 1 1 1] 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

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

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

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

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

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

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

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

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

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 ∞

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)

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

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

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 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 1 1 ∞ ∞ 1 ∞ ∞ ∞ ∞ ∞

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 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 1 1 ∞ ∞ 1 ∞ ∞ ∞ ∞ ∞ 0 1 1 ∞ 2 1 ∞ ∞ ∞ ∞ ∞

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 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 ∞ ∞ ∞ ∞ ∞

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

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 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 0 1 1 2 2 1 2 3 ∞ ∞ 2

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 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 0 1 1 2 2 1 2 3 ∞ ∞ 2

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 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 0 1 1 2 2 1 2 3 ∞ ∞ 2

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 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 0 1 1 2 2 1 2 3 ∞ ∞ 2

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 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 0 1 1 2 2 1 2 3 ∞ ∞ 2

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.

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) 0 (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) 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) (∞,-) (∞,-)

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)

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

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.

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

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: 1 2 3 3 3 4 5 6->27 V3: 1 1 2 2 2 3 4 5->20 V5->20 V7->15 V6: 2 1 1 1 1 2 3 4->15 V6->15 V8->15 Radio Diámetro Centro Mediana 3 6 <v4 v7 v9> Policía <v4 v6 v7 v8> Quiosco