Jorge Mondragón Leonardo Herrera Cristian Fernández

Slides:



Advertisements
Presentaciones similares
Tania Guzmán García Luis González Varela Alexandre González Rivas
Advertisements

ALGORITMOS DE KRUSKAL Y PRIM
Caminos más cortos a partir de múltiples fuentes en un grafo
Diseño y análisis de algoritmos
GRAFOS Presentado por: Oscar Leonardo Ramírez John Freddy Sandoval
GRAFOS: ALGORITMOS FUNDAMENTALES
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 TECNOLOGICO DE VILLAHERMOSA
Investigación de Operaciones II
Investigación Operativa II Dra. Sandra Gutiérrez.
ESTRUCTURAS DE DATOS AVANZADAS
Método de Ford-Fulkerson
RafaC - Matemática Discreta - UCM 07/08


Analisis y Diseño de Algoritmos Tema: Grafos 3ra Parte
Problemes de Viatjants
GRAFOS HUGO ARAYA CARRASCO.
Teoría de Grafos.
Programación entera y grafos
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
Temas importantes para el desarrollo de la segunda parte del TPE
Trabajo presentado por: LUIS FERNANDO OBANDO ING
Árbol recubridor mínimo Distancias
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
Analisis y Diseño de Algoritmos Tema: Grafos
Parte II. Algorítmica. 3. Algoritmos voraces.
Tema 5: Grafos Rafa Caballero - Matemática Discreta - UCM 06.

Diseño y análisis de algoritmos
Redes Asociativas.
INSTITUTO TECNOLÓGICO DE VILLAHERMOSA. CATEDRATICO:
Pregunta: Solución: Pregunta: Solución: Pregunta: Solución:
Agustín J. González ELO320: Estructura de Datos y Algoritmos
Diseño y análisis de algoritmos
Estructuras de datos para Grafos
Tópicos I Árboles, montículos y grafos
Grafos Emmanuel Parada..
Teorema de Nerode. Minimización de AFDs
Desarrollo de Videojuegos Ma.Elena Melón Jareda ITESM-CEM Departamento de Sistemas de Información y Computación Colocación de guardias.
Problemas de grafos y Tratabilidad Computacional
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
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.
Parte I. Estructuras de Datos.
Definiciones: conjuntos, grafos, y árboles
Organización de la clase Enfoque Introducción Conceptos previos Algoritmo 5.2 (versión simple) Cleaner & Pirámides Clean Shortest Odd Hole Detector (4.2)
1 Flujo Máximo Agustín J. González ELO320: 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
Estructura de Datos 4 Grafos Dirigidos
Instituto Tecnológico De Villahermosa Alumno: Lázaro García Hernández.
ANALISIS DE REDES UNIDAD PROCEDIMIENTO DE OPTIMIZACION
UNIDAD 2 Grafos Árboles abarcadores mínimos Caminos más cortos.
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.
Escuela de Ciencias Basicas, Tecnología e Ingeniería
BUSQUEDA EN ANCHURA Y PROFUNDIDAD
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:

Jorge Mondragón Leonardo Herrera Cristian Fernández BELLMAN-FORD Jorge Mondragón Leonardo Herrera Cristian Fernández

DESCRIPCIÓN DEL PROBLEMA El algoritmo de Bellman-Ford genera el camino más corto en un grafo dirigido ponderado (en el que el peso de alguna de las aristas puede ser negativo). El algoritmo de Dijkstra resuelve este mismo problema en un tiempo menor, pero requiere que los pesos de las aristas no sean negativos. Por lo que el algoritmo Bellman-Ford normalmente se utiliza cuando hay aristas con peso negativo Si el grafo contiene un ciclo de coste negativo, el algoritmo lo detectará pero no encontrará el camino más corto que no repite ningún vértice, la complejidad de este problema es NP-completo.

DEFINICIÓN DEL ALGORITMO El algoritmo de Bellman-Ford genera el camino más corto en un Grafo dirigido ponderado ( en el que el peso de alguna de las aristas puede ser negativo). Este Algoritmo fue desarrollado por Richard Bellman, Samuel End y Lester Ford.

CARACTERISTICAS Y COMPLEJIDAD COMPUTACIONAL El algoritmo de Dijkstra resuelve este mismo problema en un tiempo menor, pero requiere que los pesos de las aristas no sean negativos. Por lo que el Algoritmo Bellman-Ford normalmente se utiliza cuando hay aristas con peso negativo. La complejidad computacional de este problema es complejidad NP-Completo.

EXPLICACIÓN DEL ALGORITMO En el paso 0, inicializamos todas las distancias o costos mínimos a infinito. En el paso 1, actualizamos el paso anterior, aplicando las fórmulas. En este caso ponemos la distancia de los nodos que tienen accesos directos al vértice 1, y se la sumamos a la distancia mínima acumulada que hay hasta el vértice oportuno. Aquí esta distancia acumulada sería 0 para 1, debido que sería la distancia a él mismo, e infinito para el resto porque no han sido analizados todavía

EXPLICACIÓN DEL ALGORITMO En el paso 2, al saber ya una distancia mínima acumulada desde los nodos 2 y 3 hasta 1, podemos actualizar las distancias mínimas de los nodos 4 y 5. En los pasos sucesivos, se van actualizando las distancias mínimas acumuladas (D) de los distintos vértices hasta 1, y se van utilizando en los pasos siguientes para optimizar el camino mínimo. El final del algoritmo se da cuando no hay ningún cambio de un paso a otro, cuando ya no se puede encontrar un camino más corto.

ANALISIS DEL ALGORITMO Grafo Inicial. El objetivo del Algoritmo es encontrar el camino mínimo desde todos los nodos al vértice 1.

ANALISIS DEL ALGORITMO

EJEMPLO ( REALIZACIÓN DEL ALGORITMO)

EJEMPLO (GRAFO FINAL) * Resultado del camino mínimo desde todos los nodos al vértice 1.

APLICACIONES DEL ALGORITMO Una variante distribuida del Algoritmo del Bellman-Ford se usa en protocolos de encaminamiento basados en vector de distancias. En el mundo de las redes (comunicaciones) el protocolo de encaminamiento de información (RIP). http://neo.lcc.uma.es/evirtual/cdd/applets/BellmanFord/Example3.html

(u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) Paso 0.0 u 5 v Lista de Arcos (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 x y 9 Paso 0.0 V [ ] = { u v x y z } d _ P Encontrar el camino más corto del Vértice z a cada uno de los otros Vértices.

¥ ¥ ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 ¥ ¥ x y 9 Paso 0.1 V [ ] = { u v x y z } d ¥ P Inicializar los vectores d y P.

¥ ¥ ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 ¥ ¥ x y 9 Paso 1.1 Aplicar Relax al Arco (u,v) V [ ] = { u v x y z } d ¥ P Pregunta: ¿ d[v] > d[u] + w( u , v ) ? Respuesta: NO Proceso: No se hace nada.

¥ ¥ ¥ ¥ (u,v) (u,x)  (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos ¥ ¥ (u,v) (u,x)  (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 ¥ ¥ x y 9 Paso 1.2 Aplicar Relax al Arco (u,x) V [ ] = { u v x y z } d ¥ P Pregunta: ¿ d[x] > d[u] + w( u , x ) ? Respuesta: NO Proceso: No se hace nada.

¥ ¥ ¥ ¥ (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos ¥ ¥ (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 ¥ ¥ x y 9 Paso 1.3 Aplicar Relax al Arco (u,y) V [ ] = { u v x y z } d ¥ P Pregunta: ¿ d[y] > d[u] + w( u , y ) ? Respuesta: NO Proceso: No se hace nada.

¥ ¥ ¥ ¥ (u,v) (u,x) (u,y) (v,u)  (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos ¥ ¥ (u,v) (u,x) (u,y) (v,u)  (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 ¥ ¥ x y 9 Paso 1.4 Aplicar Relax al Arco (v,u) V [ ] = { u v x y z } d ¥ P Pregunta: ¿ d[u] > d[v] + w( v , u ) ? Respuesta: NO Proceso: No se hace nada.

¥ ¥ ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v)  (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v)  (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 ¥ ¥ x y 9 Paso 1.5 Aplicar Relax al Arco (x,v) V [ ] = { u v x y z } d ¥ P Pregunta: ¿ d[v] > d[x] + w( x , v ) ? Respuesta: NO Proceso: No se hace nada.

¥ ¥ ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y)  (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y)  (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 ¥ ¥ x y 9 Paso 1.6 Aplicar Relax al Arco (x,y) V [ ] = { u v x y z } d ¥ P Pregunta: ¿ d[y] > d[x] + w( x , y ) ? Respuesta: NO Proceso: No se hace nada.

¥ ¥ ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v)  (y,z) (z,u) (z,x) 5 v Lista de Arcos ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v)  (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 ¥ ¥ x y 9 Paso 1.7 Aplicar Relax al Arco (y,v) V [ ] = { u v x y z } d ¥ P Pregunta: ¿ d[v] > d[y] + w( y , v ) ? Respuesta: NO Proceso: No se hace nada.

¥ ¥ ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z)  (z,u) (z,x) 5 v Lista de Arcos ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z)  (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 ¥ ¥ x y 9 Paso 1.8 Aplicar Relax al Arco (y,v) V [ ] = { u v x y z } d ¥ P Pregunta: ¿ d[z] > d[y] + w( y , z ) ? Respuesta: NO Proceso: No se hace nada.

¥ ¥ ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u)  (z,x) 5 v Lista de Arcos ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u)  (z,x) -2 6 z -4 8 7 -3 7 2 ¥ ¥ x y 9 Paso 1.9 Aplicar Relax al Arco (z,u) V [ ] = { u v x y z } d ¥ P Pregunta: ¿ d[u] > d[z] + w( z , u ) ? Respuesta: SI Proceso: d[u] = d[z] + w( z, u ) y P[u] = z

6 ¥ ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u)  (z,x) 5 v Lista de Arcos 6 ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u)  (z,x) -2 6 z -4 8 7 -3 7 2 ¥ ¥ x y 9 Paso 1.9 Aplicar Relax al Arco (z,u) V [ ] = { u v x y z } d 6 ¥ P Pregunta: ¿ d[u] > d[z] + w( z , u ) ? Respuesta: SI Proceso: d[u] = d[z] + w( z, u ) y P[u] = z

6 ¥ ¥ ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)  5 v Lista de Arcos 6 ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)  -2 6 z -4 8 7 -3 7 2 ¥ ¥ x y 9 Paso 1.10 Aplicar Relax al Arco (z,x) V [ ] = { u v x y z } d 6 ¥ P Pregunta: ¿ d[x] > d[z] + w( z , x ) ? Respuesta: SI Proceso: d[x] = d[z] + w( z, x ) y P[x] = z

6 ¥ 7 ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)  5 v Lista de Arcos 6 ¥ (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)  -2 6 z -4 8 7 -3 7 2 7 ¥ x y 9 Paso 1.10 Aplicar Relax al Arco (z,x) V [ ] = { u v x y z } d 6 ¥ 7 P Pregunta: ¿ d[x] > d[z] + w( z , x ) ? Respuesta: SI Proceso: d[x] = d[z] + w( z, x ) y P[x] = z

6 ¥ 7 ¥ (u,v)  (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 6 ¥ (u,v)  (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 ¥ x y 9 Paso 2.1 Aplicar Relax al Arco (u,v) V [ ] = { u v x y z } d 6 ¥ 7 P Pregunta: ¿ d[v] > d[u] + w( u , v ) ? Respuesta: SI Proceso: d[v] = d[u] + w( u, v ) y P[v] = u

6 11 7 ¥ (u,v)  (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 6 11 (u,v)  (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 ¥ x y 9 Paso 2.1 Aplicar Relax al Arco (u,v) V [ ] = { u v x y z } d 6 11 7 ¥ P Pregunta: ¿ d[v] > d[u] + w( u , v ) ? Respuesta: SI Proceso: d[v] = d[u] + w( u, v ) y P[v] = u

6 11 7 ¥ (u,v) (u,x)  (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 6 11 (u,v) (u,x)  (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 ¥ x y 9 Paso 2.2 Aplicar Relax al Arco (u,x) V [ ] = { u v x y z } d 6 11 7 ¥ P Pregunta: ¿ d[x] > d[u] + w( u , x ) ? Respuesta: NO Proceso: No se hace nada.

6 11 7 ¥ (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 6 11 (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 ¥ x y 9 Paso 2.3 Aplicar Relax al Arco (u,y) V [ ] = { u v x y z } d 6 11 7 ¥ P Pregunta: ¿ d[y] > d[u] + w( u , y ) ? Respuesta: SI Proceso: d[y] = d[u] + w( u, y ) y P[y] = u

6 11 7 2 (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 6 11 (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 2.3 Aplicar Relax al Arco (u,y) V [ ] = { u v x y z } d 6 11 7 2 P Pregunta: ¿ d[y] > d[u] + w( u , y ) ? Respuesta: SI Proceso: d[y] = d[u] + w( u, y ) y P[y] = u

6 11 7 2 (u,v) (u,x) (u,y) (v,u)  (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 6 11 (u,v) (u,x) (u,y) (v,u)  (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 2.4 Aplicar Relax al Arco (v,u) V [ ] = { u v x y z } d 6 11 7 2 P Pregunta: ¿ d[u] > d[v] + w( v , u ) ? Respuesta: NO Proceso: No se hace nada.

6 11 7 2 (u,v) (u,x) (u,y) (v,u) (x,v)  (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 6 11 (u,v) (u,x) (u,y) (v,u) (x,v)  (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 2.5 Aplicar Relax al Arco (x,v) V [ ] = { u v x y z } d 6 11 7 2 P Pregunta: ¿ d[v] > d[x] + w( x , v ) ? Respuesta: SI Proceso:d[y] = d[x] + w( x, v ) y P[y] = x

6 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v)  (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 6 4 (u,v) (u,x) (u,y) (v,u) (x,v)  (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 2.5 Aplicar Relax al Arco (x,v) V [ ] = { u v x y z } d 6 4 7 2 P Pregunta: ¿ d[v] > d[x] + w( x , v ) ? Respuesta: SI Proceso: d[y] = d[x] + w( x, v ) y P[y] = x

6 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y)  (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 6 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y)  (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 2.6 Aplicar Relax al Arco (x,y) V [ ] = { u v x y z } d 6 4 7 2 P Pregunta: ¿ d[y] > d[x] + w( x , y ) ? Respuesta: NO Proceso: No se hace nada.

6 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v)  (y,z) (z,u) (z,x) 5 v Lista de Arcos 6 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v)  (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 2.7 Aplicar Relax al Arco (y,v) V [ ] = { u v x y z } d 6 4 7 2 P Pregunta: ¿ d[v] > d[y] + w( y , v ) ? Respuesta: NO Proceso: No se hace nada.

6 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z)  (z,u) (z,x) 5 v Lista de Arcos 6 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z)  (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 2.8 Aplicar Relax al Arco (y,z) V [ ] = { u v x y z } d 6 4 7 2 P Pregunta: ¿ d[z] > d[y] + w( y , z ) ? Respuesta: NO Proceso: No se hace nada.

6 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u)  (z,x) 5 v Lista de Arcos 6 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u)  (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 2.9 Aplicar Relax al Arco (z,u) V [ ] = { u v x y z } d 6 4 7 2 P Pregunta: ¿ d[u] > d[z] + w( z , u ) ? Respuesta: NO Proceso: No se hace nada.

6 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)  5 v Lista de Arcos 6 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)  -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 2.10 Aplicar Relax al Arco (z,x) V [ ] = { u v x y z } d 6 4 7 2 P Pregunta: ¿ d[x] > d[z] + w( z , x ) ? Respuesta: NO Proceso: No se hace nada.

6 4 7 2 (u,v)  (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 6 4 (u,v)  (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 3.1 Aplicar Relax al Arco (u,v) V [ ] = { u v x y z } d 6 4 7 2 P Pregunta: ¿ d[v] > d[u] + w( u , v ) ? Respuesta: NO Proceso: No se hace nada.

6 4 7 2 (u,v) (u,x)  (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 6 4 (u,v) (u,x)  (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 3.2 Aplicar Relax al Arco (u,x) V [ ] = { u v x y z } d 6 4 7 2 P Pregunta: ¿ d[x] > d[u] + w( u , x ) ? Respuesta: NO Proceso: No se hace nada.

6 4 7 2 (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 6 4 (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 3.3 Aplicar Relax al Arco (u,y) V [ ] = { u v x y z } d 6 4 7 2 P Pregunta: ¿ d[y] > d[u] + w( u , y ) ? Respuesta: NO Proceso: No se hace nada.

6 4 7 2 (u,v) (u,x) (u,y) (v,u)  (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 6 4 (u,v) (u,x) (u,y) (v,u)  (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 3.4 Aplicar Relax al Arco (v, u) V [ ] = { u v x y z } d 6 4 7 2 P Pregunta: ¿ d[u] > d[v] + w( v , u ) ? Respuesta: SI Proceso: d[u] = d[v] + w( v, u ) y P[u] = v

2 4 7 2 (u,v) (u,x) (u,y) (v,u)  (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u)  (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 3.4 Aplicar Relax al Arco (v, u) V [ ] = { u v x y z } d 2 4 7 P Pregunta: ¿ d[u] > d[v] + w( v , u ) ? Respuesta: SI Proceso: d[u] = d[v] + w( v, u ) y P[u] = v

2 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v)  (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v)  (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 3.5 Aplicar Relax al Arco (x, v) V [ ] = { u v x y z } d 2 4 7 P Pregunta: ¿ d[v] > d[x] + w( x , v ) ? Respuesta: NO Proceso: No se hace nada.

2 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y)  (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y)  (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 3.6 Aplicar Relax al Arco (x, y) V [ ] = { u v x y z } d 2 4 7 P Pregunta: ¿ d[y] > d[x] + w( x , y ) ? Respuesta: NO Proceso: No se hace nada.

2 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v)  (y,z) (z,u) (z,x) 5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v)  (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 3.7 Aplicar Relax al Arco (y, v) V [ ] = { u v x y z } d 2 4 7 P Pregunta: ¿ d[v] > d[y] + w( y , v ) ? Respuesta: NO Proceso: No se hace nada.

2 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z)  (z,u) (z,x) 5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z)  (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 3.8 Aplicar Relax al Arco (y, z) V [ ] = { u v x y z } d 2 4 7 P Pregunta: ¿ d[z] > d[y] + w( y , z ) ? Respuesta: NO Proceso: No se hace nada.

2 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u)  (z,x) 5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u)  (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 3.9 Aplicar Relax al Arco (z, u) V [ ] = { u v x y z } d 2 4 7 P Pregunta: ¿ d[u] > d[z] + w( z , u ) ? Respuesta: NO Proceso: No se hace nada.

2 4 7 2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)  5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)  -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 3.10 Aplicar Relax al Arco (z, x) V [ ] = { u v x y z } d 2 4 7 P Pregunta: ¿ d[x] > d[z] + w( z , x ) ? Respuesta: NO Proceso: No se hace nada.

2 4 7 2 (u,v)  (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 2 4 (u,v)  (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 4.1 Aplicar Relax al Arco (u, v) V [ ] = { u v x y z } d 2 4 7 P Pregunta: ¿ d[v] > d[u] + w( u , v ) ? Respuesta: NO Proceso: No se hace nada.

2 4 7 2 (u,v) (u,x)  (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 2 4 (u,v) (u,x)  (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 4.2 Aplicar Relax al Arco (u, x) V [ ] = { u v x y z } d 2 4 7 P Pregunta: ¿ d[x] > d[u] + w( u , x ) ? Respuesta: NO Proceso: No se hace nada.

2 4 7 2 (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 2 x y 9 Paso 4.3 Aplicar Relax al Arco (u, y) V [ ] = { u v x y z } d 2 4 7 P Pregunta: ¿ d[y] > d[u] + w( u , y ) ? Respuesta: SI Proceso: d[y] = d[u] + w( u, y ) y P[y] = u

2 4 7 -2 (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y)  (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 -2 x y 9 Paso 4.3 Aplicar Relax al Arco (u, y) V [ ] = { u v x y z } d 2 4 7 -2 P Pregunta: ¿ d[y] > d[u] + w( u , y ) ? Respuesta: SI Proceso: d[y] = d[u] + w( u, y ) y P[y] = u

2 4 7 -2 (u,v) (u,x) (u,y) (v,u)  (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u)  (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 -2 x y 9 Paso 4.4 Aplicar Relax al Arco (v, u) V [ ] = { u v x y z } d 2 4 7 -2 P Pregunta: ¿ d[u] > d[v] + w( v , u ) ? Respuesta: NO Proceso: No se hace nada.

2 4 7 -2 (u,v) (u,x) (u,y) (v,u) (x,v)  (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v)  (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 -2 x y 9 Paso 4.5 Aplicar Relax al Arco (x, v) V [ ] = { u v x y z } d 2 4 7 -2 P Pregunta: ¿ d[v] > d[x] + w( x , v ) ? Respuesta: NO Proceso: No se hace nada.

2 4 7 -2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y)  (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y)  (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 -2 x y 9 Paso 4.6 Aplicar Relax al Arco (x, y) V [ ] = { u v x y z } d 2 4 7 -2 P Pregunta: ¿ d[y] > d[x] + w( x , y ) ? Respuesta: NO Proceso: No se hace nada.

2 4 7 -2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v)  (y,z) (z,u) (z,x) 5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v)  (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 -2 x y 9 Paso 4.7 Aplicar Relax al Arco (y, v) V [ ] = { u v x y z } d 2 4 7 -2 P Pregunta: ¿ d[v] > d[y] + w( y , v ) ? Respuesta: NO Proceso: No se hace nada.

2 4 7 -2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z)  (z,u) (z,x) 5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z)  (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 -2 x y 9 Paso 4.8 Aplicar Relax al Arco (y, z) V [ ] = { u v x y z } d 2 4 7 -2 P Pregunta: ¿ d[z] > d[y] + w( y , z ) ? Respuesta: NO Proceso: No se hace nada.

2 4 7 -2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u)  (z,x) 5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u)  (z,x) -2 6 z -4 8 7 -3 7 2 7 -2 x y 9 Paso 4.9 Aplicar Relax al Arco (z, u) V [ ] = { u v x y z } d 2 4 7 -2 P Pregunta: ¿ d[u] > d[z] + w( z , u ) ? Respuesta: NO Proceso: No se hace nada.

2 4 7 -2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)  5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x)  -2 6 z -4 8 7 -3 7 2 7 -2 x y 9 Paso 4.10 Aplicar Relax al Arco (z, x) V [ ] = { u v x y z } d 2 4 7 -2 P Pregunta: ¿ d[x] > d[z] + w( z , x ) ? Respuesta: NO Proceso: No se hace nada.

2 4 7 -2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) 5 v Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 6 z -4 8 7 -3 7 2 7 -2 x y 9 Paso 5.0 V [ ] = { u v x y z } d 2 4 7 -2 P Verificar en cada arco que se cumple la condición: d[Vf] <= d[Vi] + w( Vi , Vf ) Si no se cumple: => NO EXISTE SOLUCIÓN.

2 4 7 -2 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) Lista de Arcos 2 4 (u,v) (u,x) (u,y) (v,u) (x,v) (x,y) (y,v) (y,z) (z,u) (z,x) -2 z -4 -3 7 7 -2 x y SOLUCIÓN V [ ] = { u v x y z } d 2 4 7 -2 P