Ejercicios de formulación de problemas Programación Matemática LADE Curso 07/08 - 12/3/08 1. Una compañı́a petrolera produce un tipo de gasolina a partir de petróleo. Puede comprar cuatro tipos de petróleo y dispone de los siguientes datos: Crudo 1 2 3 4 A 0.8 0.3 0.7 0.4 B 0.1 0.3 0.1 0.5 C 0.1 0.4 0.2 0.1 Precio/litro 43 31 47 37 A, B y C denotan los elementos a partir de los cuales se puede producir cada tipo de crudo. La tabla muestra los porcentajes de cada elemento en cada crudo producido. Las exigencias del mercado imponen que el crudo de base para la obtención de gasolina debe tener al menos el 60 % del elemento A y no más del 30 % de C. Obtén el crudo base mezclando de los cuatro tipos de forma tal que el coste sea mı́nimo. Solución. Las variables del problema se escogen como las cantidades xi de cada tipo de petróleo que la compañı́a desea adquirir y que definirán el crudo base para la producción de gasolina. Dichas cantidades se miden en tantos por uno (por ejemplo). La función objetivo será el coste (por unidad) de la mezcla a utilizar, y las restricciones serán las condiciones sobre la composición de la mezcla respecto de los componentes A y C (que en la formulación más abajo se presenta medida en tanto por ciento). Por último, nos hace falta indicar que al estar las variables medidas como tantos por uno, deben sumar uno. El problema resultante tiene la forma: minimizar sujeto a 43x1 + 31x2 + 47x3 + 37x4 80x1 + 30x2 + 70x3 + 40x4 ≥ 60 10x1 + 40x2 + 20x3 + 10x4 ≤ 30 x1 + x2 + x3 + x4 = 1 x1 , x2 , x3 , x4 ≥ 0. 2. Una compañı́a de transporte dispone de 10 camiones con capacidad de 40000 libras y de 5 camiones con capacidad de 30000 libras. Los camiones grandes tienen un coste de transporte de 30 céntimos/milla, y los pequeños de 25 céntimos/milla. En una semana la compañı́a debe transportar 400000 libras en un recorrido de 800 millas. La posibilidad de otros compromisos recomienda que por cada dos camiones pequeños mantenidos en reserva debe quedarse por lo menos uno de los grandes. ¿Cuál es el número de camiones de ambas clases que debe movilizarse para ese transporte de forma óptima y teniendo en cuenta las restricciones? 1 Solución. Las variables en este caso corresponden a los números de camiones a emplear de cada tipo, x1 y x2 . La función objetivo es el coste total de los camiones asignados, multiplicando el coste por recorrido (coste por milla multiplicado por las 800 millas) por las variables. Las restricciones vienen dadas por los números máximos de camiones disponibles de cada tipo, la necesidad de transportar una carga y los números de camiones mantenidos en reserva. El modelo resultante es minimizar sujeto a 30 × 800x1 + 25 × 800x2 x1 ≤ 10 x2 ≤ 5 40000x1 + 30000x2 ≥ 400000 2(10 − x1 ) ≥ 5 − x2 x1 , x2 ≥ 0 , enteras. 3. Se pide que formules el siguiente problema de programación lineal: Tienes 2200 euros disponibles para invertirlos durante los próximos cinco años. Al inicio de cada año puedes invertir parte del dinero en depósitos a un año o a dos años. Los depósitos a un año pagan un interés del 5 %, mientras que los depósitos a dos años pagan un 11 % al final de los dos años. Además, al inicio del segundo año es posible invertir dinero en obligaciones a tres años de la empresa X., que tienen un rendimiento (total) del 17 %. Plantea el problema lineal correspondiente a conseguir que al cabo de los cinco años tu capital sea lo mayor posible. Solución. Para plantear el problema seleccionamos como variables las cantidades a invertir en cada activo (depósitos u obligaciones), xti , donde t indica el año al que corresponde la inversión e i denota el vencimiento de la inversión. Tendremos un total de 10 variables, x11 , x12 , x21 , x22 , x23 , x31 , . . . , x51 . Para facilitar la formulación, añadiremos también variables xt0 , que denoten la posible cantidad de dinero no invertida al inicio de cada año, aunque estas variables no son estrictamente necesarias. La función objetivo a minimizar será el capital total disponible al final del quinto año, o al comienzo del sexto, que podemos denotar por x60 para simplificar el planteamiento. mı́n x60 . Las restricciones del problema serán: Las cantidades disponibles para invertir al inicio de cada periodo (resultado de las inversiones realizadas en periodos anteriores) deben ser iguales a las inversiones en el periodo (incluyendo el posible dinero no invertido): 2200 = x10 + x11 + x21 x10 + 1, 05x11 = x20 + x21 + x22 + x23 x20 + 1, 05x21 + 1, 11x12 = x30 + x31 + x32 x30 + 1, 05x31 + 1, 11x22 = x40 + x41 + x42 x40 + 1, 05x41 + 1, 11x32 + 1, 17x23 = x50 + x51 x50 + 1, 05x51 + 1, 11x42 = x60 En las expresiones anteriores, los lados izquierdos son las cantidades de dinero disponibles, y los lados derechos las inversiones al comienzo de cada año. 2 No negatividad de las inversiones: xti ≥ 0. En la formulación anterior se podrı́an haber eliminado las variables xt0 , que no son más que variables de holgura asociadas a restricciones de desigualdad. 4. Plantea el siguiente problema entero: Una empresa fabrica un determinado producto en m centros diferentes, para satisfacer la demanda de n clientes. La demanda de cada cliente es Dj . Si una de las fábricas está funcionando, eso supone un coste fijo de Ki y un coste por unidad fabricada de hi ; en este caso, debe producir al menos Mi > 0 unidades de producto. El coste por unidad de enviar una unidad del producto de la fábrica i al cliente j es gij . Cada fábrica pertenece a una de k regiones. En cada región deben tenerse al menos lk fábricas abiertas. Solución. Las variables del problema serán las cantidades fabricadas del producto en cada una de las fábricas para satisfacer la demanda de cada cliente, xij . Además, necesitaremos variables auxiliares que nos indiquen si cada una de las fábricas está abierta o no. Sea zi una variable 0 − 1, que toma el valor cero si la fábrica no está produciendo, y el valor uno si produce algo. La función objetivo del problema corresponderá a la minimización de los costes de producción, dados por X X X X gij xij + hi xij + Ki zi . i,j i j i Para introducir las restricciones debemos empezar por definir unos conjuntos auxiliares. A los ı́ndices i ∈ {1, . . . , m} correspondientes a las fábricas pertenecientes a la región k los agruparemos en el conjunto Ck . Las restricciones corresponderán a las siguientes condiciones sobre la solución: Satisfacción de la demanda: X xij ≥ Dj j = 1, . . . , n. i Producción mı́nima en cada fábrica: X xij ≥ Mi zi i = 1, . . . , m. j Número mı́nimo de fábricas abiertas en cada región: X zi ≥ lk ∀k. i∈Ck Relaciones entre xij y zi : X xij ≤ N zi i = 1, ..., m, j donde N es una constante suficientemente grande, por ejemplo N = No negatividad: xij ≥ 0, 3 zi ∈ {0, 1} . P j Dj . Estas restricciones completan la formulación del problema. 5. Tu empresa suministra láminas de acero que obtiene del corte de dichas láminas a partir de bobinas de acero de 200 cm de ancho y de 20 m de largo. La demanda en metros de los diferentes anchos que fabrica la empresa es la siguiente: Ancho (cm) Demanda (m) 30 1500 35 1000 50 3000 70 1000 El equipo de corte de que se dispone se puede ajustar para realizar uno de cuatro tipos de cortes en una bobina. cada bobina solo puede cortarse de una manera. Dichos tipos de cortes generan los anchos que se indican en la tabla siguiente: A B C D 35 30 50 30 35 30 50 30 50 70 50 50 70 70 50 70 Como resultado de los cortes se desaprovechan partes del material en las bobinas. En particular, existen dos tipos de material no aprovechado: material de los laterales de las bobinas (en los cortes de tipo A y D) y material del final de la bobina. El coste del material desaprovechado es de 1.5 euros por cm de ancho y metro de largo para el correspondiente al final de la bobina y de 1 euro por cm de ancho y metro de largo para el correspondiente a un lateral. Se pide que plantees un problema de optimización para determinar el número de bobinas a cortar con cada tipo de corte de manera que se satisfaga la demanda con coste mı́nimo. Solución. Escogeremos como variables los números de bobinas sobre los que realizar cada uno de los tipos de cortes, que denotaremos como xA , xB , xC y xD respectivamente. La función objetivo corresponderá al coste del material no utilizado. Para plantearla introduciremos variables adicionales que midan la longitud de material que queda sin utilizar de cada uno de los anchos, que denotaremos como s30 , s35 , s50 y s70 . La función objetivo tendrá la forma mı́n 1,5(30s30 + 35s35 + 50s50 + 70s70 ) + (200xA + 400xD ) Las restricciones corresponderán a la satisfacción de la demanda, de manera que la producción exceda o iguale a dicha demanda. Para tener en cuenta los sobrantes de material, introducimos las variables si , y convertimos las restricciones en restricciones de igualdad (el exceso sobre la demanda son los sobrantes). El problema resultante tendrá la forma siguiente: minimizar 1,5(30s30 + 35s35 + 50s50 + 70s70 ) + (200xA + 400xD ) sujeto a 40xB + 40xD − s30 = 1500 40xA − s35 = 1000 20xA + 80xC + 20xD − s50 = 3000 20xA + 40xB + 20xD − s70 = 1000 xi , sj ≥ 0 xi enteras. 4