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

Slides:



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

GRAFOS Presentado por: Oscar Leonardo Ramírez John Freddy Sandoval
GRAFOS ESTRUCTURAS DE DATOS.
GRAFOS: ALGORITMOS FUNDAMENTALES
Ordenamiento Topológico
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.
1 Extensión de un Estructura de Datos Agustín J. González ELO-320: Estructura de Datos y Algoritmos.
Investigación de Operaciones II
Método de Ford-Fulkerson

MODELO FLUJO MAXIMO Considere una red de Oleoductos que transporta petróleo crudo desde pozos hasta refinerías. Se instalan instalaciones intermedias de.

Teoría de Grafos.
Analisis y Diseño de Algoritmos Tema: Grafos 3ra Parte
Problemes de Viatjants
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
1 Kapitel 8: Graphalgorithmen 8.1 Grundlagen 8.2 Tiefen- und Breitensuche 8.3 Prim- und Kruskal-Algorithmus 8.4 Kürzeste Wege in Graphen 8.5 Eulersche.
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
Definiciones: conjuntos, grafos, y árboles
Ordenamiento, Heapsort y Colas de prioridad
Árbol recubridor mínimo Distancias
I n s t i t u t o T e c n o l ó g i c o d e T e c n o l ó g i c o d e V i l l a h e r m o s a ING. EN SISTEMAS CATEDRATICO: I.I. Zinath Javier Gerónimo.
SISTEMAS DE ECUACIONES
Single-Source Shortest Paths “Camino más corto desde/hacia una fuente”
Diseño y análisis de algoritmos

A LGORITMO DE BÚSQUEDA POR COSTO UNIFORME Dorian López.
Diseño y análisis de algoritmos
Analisis y Diseño de Algoritmos Tema: Grafos

Agustín J. González ELO-320: Estructura de Datos y Algoritmos
Surge cuando se necesita un modelo costo-efectividad que permita transportar ciertos bienes desde un lugar de origen a un destino que necesita aquellos.
INSTITUTO TECNOLÓGICO DE VILLAHERMOSA. CATEDRATICO:
1 Algoritmos Avaros (Greedy Algorithms) Agustín J. González ELO-320: Estructura de Datos y Algoritmos.
Jorge Mondragón Leonardo Herrera Cristian Fernández
Agustín J. González ELO320: Estructura de Datos y Algoritmos
1 Algoritmos Avaros (Greedy Algorithms) Agustín J. González ELO-320: Estructura de Datos y Algoritmos 1er. Sem
Medianas y Estadísticas de Orden
Estructuras de datos para Grafos
1 Quicksort Agustín J. González ELO320: Estructura de Datos y Algoritmos 1er. Sem
1 Ordenamiento y estadísticas de orden Agustín J. González ELO 320: Estructura de Datos y Algoritmos.
1 Ordenamiento en tiempo lineal y Estadísticas de orden Agustín J. González ELO320: Estructura de Datos y Algoritmos 1er. Sem 2002.
Capítulo 10: Tecnologías WAN y Enrutamiento
Capa de Red4-1 Capítulo 4: Capa Red - III ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al texto.
Minimum Spanning Tree (Árbol de Expansión Mínima)
Definiciones: conjuntos, grafos, y árboles
Matemáticas para Ciencias de la Computación MCC3182 Otra Definición Definición 2: Un árbol es un grafo conectado con n vértices y n-1 arcos. En efecto,
1 Flujo Máximo Agustín J. González ELO320: Estructura de Datos y Algoritmos.
Agustín J. González ELO-320: Estructura de Datos Y Algoritmos
Capa de Red4-1 Capítulo 4: Capa de Red  4. 1 Introducción  4.2 Circuitos virtuales y redes de datagramas  4.3 ¿Qué hay dentro de un router?  4.4 IP:
Agustín J. González ELO320: Estructura de Datos y Algoritmos
Minimum Spanning Tree (Árbol de Expansión Mínima)
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.
Oscar F. Bedoya L. Fundamentos de análisis y diseño de algoritmos.
Algoritmo de Dijkstra para ruta más corta. Ejemplo 1.
Estructura de Datos 4 Grafos Dirigidos
ALUMNO: GABRIEL GARCÍA VELAZQUEZ NO.CONTROL: MATERIA: INV. OPERACIONES UNIDAD 3.
ANALISIS DE REDES UNIDAD PROCEDIMIENTO DE OPTIMIZACION
UNIDAD 2 Grafos Árboles abarcadores mínimos Caminos más cortos.
Escuela de Ciencias Basicas, Tecnología e Ingeniería
GRAFOS.
Recorridos de grafos Segunda Parte M.C. Meliza Contreras González.
Algoritmos de caminos más cortos
Minimum Spanning Tree (Árbol de Expansión Mínima)
Transcripción de la presentación:

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

2 Introducción Un estudiante quiere buscar el camino más corto que le permita llegar desde su casa, a la de la polola (pololo) pasando sólo por avenidas (para hacerlo doble sentido). Un computador debe determinar la ruta más conveniente para un paquete hacia su destino. Se trata entonces de buscar la ruta más “económica” para ir desde un nodo a cada uno de los otros. Se trata de buscar las rutas de menor costo a cada uno de los nodos. El algoritmo breadth-first search obtiene la ruta más corta en grafos sin peso, en el cual cada arco se puede considerar de peso unitario. Variantes: Camino más corto a un destino único Camino más corto entre dos nodos cualquiera.

3 Ejemplos de Rutas más cortas desde una fuente Una solución Otra solución Grafo original

4 Observaciones Lema: Subcaminos del camino más corto son caminos más cortos. Dado un grado dirigido con peso G=(V,E), sea p = el camino más corto desde v 1 a v k, para 1  i  j  k sea p ij = el subcamino de p desde el vértice v i al v j. Entonces p ij es un camino más corto para ir de v i a v j. “Relajación” a través de un arco: Sea d[v] la estimación para la distancia más corta desde el nodo fuente. Al estudiar el arco (u,v) podemos mejorar la estimación dependiendo si la ruta vía u es mejor. Esta operación es conocida como “Relajar”. El algoritmo es: Relax (u,v, w){ if (d[v] > d[u] + w(u,v) ){ d[v] = d[u] + w(u,v); p[v] = u; } }

5 Algoritmo de Dijkstra Se supone que todos los arcos tienen peso no negativo. ¿Qué pasa si hay pesos negativos? Dijkstra(G, w, s) { for (cada vértice v en V[G] ) { d [v] = infinito; /* -”MAX_INT” por ejemplo*/ p [v] = NIL; } d [s] = 0; S = {}; /* S Contiene el arreglo de los nodos cuyo camino más corto ya ha sido encontrado */ Q = V [G]; while (Q != {}) { u = Extract_Min(Q); S = S  {u}; for ( cada vértice v en adj[u] ) Relax(u,v, w); } } El tiempo de ejecución depende de la implementación de la cola de prioridad. Si se usara un arreglo lineal, Extract_Min toma O(V) con lo cual el algoritmo toma O(V 2 +E) = O(V 2 ). Si se usa un heap binario, Extract_Min toma O(lg V) con lo cual se reduce el tiempo total a =O(E lg V).

6 Ejemplo de ejecución del algoritmo de Dijkstra:

7 Algoritmo de Bellman-Ford Se trata de resolver el mismo problema en el caso de pesos negativos y positivos. Int Bellman-Ford(G, w, s) { for (cada vértice v en V[G] ) { d [v] = infinito; /* -”MAX_INT” por ejemplo*/ p [v] = NIL; } d [s] = 0; for (i=1 to |V [G]| -1 ) for (cada arco (u,v) en E[G] ) Relax(u,v,w); for ( cada arco (u,v) en E[G] ) if(d [v] > d [u]+w(u,v)) return 0; /* False; no existe camino mínimo */ return 1; } El tiempo de ejecución es O(EV).

8 Ejemplo: Algoritmo de Bellman-Ford