2. Conceptos básicos Grafo: es un conjunto de vértices o nodosunidosporaristas 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.
3. 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.
4. 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.
5. TheLandscape 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?
6. Dijkstra’sAlgorithm EdsgerWybeDijkstra, 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.
7. 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.
8. 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).
12. 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
13. 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.
14. 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 routerIP. Se compone de los siguientes pasos: 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. Cada nodo envía su tabla a todos los nodos vecinos. 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.
15. Las desventajas principales del algoritmo de Bellman-Ford en este ajuste son: No escala bien. Los cambios en la topología de red no se reflejan rápidamente ya que las actualizaciones se distribuyen nodo por nodo. 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)
18. Esquina 1-> 2, el largo es 6. El camino mas cortoparallegar al nodo 1 mas el largo de lasesquinas 1 -> 2 es mas cortoqueinfinito. Reemplazamos el infinito en el nodo dos por un 6.
21. 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 ciclo de salida con n interacciones.
22. 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.
24. Problema del camino bi-direccional Envuelvegrafoscuyasesquinastienenorientaciones locales en ambos de suspuntos finales Hay cuatromaneras de adjuntarestas dos flechas al eje e. Un camino bi-direccional al nodo T en unagraficaesunasecuencia.
25. Programación Lineal Es un metodomatematicoparadeterminar la manera de lacanzar el mejorresultado (talcomoganancia maxima o el costobajo) en un modelomatematico dado paraunalista de requisitosrepresentadocomorelacioneslineales. Esunatecnica de optimizacion de unafuncionobjetiva lineal sujeta a la igualdad lineal y laslimitaciones de desigualdad lineal.
26. Un problema en el quedebemosmaximizar o minimizarunafuncion lineal sobretodaslassoluciones no-negativas x a un sistema lineal Ax = b, maximizar𝐶𝑇x , sujeto a Ax ≤ b, x ≥ 0 donde x representa el vector de variables, c y b son vectores de cofeficientes y A esuna matrix de coeficientes. La expresionparasermaximizada o minimizadaesllamadafuncionobjetivo: 𝐶𝑇x , lasecuaciones Ax = b y la desigualdadx ≥0 se llama limitaciones.
28. Problema del camino máscorto El problema del caminomáscorto en la teoría de grafoses 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.
29. Problema del camino máscorto 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:
30. 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
31. 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
33. 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 digrafoG.
34. 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
35. 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.
36. 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.
37. 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 objectivacTx más pequeña.
38. 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.
39. Algoritmos de programación lineal LeonidKhachiyan en 1979 introdujo el primer algoritmo para solucionar problemas de programación lineal: “El método de elipsoide” NerendraKarmarkar en 1984 introdujo el nuevo método de “Punto interior” la cual se basa fuertemente en la teoría de optimización no lineal
40. Dualidad de programación lineal Problema de maximización en forma estándar: maxcTx sujeto a Ax≤ b, x ≥ 0 Si combinamos las limitaciones, podemos construir una restricción implícita. t1 x1 + . . . + tnxn ≤ w Donde: y Tenemos algunos múltiplos bien elegidos: Tenemos en cuenta que y ≥ 0 es suficiente para garantizar una restricción implícita.
41. Dualidad de programación lineal Cada solución factible x satisface Ax ≤ b y por lo tanto, también satisface: yTAx ≤ yT b
42. 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.
43. 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:
44. Certificado de optimalidad Considerando que tenemos el par de soluciones primaria (P) y dual (D) del problema de programación lineal:
45. 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:
46. Dualidad FuerteTeorema 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 wTd <0 No las dos
47. 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.
48. 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 yTA ≥ 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 cTx ≥ r o un vector y, factible de (D), con yTb <r.
49. 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.
50. 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.
51. 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
53. Solución óptima x1 = 0 comerciales en T.V. x2 = 12 anuncios en el periódico Z = $6,000 costo de la publicidad
54. Referencias Libro: DiscreteOptimization Autor: William J. Martin III Capítulo 4: ShortestPathProblems 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