Pontificia Universidad Católica Escuela de Ingeniería Departamento de Ingeniería Industrial y de Sistemas Clase 17 • Programación Lineal ICS 1102 • Optimización Profesor : Claudio Seebach 2 de octubre de 2006 Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 3 Programación Lineal Comprende el problema general de asignar de una manera óptima una serie de recursos escasos entre varias actividades que compiten por ellos. Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 4 Introducción a Programación Lineal • Un importante avance cientı́fico del siglo XX • Poderosa herramienta de modelación: teorı́a y práctica – Simple – Cubre una amplia gama de aplicaciones – Flexible • Método Simplex (Georg Dantzig 1947) • Paquetes comerciales (Cplex, Minos, Lindo, Excel) Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 5 Introducción a Programación Lineal Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 6 Supuestos en Programación Lineal • Los recursos son limitados • Existe un objetivo explı́cito • Tanto la función objetivo como las restricciones se expresan como funciones lineales • Todos los productos y recursos son homogéneos • Las variables de decisión son no-negativas y pueden tomar valores fraccionales Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 7 Aplicaciones Reales • En manufactura – Mix de productos – Planificación de la producción • En energı́a – Despacho de centrales eléctricas – Exploración y explotación de petróleo • En finanzas – Asignación de activos – Selección de porfolio Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 8 Problema de Empresa de Perfumes • Venden dos productos: colonia y perfume • Colonia se vende a $3 por onza; y cada onza requiere – 2 gramos de fragancia – 6 gramos de intensificador • Perfume se vende a $8 por onza; y cada onza requiere – 4 gramos de fragancia – 2 gramos de intensificador – 1 gramo de estabilizador • Los recursos son limitados. En particular hay: – 1,600 gramos de fragancia – 1,800 gramos de intensificador – 350 gramos de estabilizador • ¿Cómo se podrı́a maximizar las ventas? Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 9 Problema de Empresa de Perfumes Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 10 Problema de Empresa de Perfumes Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 11 Empresa de Vidrios Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 12 Formulación del Problema de LP • Variables de decisión – x1= # de lotes del producto 1 por semana – x2= # de lotes del producto 2 por semana – Z = Utilidad total por semana (en miles de $) • Restricciones – Función objetivo: Z = 3x1 + 5x2 – Producción x1 ≤ 4 2x2 ≤ 12 3x1 + 2x2 ≤ 18 (planta 1) (planta 2) (planta 3) – No-negatividad: x1 ≥ 0 y x2 ≥ 0 • Problema: Encontrar x1 y x2 que maximice Z sujeto a las restricciones de producción y de no-negatividad Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 13 Solución usando Métodos Gráficos • No-negatividad: x2 ≥ 0 & x1 ≥ 0 • Producción: x1 ≤ 4, 2x2 ≤ 12 & 3x1 + 2x2 ≤ 18 • Objetivo: Z = 3x1 + 5x2 = K Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 14 Solución usando Métodos Gráficos • El # de variables de decisión determina la dimensionalidad del problema – Problemas de dos variables pueden ser graficados en 2-D – Se escoge un eje para cada variable • Las restricciones determinan el conjunto de soluciones factibles – Cada desigualdad determina un semiplano factible – La región factible del problema es la intersección de los semiplanos – Para graficar una restricción basta con calcular las dos intersecciones y trazar la lı́nea entre ellas • Una solución óptima siempre puede encontrarse en un vértice – Tomar un valor de la función objetivo arbitrario y trazar curvas de nivel – Encontrar la dirección de mejora del valor de la función; ubicar vértices candidatos a óptimo – Calcular la solución correspondiente a cada vértice candidato, resolviendo el sistema de ecuaciones de restric. activas en el vértice – Comparar los valores de la función objetivo reemplazando las coordenadas en la función objetivo Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 15 Introducción a Programación Lineal • Un problema de optimización es lineal si las variables son todas continuas y tanto la función objetivo como las restricciones del problema son funciones lineales en las variables. • Z = Valor de la Función Objetivo • xj = Nivel de actividad j (j = 1, ..., n) (variable de decisión) • cj = Cambio en Z por cada unidad que se cambie en xj . • bi = Cantidad de recurso i (i = 1, ..., m) disponible. • aij = Cantidad de recurso i consumido por cada unidad de actividad j. Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 16 Introducción a Programación Lineal • Todo problema de Programación Lineal puede expresarse mediante el siguiente formato estándar: s.a min Z = c1x1 + c2x2 + ... + cnxn a11x1 + ... + a1nxn ≤ b1 .. am1x1 + ... + amnxn ≤ bm • En notación matricial: min !c · !x s.a A!x ≤ !b Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 17 Terminologı́a de Programación Lineal • Solución óptima • Múltiples óptimos, o solución no óptima • Valor óptimo o más favorable de Z • Problema no acotado • Problema infactible Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 18