Caminos más cortos a partir de múltiples fuentes en un grafo

Slides:



Advertisements
Presentaciones similares
Diseño y análisis de algoritmos
Advertisements

Diseño y análisis de algoritmos
GRAFOS Presentado por: Oscar Leonardo Ramírez John Freddy Sandoval
ESTRUCTURA DE DATOS Unidad 04 Árboles BINARIOS DE BUSQUEDA.
Hoja 3.- Grafos ej ¿Cuál es el mínimo número de veces que hay que levantar el lápiz del papel para trazar los siguientes dibujos? El primer.
GRAFOS: ALGORITMOS FUNDAMENTALES
MATEMÁTICAS DISCRETAS.
Instituto Tecnológico De Villahermosa
Reunión de Grupo Operativo y Coordinadores de Comisiones Técnicas, 23 de marzo Programa de Actividades del CCDS-RCO 2007.
5. Propiedades de los Lenguajes Recursivamente
NÚMEROS FRACCIONARIOS (Antes Quebrados)
ESTRUCTURAS DE DATOS AVANZADAS
Métodos Programación dinámica Función Costo Ponderación
Búsqueda Informada Heurísticas.
Algoritmos Aleatorizados
Método de Ford-Fulkerson

Cuerpos vinculados F m2 m1

La hipérbola Matemáticas Preuniversitarias

Circunferencia. Presentado por: María del Rosario Ochoa Guerrero.
Recurrencia Programación II 3-4 de febrero de 2009.

Teoría de Grafos.
Analisis y Diseño de Algoritmos Tema: Grafos 3ra Parte
Problemes de Viatjants
AED I. Estructuras de Datos.
GRAFOS HUGO ARAYA CARRASCO.
Teoría de Grafos.
PROGRAMACIÓN PARALELA EN ALGORITMOS SOBRE GRAFOS
Ejemplos de Grafos: Red de tráfico con caminos y cruces.
Ciudad de Könisberg, Prusia, en XVIII:
Teoria de grafos.-clase 4
TRANSFORMACIONES LINEALES PARA REDES NEURALES ARTIFICIALES
Árbol recubridor mínimo Distancias
TEMA 4 TRANSFORMADA DE LAPLACE
Single-Source Shortest Paths “Camino más corto desde/hacia una fuente”
Estructura de Datos y Algoritmos

Diseño y análisis de algoritmos

Parte II. Algorítmica. 3. Algoritmos voraces.
Teoría de Grafos.-Clase 2

Optimizar caminos en el mapa de la simulación Juan Ramón Pérez Pérez Mª del Puerto Paule Ruiz Esta obra es publicada bajo una licencia Creative Commons.licencia.
INSTITUTO TECNOLÓGICO DE VILLAHERMOSA. CATEDRATICO:
METODOS DE BUSQUEDA INFORMADOS CAPITULO 5
Jorge Mondragón Leonardo Herrera Cristian Fernández
Tópicos I Árboles, montículos y grafos
EQUIPO #7 Aplicaciones de Grafos Erick Ramiro Adrián.
Experimentación Numérica
1 Single-Source Shortest Paths “Camino más corto desde/hacia una fuente” Agustín J. González ELO320: Estructura de Datos y Algoritmos 1.er. Sem
Sabemos reconocerlas, y calcularlas como soluciones de sistemas de ecuaciones, o de desigualdades Buscamos métodos de cálculo generales y eficientes Problemas.
1 Flujo Máximo Agustín J. González ELO320: Estructura de Datos y Algoritmos.
Algoritmo de Dijkstra para ruta más corta. Ejemplo 1.
Estructura de Datos 4 Grafos Dirigidos
Instituto Tecnológico De Villahermosa Alumno: Lázaro García Hernández.
Heap Fibonacci heap de Fibonacci es una estructura de datos similar a un heap binomial pero con mejor coste amortizado. se utiliza para mejorar el tiempo.
UNIDAD 2 Grafos Árboles abarcadores mínimos Caminos más cortos.
Lab.5: Algoritmos paralelos para grafos y búsqeuda Algoritmos paralelos Glen Rodríguez.
METODOS DE BUSQUEDA EN C++ Oscar Michel Ruiz León
GRAFOS.
Capítulo 8: Árboles Autor: José Alfredo Jiménez Murillo.
MATRIZ INVERSA.
Matemáticas Discretas MISTI
Recorridos de grafos Segunda Parte M.C. Meliza Contreras González.
La clase P juega un papel importante en la teoría de la complejidad computacional debido a que: 1. P es invariante para todos los modelos de cómputo que.
ALGORITMO FLOYD WARSHALL
Algoritmos de caminos más cortos
Transcripción de la presentación:

Caminos más cortos a partir de múltiples fuentes en un grafo

¿Qué es un grafo?

Un grafo es… Una pareja ordenada G(V,E) con las siguientes características: V es un conjunto de vértices E es un conjunto de parejas de distintos vértices, entre los cuales se trazan líneas (aristas)

Grafos ponderados 2 4 2 1 4 1 1 3 3 5 1 3 5 1

Entonces l(a) = peso de la arista ‘a’ l(x,y) = peso de la arista de x a y

¿Y qué podemos modelar? 1 3 5 6 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2

Problema de la ruta mínima (Single Source) 2 4 2 1 4 1 1 3 3 5 1 3 5 1 ¿Cómo llego del punto 1 a 4 de la manera más corta posible?

¿Cómo se resuelve? Existen algoritmos genéricos para ello: Dijkstra Algorithm Floyd Algorithm Bellman-Ford Algorithm

Algoritmo de Dijkstra Algoritmo glotón (greedy) Punto de inicio s Conjunto S Vector D 1 2 4 3 5

Condiciones iniciales V-S={2,3,4,5} D=[0,2,1,∞,3] 1 2 3 4 5 1 2 4 3 5

Di=mínimo( Di, Dv+f(v, i) ) El algoritmo Aumentar S agregando el elemento v en V-S tal que Dv sea el mínimo de ese conjunto. Actualizar los valores de Di para todos los elementos i existentes en V-S. Di=mínimo( Di, Dv+f(v, i) ) Terminar cuando |S|=|V|

Paso a paso (Iteración 1) Buscar mínimo Di en V-S S={1} V-S={2,3,4,5} D=[0,2,1,∞,3] 1 2 3 4 5 1 2 4 3 5

Paso a paso (Iteración 1) Agregar elemento a S. Actualizar D S={1,3} V-S={2,4,5} D=[0,2,1,∞,3] 1 2 3 4 5 2 4 2 1 1 4 1 3 3 5 1 3 5 1

Paso a paso (Iteración 2) Buscar mínimo Di en V-S S={1,3} V-S={2,4,5} D=[0,2,1,∞,2] 1 2 3 4 5 2 4 2 1 1 4 1 3 3 5 1 3 5 1

Paso a paso (Iteración 2) Agregar elemento a S. Actualizar D S={1,3,2} V-S={4,5} D=[0,2,1,∞,2] 1 2 3 4 5 2 4 2 1 1 4 1 3 3 5 1 3 5 1

Paso a paso (Iteración 3) Buscar mínimo Di en V-S S={1,3,2} V-S={4,5} D=[0,2,1,6,2] 1 2 3 4 5 2 4 2 1 1 4 1 3 3 5 1 3 5 1

Paso a paso (Iteración 3) Agregar elemento a S. Actualizar D S={1,3,2,5} V-S={4} D=[0,2,1,6,2] 1 2 3 4 5 2 4 2 1 1 4 1 3 3 5 1 3 5 1

Paso a paso (Iteración 4) Buscar mínimo Di en V-S S={1,3,2,5} V-S={4} D=[0,2,1,6,2] 1 2 3 4 5 2 4 2 1 1 4 1 3 3 5 1 3 5 1

Paso a paso (Iteración 4) Agregar elemento a S. Actualizar D S={1,3,2,5,4} V-S={ } D=[0,2,1,6,2] 1 2 3 4 5 2 4 2 1 1 4 1 3 3 5 1 3 5 1

Final |S| = |V| La mejor manera de llegar al vértice u se encuentra en Du S={1,3,2,5,4} V-S={ } D=[0,2,1,6,2] 1 2 3 4 5 2 4 2 1 1 4 1 3 3 5 1 3 5 1

Du=delta(s,u) para toda u en V ¿Por qué funciona? Supongamos delta(s,v) = Mejor manera de llegar de s a v Si Dijkstra funciona: Du=delta(s,u) para toda u en V

Demostración por contradicción Suponga que u es el primer vértice añadido a S tal que Du≠delta(s,u)

Propiedades que tendría u u no puede ser s porque Ds = 0 Existe un camino de s a u, de lo contrario Ds = ∞ Si existe un camino, entonces debe existir el camino más corto.

Suposición principal Sea s->(p1)->x->y->(p2)->u el camino más corto de s a u.

Propiedades de x y y x ya fue insertado en S Dx=delta(s,x) Posteriormente se actualizó el vértice y, así que Dy=delta(s,y), pero aun no es insertado en S

Dy=delta(s,y) ≤ Du ≤ delta(s,u) Entonces Puesto que y se encuentra antes que u: Dy=delta(s,y) ≤ Du ≤ delta(s,u) Pero partimos de que u esta siendo insertado en S, así que se debe cumplir que: Dy ≥ Du

Dy=delta(s,y) = Du=delta(s,u) Finalmente Así que: Dy=delta(s,y) = Du=delta(s,u)

El Multiple Source Shortest-Path Problem 2 4 2 1 4 1 1 3 3 5 1 3 5 1

¿Cuál es el problema? ¿Cuál es la mejor manera de llegar al los puntos T (town o ciudad en naranja) a partir de cualquiera de los puntos S (fuente) ?

f1->(p1)->f2->(p2)->v > f2->(p2)->v Consideraciones Existe un conjunto de fuentes F En el camino más corto para llegar a u, existe sólo una fuente: f1->(p1)->f2->(p2)->v > f2->(p2)->v

Un problema más real Puntos Naranjas: Centros de Distribución Puntos Grises: Ciudades ¿De qué centro de distribución es mejor partir a la ciudad X de tal manera de que gaste los menos recursos posibles? 1 2 4 3 5 5

¿Qué otro problema podemos resolver? Puntos Naranjas: Centros de Distribución Puntos Grises: Ciudades Quiero construir un nuevo Punto de Distribución ¿Cuál es el mejor lugar para hacerlo? 1 2 4 3 5

¿Cómo lo resolvemos con Dijkstra? Algoritmo glotón (greedy) Puntos de inicio Conjunto F Conjunto S Vector D

Condiciones iniciales S=F={1,2} V-S={3,4,5} D=[0,0,1,4,3] 1 2 3 4 5 1 2 4 3 5

Estado final S={1,5,4,3,2} V-S={} D=[0,0,1,4,2] 1 2 3 4 5 1 2 4 3 5

Conclusiones Complejidad O(v2) pudiéndose reducir a O(nlogn) con Busqueda Binaria Procesa hasta 10,000 vértices en 1 segundo El Algoritmo de Dijkstra es rápido Demostramos que resuelve eficazmente nuestro problema