Presentación OR Problemas de Caminos Más Cortos

54
Rosa E. Padilla Andrea Peña Xaymara Pérez P ROBLEMAS DE CAMINOS CORTOS

Transcript of Presentación OR Problemas de Caminos Más Cortos

Page 1: Presentación OR Problemas de Caminos Más Cortos

Rosa E. PadillaAndrea Peña Xaymara Pérez

PROBLEMAS DECAMINOS CORTOS

Page 2: Presentación OR Problemas de Caminos Más Cortos

CONCEPTOS BÁSICOS

Grafo: es un conjunto de vértices o nodosunidos por aristas o arcos. Típicamente, un grafo se representa mediante una serie de puntos (los vértices) conectados por líneas (las aristas).

Digrafo: es un grafo cuyas aristas son dirigidas, es decir, cada arista posee un vértice inicial y uno final.

Page 3: Presentación OR Problemas de Caminos Más Cortos

Ciclos de un grafo: Consiste en un camino cerrado en el que no se repite ningún vértice a excepción del primero que aparece dos veces como principio y fin del camino, no se tiene en cuenta la orientación.

Caminos de un grafo: si no se impone regresar al punto de partida, como en un museo con una única puerta de entrada.

Grafos finitos: grafos con finitos vértices y aristas.

Page 4: Presentación OR Problemas de Caminos Más Cortos

INTRODUCCIÓN

Nos enfocaremos en el problema de encontrar

los caminos más cortos en un grafo ponderado

dirigido desde un origen determinado a un

destino determinado.

También tendremos en cuenta algunas

variaciones sobre este problema sin tener que

hacer uso de los algoritmos para encontrar

soluciones.

Page 5: Presentación OR Problemas de Caminos Más Cortos

THE LANDSCAPE OF

PROBLEMS

Un camino desde el nodo o vértice r a nodo t en un grafo, G = (V, E) es una secuencia: P: r = u0 , e1, u1, e2, u2 , …, ek, uk = t

En un grafo ponderado o grafo el objetivo es encontrar un camino de un vértice r a un vértice t con un peso total mínimo.

Existen una serie de opciones para definir claramente el camino más corto de un problema:

¿Es el grafo dirigido o no dirigido?

¿Es el grafo finito o infinito?

¿Se permiten pesos negativos?

¿Es necesario un solo camino entre r y t o si se prefiere para encontrar todos los caminos de longitud corta?

Page 6: Presentación OR Problemas de Caminos Más Cortos

DIJKSTRA’S ALGORITHM

Edsger Wybe Dijkstra, fue un holandés científico en la computación.

Entre sus contribuciones a la informática está la solución del problema del camino más corto, también conocido como el algoritmo de Dijkstra.

Page 7: Presentación OR Problemas de Caminos Más Cortos

Es uno de los algoritmos más populares en la ciencia de computación, publicado en 1959.

Es utilizado en muchas industrias muchas veces al día.

Trabaja en un grafo dirigido ponderado finito con pesos no negativos, desde la raíz nodo r; hasta calcular los caminos más cortos partiendo de r a todos los otros vértices alcanzables.

Page 8: Presentación OR Problemas de Caminos Más Cortos

La idea subyacente en este algoritmo consiste en ir explorando todos

los caminos más cortos que parten del vértice origen y que llevan a

todos los demás vértices; cuando se obtiene el camino más corto

desde el vértice origen, al resto de vértices que componen el grafo, el

algoritmo se detiene.

El algoritmo es una especialización de la búsqueda de costo

uniforme, y como tal, no funciona en grafos con aristas de costo

negativo (al elegir siempre el nodo con distancia menor, pueden

quedar excluidos de la búsqueda nodos que en próximas iteraciones

bajarían el costo general del camino al pasar por una arista con costo

negativo).

Page 9: Presentación OR Problemas de Caminos Más Cortos

EJEMPLO DEL

CAMINO MÁS CORTO

Page 10: Presentación OR Problemas de Caminos Más Cortos

Solución Final:

Camino: ADCBFEZ

Distancia:23

Page 11: Presentación OR Problemas de Caminos Más Cortos

EJEMPLO

Page 12: Presentación OR Problemas de Caminos Más Cortos

PROOF OF CORRECTNESS

Para estar seguros de que nuestros algoritmos son matemáticamente correctos, debemos elaborar la prueba de corrección, para que nos de confianza de que el proceso es confiable.

La Prueba de corrección nos ayuda a comprender porqué funciona y lo que nos guía a medida que inventamos nuestros propios algoritmos

Page 13: Presentación OR Problemas de Caminos Más Cortos

ALGORITMO DE BELLMAN-FORD

Fue desarrollado por Richard Bellman, Samuel End y Lester Ford

Genera el camino mas corto en un grafo dirigido

Se utiliza cuando hay aristas con peso negativo.

Relaja todas las aristas y lo hace |v|-1 veces siendo |v| el numero de vértices del grafo.

Se halla el camino mínimo de todos los vértices a un único vértice destino.

Page 14: Presentación OR Problemas de Caminos Más Cortos

Este algoritmo se usa en protocolos de encaminamiento basados en vector de distancias, por ejemplo el Protocolo de Encaminamiento de Información (RIP)=un protocolo de puerta de enlace interna.

El algoritmo es distribuido porque envuelve una serie de nodos (routers) dentro de un Sistema Autónomo(AS), un conjunto de redes y dispositivos router IP.

Se compone de los siguientes pasos:

1. Cada nodo calcula la distancia entre él mismo y todos los demás dentro de un AS y almacena esta información en una tabla.

2. Cada nodo envía su tabla a todos los nodos vecinos.

3. Cuando un nodo recibe las tablas de distancias de sus vecinos, éste calcula la ruta más corta a los demás nodos y actualiza su tabla para reflejar los cambios.

Page 15: Presentación OR Problemas de Caminos Más Cortos

Las desventajas principales del algoritmo de Bellman-Ford en este ajuste son:

1. No escala bien.

2. Los cambios en la topología de red no se reflejan rápidamente ya que las actualizaciones se distribuyen nodo por nodo.

3. Contando hasta el infinito(si un fallo de enlace o nodo hace que un nodo sea inalcanzable desde un conjunto de otros nodos, éstos pueden estar siempre aumentando gradualmente sus cálculos de distancia a él, y mientras tanto puede haber bucles de enrutamiento)

Page 16: Presentación OR Problemas de Caminos Más Cortos

Comenzamos con todos los nodos vacios

Page 17: Presentación OR Problemas de Caminos Más Cortos

Comenzemos diciendo que el camino mas cortoa todos los nodos es infinito

Page 18: Presentación OR Problemas de Caminos Más Cortos

Esquina 1-> 2, el largo es6. El camino mas cortopara llegar al nodo 1 mas el largo de las esquinas 1 -> 2 es mas corto queinfinito.

Reemplazamos el infinitoen el nodo dos por un 6.

Page 19: Presentación OR Problemas de Caminos Más Cortos

Lo mismo para la esquina 1 -> 4 con largo 7.

Page 20: Presentación OR Problemas de Caminos Más Cortos
Page 21: Presentación OR Problemas de Caminos Más Cortos

ALGORITMO DE FLOYD

Es un algoritmo de análisis sobre grafos para encontrar el camino mínimo de grafos dirigidos ponderados.

Encuentra el camino entre todos los pares de vértices en una única ejecución.

Es un ejemplo de programación dinámica.

Después de la iniciación, este algoritmo tiene un ciclode salida con n interacciones.

Page 22: Presentación OR Problemas de Caminos Más Cortos

El Algoritmo de Floyd funciona buscando todos los caminos no directos entre dos vértices que tienen un costo total menos costoso que la mejor manera de encontrar aún para moverse entre los vértices.

Se convierte en el valor con el que el futuro rutas indirectas entre estos vértices son la prueba.

Al final, cada elemento de la matriz representa el recorrido de más bajo costo entre los vértices es de fila y columna representan.

Page 23: Presentación OR Problemas de Caminos Más Cortos

1

4

3

2

8

3 5

4

3

2

EJEMPLO

Page 24: Presentación OR Problemas de Caminos Más Cortos

PROBLEMA DEL CAMINO

BI-DIRECCIONAL

Envuelve grafos cuyas esquinas tienen orientacioneslocales en ambos de sus puntos finales

Hay cuatro maneras de adjuntar estas dos flechas al eje e.

Un camino bi-direccional al nodo T en una grafica esuna secuencia.

Page 25: Presentación OR Problemas de Caminos Más Cortos

PROGRAMACIÓN LINEAL

Es un metodo matematico para determinar la manera de lacanzar el mejor resultado (tal comoganancia maxima o el costo bajo) en un modelomatematico dado para una lista de requisitosrepresentado como relaciones lineales.

Es una tecnica de optimizacion de una funcionobjetiva lineal sujeta a la igualdad lineal y laslimitaciones de desigualdad lineal.

Page 26: Presentación OR Problemas de Caminos Más Cortos
Page 27: Presentación OR Problemas de Caminos Más Cortos
Page 28: Presentación OR Problemas de Caminos Más Cortos

PROBLEMA DEL

CAMINO MÁS CORTO

El problema del camino más corto en la teoría de grafos es un ejemplo sencillo de un problema de programación lineal que surge en la optimización discreta.

Consiste en encontrar un camino entre dos vértices (o nodos) de tal manera que la suma de los pesos de las aristas que lo constituyen es mínima.

Page 29: Presentación OR Problemas de Caminos Más Cortos

PROBLEMA DEL

CAMINO MÁS CORTO

Considerando el grafo G = (V, E) con V = {r, a, b, t}, E = {(r, a), (r, b), (a, b),(a, t), (b, t)} y pesos de sus arcos o caminos obtenemos:

Page 30: Presentación OR Problemas de Caminos Más Cortos

El problema de encontrar un camino más corto desde r a t en este dígrafo se formula como un problema de programación lineal.

Se introduce una variable para cada xe para cada arco e , con la interpretación xe = 1 si e arco se encuentra en el camino más corto y xe = 0 en caso contrario.

La ruta debe incluir exactamente un arco de salida del nodo origen r, por lo que tenemos:

x(r,a) + x(r,b) = 1

Page 31: Presentación OR Problemas de Caminos Más Cortos

En los nodos a y b, los únicos caminos que tenemos son:

x(r,a) - x(r,b) - x(a,t) = 0

x(r,b) + x(a,b) - x(b,t) = 0

Finalmente, sólo nos queda una ruta final:

x(a,t) + x(b,t) = 1

Page 32: Presentación OR Problemas de Caminos Más Cortos

FORMULACIÓN LINEAL

Minimizar:

2x(r,a) + 5x(r,b) + 2x(a,b) + 4x(a,t) + 1x(b,t)

Sujeto a:

-x(r,a) - x(r,b) = -1

x(r,a)) - x(a,b) - x(a,t) = 0

x(r,b) + x(a,b) - x(b,t) = 0

x(a,t) + x(b,t) = 1

x(r,a) , x(r,b), x(a,b), x(a,t) , x(b,t) ≥ 0

Page 33: Presentación OR Problemas de Caminos Más Cortos

FORMULACIÓN LINEAL

Esta región forma una figura triangular perteneciente a dos dimensiones las cuales son subespacio de un espacio de 5 dimensiones.

Los vértices del poliedro corresponde a tres caminos desde r a t en el digrafo G.

Page 34: Presentación OR Problemas de Caminos Más Cortos

LP EXPRESADO EN FORMA DE

MATRIZ:

min cTx sujeto a Ax = b, x ≥ 0

Simplificando:

x = [x1, x2, x3, x4, x5]T

c = [2, 5, 2, 4, 1]T

b = [-1, 0, 0, 1]T

Page 35: Presentación OR Problemas de Caminos Más Cortos

MATRIZ DE INCIDENCIA

A =

Cada fila representa a un vértice

Cada columna representa un arco o arista

a +1 representa la “cabeza” y a-1 representa la “cola”

Esta matriz tiene la hace peculiar el hecho de que tiene todas sus coordenadas enteras.

También es sorprendente que cualquier submatriz cuadrada de A tiene determinante 1, 0 ó -1.

-1 -1 0 0 0

1 0 -1 -1 0

0 1 1 0 -1

0 0 0 1 1

Page 36: Presentación OR Problemas de Caminos Más Cortos

ALGORITMOS DE

PROGRAMACIÓN LINEAL

George Dantzig en 1947 introduce un método para hallar soluciones óptimas a los problemas de programación lineal.

El método es uno sumamente simple.

Algebraicamente se reduce el sistema lineal Ax = b y se obtiene un sistema lineal equivalente A’x = b’, donde A’ es de la forma *I|N+ y sus soluciones son fáciles de leer.

Page 37: Presentación OR Problemas de Caminos Más Cortos

ALGORITMOS DE

PROGRAMACIÓN LINEAL

Trabajamos con el vector c de la forma [I|N] y en la reducción movemos o reordenamos las variables para tenerlas de una forma más atractiva y así se reducen más fácilmente.

Geométricamente, este algoritmo mueve las regiones factibles de esquina a esquina pasando a lo largo de las fronteras del poliedro con el en lugar de hacer la función objectiva cTx más pequeña.

Page 38: Presentación OR Problemas de Caminos Más Cortos

ALGORITMOS DE

PROGRAMACIÓN LINEAL

Estas técnicas son utilizadas en la solución de problemas de la aviación, caso en el cual tenemos cientos y a veces miles de cientos de variables.

Haciendo este tipo de problemas a mano, nos topamos con semanas de trabajo y en el caso peor, con meses de trabajo.

Page 39: Presentación OR Problemas de Caminos Más Cortos

ALGORITMOS DE

PROGRAMACIÓN LINEAL

Leonid Khachiyan en 1979 introdujo el primer algoritmo para solucionar problemas de programación lineal: “El método de elipsoide”

Nerendra Karmarkar en 1984 introdujo el nuevo método de “Punto interior” la cual se basa fuertemente en la teoría de optimización no lineal

Page 40: Presentación OR Problemas de Caminos Más Cortos

DUALIDAD DE PROGRAMACIÓN

LINEAL

Problema de maximización en forma estándar:

max cTx sujeto a Ax ≤ b, x ≥ 0

Si combinamos las limitaciones, podemos construir una restricción implícita.

t1 x1 + . . . + tn xn ≤ w

Donde: y

Tenemos algunos múltiplos bien elegidos:

Tenemos en cuenta que y ≥ 0 es suficiente para garantizar una restricción implícita.

Page 41: Presentación OR Problemas de Caminos Más Cortos

DUALIDAD DE PROGRAMACIÓN

LINEAL

Cada solución factible x satisface Ax ≤ b y por lo tanto, también satisface:

yT Ax ≤ yT b

Page 42: Presentación OR Problemas de Caminos Más Cortos

TEOREMA 6:

TEOREMA DE DUALIDAD DÉBIL

Sea A una matriz m × n, sea c ∈ Rn yb ∈ Rm. Considere los dos problemas de programación lineal:

Para toda x una solución factible para el LP de la izquierda u “original” y para cada y solución viable para el "LP doble" a la derecha, tenemos cT x ≤ yT b

La de mostración de este teorema se obtiene a través de manipulaciones básicas de las desigualdades.

Page 43: Presentación OR Problemas de Caminos Más Cortos

CERTIFICADO DE

OPTIMALIDAD

Suponemos que nos topamos con un vector x que es factible que el LP original y también factible para el LP doble de tal manera que:

ct x = yT b.

Cada uno de estos vectores es una solución óptima para su respectivo problema.

Tenemos un certificado de optimización

Nos vemos obligados a tener igualdad en todas partes:

Page 44: Presentación OR Problemas de Caminos Más Cortos

CERTIFICADO DE

OPTIMALIDAD

Considerando que tenemos el par de soluciones primaria (P) y dual (D) del problema de programación lineal:

Page 45: Presentación OR Problemas de Caminos Más Cortos

TEOREMA 7:

TEOREMA DE HOLGURA COMPLEMENTARIA

Si x es una solución óptima para el problema (P) y y es una solución óptima para el problema (D), entonces el par de vectores satisface la “Condición de Holgura Complementaria” (CSC):

Para cada si entonces:

Para cada si entonces:

Page 46: Presentación OR Problemas de Caminos Más Cortos

DUALIDAD FUERTE

TEOREMA 8: TEOREMA DE “FARKAS’ LEMMA”,

1902

Sea M una matriz m × n y d ∈ Rm , entonces:

existe un vector no negativo z ≥ 0 en Rn tal que Mz = d

O

existe un vector w en Rm tal que wT M ≥ 0 y wT d <0

No las dos

Page 47: Presentación OR Problemas de Caminos Más Cortos

TEOREMA 9:

TEOREMA DE DUALIDAD FUERTE

Si el problema primario (P) y el problema dual (D) tienen al menos una solución factible, entonces los dos tienen soluciones óptimas.

Por otra parte, si x es una solución óptima al problema (P) y y es una solución óptima al problema (D),

entonces cT x = yT b.

Page 48: Presentación OR Problemas de Caminos Más Cortos

TEOREMA 9:

TEOREMA DE DUALIDAD FUERTE

Exponemos el teorema con el fin de la utilidad del lema de Farkas’ más evidente.

Decimos que, si existen vectores no negativos x, y tal que Ax ≤ b y yT A ≥ cT, entonces existen vectores que cumplen: cT x = yT b

Cuando ambos problemas son factibles, que para cualquier número real r, ya sea x una, factible de (P), con cT x ≥ r o un vector y, factible de (D), con yT b <r.

Page 49: Presentación OR Problemas de Caminos Más Cortos

EJEMPLO

Un departamento de publicidad tiene que planear para el próximo mes una estrategia de publicidad para el lanzamiento de un artículo tiene a consideración dos medios de difusión: La televisión y el periódico.

Los estudios de mercado han mostrado que:

La publicidad por T.V. llega al 2% de las familias de ingresos altos y al 3% de las familias de ingresos medios por comercial.

La publicidad en el periódico llega al 3% de las familias de ingresos altos y al 6% de las familias de ingresos medios por anuncio.

Page 50: Presentación OR Problemas de Caminos Más Cortos

La publicidad en periódico tiene un costo de $500 por anuncio.

La publicidad por T.V. tiene un costo de $2000 por comercial.

La meta es obtener al menos una presentación como mínimo al 36 % de las familias de ingresos altos y al 60 % de las familias de ingresos medios minimizando los costos de publicidad.

OBJETIVO: Minimizar los costos de publicidad.

Page 51: Presentación OR Problemas de Caminos Más Cortos

SOLUCIÓN

VARIABLES:

Anuncios para las familias de ingreso alto (X1).

Anuncios para las familias de ingreso medio (X2).

RESTRICCIONES:

Porcentaje de presentación.

Minimizar: Z = 2000 x1 + 500 x2

Sujeto a:

2x1 + 3x2 ≤ 36

3x1 + 6x2 ≤ 60

x1, x2 ≥ 0

Page 52: Presentación OR Problemas de Caminos Más Cortos

SOLUCIÓN

Page 53: Presentación OR Problemas de Caminos Más Cortos

SOLUCIÓN ÓPTIMA

x1 = 0 comerciales en T.V.

x2 = 12 anuncios en el periódico

Z = $6,000 costo de la publicidad

Page 54: Presentación OR Problemas de Caminos Más Cortos

REFERENCIAS

Libro: Discrete Optimization

Autor: William J. Martin III

Capítulo 4: Shortest Path Problems

Capítulo 5: Linear Programming

http://www.youtube.com/watch?v=QR2-N5Eu/fu&feature=related

http://www.itlalaguna.edu.mx/academico/carreras/industrial/invoperaciones1/UIb.HTML