Elisenda Molina Universidad Carlos III de Madrid elisenda.molina@uc3m.es 8 de octubre de 2008
Esquema 1 Formulación y Ejemplos 2 3
Ejemplo: Producción de carbón Una empresa minera produce lignito y antracita. El proceso de producción está dividido en tres fases: 1 Corte del mineral, 2 Tamizado y a la selección, 3 Lavado. Datos: Corte Tamizado Lavado Beneficio Lignito 3 3 4 24 Antracita 4 3 2 18 Disponibilidad máxima 12 10 8 cuántas toneladas de cada clase de carbón debe producir al día para maximizar sus beneficios?
Asignación y distribución de recursos/produción Problemas en los que se trata de asignar o localizar un número de recursos, siempre limitados, entre diversas actividades. Se plantea un conflicto entre la función objetivo, que cuantifica el beneficio derivado de cada asignación, y las restricciones, que establecen los ĺımites a las asignaciones posibles.
Problema de Clase más importante de problemas de optimización Base para la resolución de otros problema de optimización Uno de los modelos matemáticos más aplicados (ver top10.pdf) Elementos y características: 1 Variables de decisión continuas: x t = (x 1,..., x n ) 2 Función objetivo lineal: f (x 1,..., x n ) 3 Restricciones lineales: para j = 1,..., m, a j1 x 1 + a j2 x 2 + + a jn x n b j, a j1 x 1 + a j2 x 2 + + a jn x n b j, ó ó a j1 x 1 + a j2 x 2 + + a jn x n = b j
Programación Matemática: alternativas 1 Programación Entera (Mixta): cantidades no divisibles y enteras y/o decisiones lógicas. 2 Programación no Lineal: relaciones no proporcionales y no aditivas. 3 Programación Multiobjetivo: varios objetivos. 4 Programación Estocástica, que permite incorporar la incertidumbre inherente en muchas situaciones reales al modelo. 5 Programación Difusa, que permite trabajar con problemas en los que las restricciones no son rígidas (modelizan relaciones vagamente definidas).
El problema de la dieta Aplicación clásica de la Programación Lineal y un ejemplo típico de esta familia de problemas. Se trata de alimentar a un colectivo de la forma menos costosa, satisfaciendo las necesidades nutricionales. Un veterinario aconseja a un granjero dedicado a la cría de pollos una dieta mínima para la alimentación de las aves consistente en 3 unidades de hierro y 4 unidades de vitaminas. Dieta: mezcla de maíz, harina de pescado y pienso sintético. Datos: Hierro (u/kg) Vitaminas (u/kg) Coste (euro/kg) Maíz 2,5 1 0,3 Harina 3 3 0,5 Pienso 1 2 0,2 El granjero se pregunta por la composición de la dieta que, satisfaciendo las necesidades alimenticias, minimice el coste total.
Ejemplo Una refinería de petróleo puede destilar 2 tipos de crudo: un crudo medio de Arabia Saudí y uno pesado de Venezuela, para producir gasolina, fuel de avión y lubricantes. Dependiendo de las características del crudo el proceso de refino da lugar a distintos derivados en diferentes proporciones. Datos: Medio Pesado Requerimientos Gasolina 0.3 0.4 2000 Fuel avión 0.4 0.2 1500 Lubricantes 0.2 0.3 500 Disponible/día 9000 6000 Coste 20 15 Cómo satisfacer la demanda comprometida a coste mínimo?
Problemas de Mezclas Planificación óptima de la mezcla de productos a fabricar: determinar la cantidad de materia prima a comprar/producir, así como la proporción de cada materia prima en cada producto final. Todo ello, teniendo en cuenta las características técnicas del producto final, las materias primas disponibles y sus componentes técnicos. Las limitaciones que suelen aparecer vienen dadas por: garantía mínima relativa, costos fijos de producción, número máximo de ingredientes, ingredientes sustitutivos, procesos sustitutivos, proporciones de mercado, proporciones en características técnicas, tarifas de precios, Aplicaciones: industrias de la alimentación, ganadera, farmacéutica, química, siderúrgica o petroĺıfera.
Región Factible Región factible: conjunto de puntos que verifican todas las restricciones del modelo Min. 2x 1 x 2 s.a x 1 + x 2 2, x 1 + x 2 4, 5x 1 + 3x 2 15, x 1, x 2 0. Poliedro: intersección finita de semiespacios, conjunto convexo
Región Factible x 1 + x 2 = 2 x 1 + x 2 = 4 La 5x 1 + 3x 2 = 15
Rectas de nivel y gradiente mín 2x 1 x 2, s.a x 1 + x 2 2, x 1 + x 2 4, 5x 1 +3x 2 15, x 1, x 2 0. 2x 1 x 2 = 0 2x 1 x 2 = 1 2x 1 x 2 = 2 (0,2) El punto óptimo es (0,2), en el que la función objetivo vale -2. El punto óptimo es (0, 2), en el que la función objetivo vale -2.
Ejemplos: resolución en clase
Vértices: teorema fundamental de la PLC Soluciones de un problema de Programación Lineal: Si tiene solución finita: La solución se encuentra en un punto extremo. Estos existen en un número finito. Solución no acotada Dirección extrema de decrecimiento (mín.), crecimiento (máx.), partiendo de un punto extremo. El problema no tiene solución: la región es vacía y, por tanto, no existen puntos extremos.
Métodos de resolución Las dos alternativas más importantes son: 1 Algoritmo del simplex. 2 Métodos de punto interior. El primer método se mueve por la frontera de la región factible, hasta llegar a un punto óptimo. Se basa en un resultado básico: Si el problema de programación lineal tiene solución, entonces se alcanza en al menos un vértice. Los métodos de punto interior se mueven por el interior de la región factible. Utiliza técnicas de programación no lineal.
Vértices: Puntos Extremos y Soluciones Básicas Factibles Punto extremo o vértice: punto intersección de al menos n caras o hiperplanos (definición geométrica). Solución Básica Factible: Se trabaja con PLs en Forma Estándar Formulación estándar Función objetivo de minimizar, restricciones de igualdad, constantes del lado derecho no negativas y variables no negativas. con b 0 mín z = c t x s.a. A x = b, x 0,
Transformaciones Cualquier problema de programación lineal se puede formular en formato estándar. Si el objetivo es maximizar, multiplicando la función objetivo por -1, se convierte en un problema de minimización: máx 2x 1 + 3x 2 mín 2x 1 3x 2
Transformaciones. Restricción de desigualdad a igualdad x 1 + 2x 2 3, Se introduce una nueva variable, denominada variable de holgura (slack): x 1 + 2x 2 +s 1 = 3 con s 1 0. Si la desigualdad es de tipo mayor o igual que, x 1 + x 2 10, la variable de holgura se introduce con signo negativo en la restricción. Se denomina variable de exceso (surplus) x 1 + x 2 s 2 = 10 con s 2 0.
Transformaciones. Signo de las variables Si una variable x no está restringida en signo, se hace el cambio de variable x = x + x, x + = máx{x, 0} x = máx{ x, 0} y se introducen estas variables en el modelo, en lugar de x. Si una variable debe tomar un valor negativo, se hace el cambio x = x. Si la cota inferior de una variable no es 0: x 3, se puede hacer el cambio x = x 3.
Transformaciones. Valor absoluto Es habitual que en muchos problemas aparezca el valor absoluto de una expresión. Por ejemplo, si aparece x, para eliminarlo de la formulación se hace el cambio: x = x + x, donde x + y x están definidas como en el apartado anterior. El valor absoluto es, entonces: x = x + + x. Si lo que aprarece es: { 2x1 + x 2x 1 + x 2 3 2 3 3 2x 1 + x 2
Transformaciones. Objetivo maximin/minimax Un ordenador con 2 procesadores funciona durante al menos 10 horas diarias en aplicaciones administrativas y académicas. Cada tarea administrativa requiere 2 segundos de CPU si se ejecuta en el procesador 1 y 6 segundos de CPU si se ejecuta en el procesador 2. Cada tarea académica requiere 5 segundos de CPU si se ejecuta en el procesador 1 y 3 segundos de CPU si se ejecuta en el procesador 2. Se requiere programar la cantidad de tareas diarias a asignar a cada procesador de manera que se minimice el tiempo que el ordenador está ocupado en estos trabajos.
Vértices: Puntos Extremos y Soluciones Básicas Factibles Sea el sistema de ecuaciones lineales Ax = b, donde A M m n (m n), es la matriz del sistema: A = (a 1,..., a n ) a j = (a 1j,..., a ij,..., a mj ) t IR m, j ésima columna de A rg(a) = m < n b IR m y x IR n. Soluciones Básicas del sistema Seleccionar m variables con columnas asociadas linealmente independientes B=matriz básica El resto de columnas de A se denotan por N. Después de un posible reordenamiento de las columnas de A: A = (B, N) con B M m m
Soluciones Básicas del sistema (cont.) Se separa el vector x en dos subvectores: variables básicas y variables no básicas. ( ) xb x = Asignar el valor 0 a las variables no básicas: x N = 0 Y resolver las m ecuaciones con m incógnitas que queda: x N Bx B = b x B = B 1 b Soluciones Básicas Factibles: Si además x B = B 1 b 0 x = Solución Básica Factible punto extremo (vértice) Cuántos puntos extremos tenemos? como mucho ( ) n m
Soluciones Básicas del sistema: terminología Solución básica factible: si x B 0. B: matriz básica (o base) N: matriz no básica Componentes de x B : variables básicas Componentes de x N : variables no básicas Solución básica factible no degenerada: si x B > 0. Solución básica factible degenerada: si alguna de las componentes de x B es 0.
Algoritmo del simplex (Dantzig, 1949) George Dantzig es el padre de la PL. Desarrolló el algoritmo del Simplex en 1947. El primer problema de PL fue el problema de la dieta (9 restricciones y 77 variables). Se necesitaron 9 trabajadores durante aproximadamente 15 días para realizar los cálculos electrónicos que resolvieron el problema. La primera implementación del Simplex en ordenador es de 1952. Se resolvió un PL con 48 restricciones y 71 variables en 18 horas. Actualmente se pueden resolver PL s con millones de variables y restricciones en horas o minutos.
Algoritmo del simplex (Dantzig, 1949) Procedimiento que permite moverse de un punto extremo a otro, mejorando cada vez (o, por lo menos, no empeorando) el objetivo. Detecta si la región factible es vacía o si la solución óptima es no acotada. A pesar de que han aparecido otros algoritmos, sigue siendo el más utilizado: Hay implementaciones muy eficientes del algoritmo. Proporciona mucha información sobre la estructura de la región factible. Si el número de variables (n) es muy superior al de restricciones (m), el número de iteraciones oscila entre 3 2m y 3m (n = 60 y m = 20, 30-60 iteraciones).
Algoritmo del simplex (Dantzig, 1949) Clave del algoritmo Reconoce la optimalidad de un punto extremo sin tener que enumerar todos los puntos extremos. Utiliza CONDICIONES DE OPTIMALIDAD LOCALES
Algoritmo del simplex (Dantzig, 1949) Algoritmo del simplex Punto extremo Sol. Básica factible Es factible? Hay redundancia algebraica? Contraste de Optimalidad Solución Óptima FIN Contraste de no acotación Solución no acotada FIN Nuevo punto extremo (cambio de base) 7