Investigación de Operaciones I Profesor: Jaime Carrasco Ayudante: Jorge Pontigo Guía 1: Modelamiento de Programación no lineal Estructura de un modelo no lineal (PPNL) Un problema no lineal es un problema de programación matemática donde la función objetivo o alguna restricción es no lineal. Forma general de un PPNL: ๐๐๐ฅ ๐๐๐ ๐(๐ฅ) , ๐ฅ+ , โฆ , ๐ฅ-.) , ๐ฅ- ) ๐ . ๐. ๐) ๐ฅ) , ๐ฅ+ , โฆ , ๐ฅ-.) , ๐ฅ- โค, =, โฅ ๐) ๐+ ๐ฅ) , ๐ฅ+ , โฆ , ๐ฅ-.) , ๐ฅ- โค, =, โฅ ๐+ โฎ ๐9 ๐ฅ) , ๐ฅ+ , โฆ , ๐ฅ-.) , ๐ฅ- โค, =, โฅ ๐: Donde ๐ (๐ฅ) , ๐ฅ+ , โฆ , ๐ฅ-.) , ๐ฅ- ) es la función objetivo del modelo no lineal considerando nuestras variables de decisión, y ๐: ๐ฅ) , ๐ฅ+ , โฆ , ๐ฅ-.) , ๐ฅ- โค, =, โฅ ๐: , son las restricciones del problema que pueden ser de igualdad o desigualdad. Ejemplos Ejemplo 1 Un joven ingeniero de la Universidad Mayor, prepara para una compañía un nuevo fertilizante hecho a partir de dos materias primas. Al combinar estas materias primas (๐ฅ) , ๐ฅ+ ), la cantidad de fertilizante que se obtiene viene dado por ๐ = 4๐ฅ) + 2๐ฅ+ โ 0.5๐ฅ)+ โ 0.25๐ฅ++ . Se requieren 480 pesos por unidad de materia prima 1 y 300 pesos por cada unidad de materia prima 2 que se empleen en la fabricación del fertilizante (en estas cantidades se incluyen los costos de las materias primas y los costos de producción). Si la compañía dispone de 24.000 pesos para la producción de materias primas, plantear el problema para determinar la cantidad de materia prima de forma que se maximice la cantidad de fertilizante. Ejemplo 2 Una empresa produce ampolletas de ahorro energético y ha firmado un contrato para suministrar al menos 150 unidades en tres meses, 50 unidades al final del primer mes, 50 al final del segundo y 50 al final del tercero. El coste de producir una cantidad de ampolletas en cualquier mes es su cuadrado. La empresa puede producir si lo desea más ampolletas de los que necesita en cualquier mes y guardarlos para el siguiente, siendo el coste de almacenaje de 12 euros por unidad al mes. Suponiendo que no hay inventario inicial, formular el modelo adecuado para determinar el número de frigoríficos que deben producirse cada mes, para minimizar el coste total. Investigación de Operaciones I Profesor: Jaime Carrasco Ayudante: Jorge Pontigo Ejemplo 3 Una compañía petrolífera debe determinar cuántos barriles de petróleo hay que extraer en los próximos dos años. Si la compañía extrae ๐ฅ) millones de barriles durante un año, se pondría vender cada barril a 30 โ ๐ฅ) euros. Si extrae ๐ฅ+ millones de barril durante el segundo año, se podrá vender cada barril a 35 โ ๐ฅ+ euros. El costo para extraer ๐ฅ) millones de barriles en el primer año es de ๐ฅ)+ millones de euros y el costo para extraer ๐ฅ+ millones de barriles durante el segundo año es de 2๐ฅ++ millones de euros. Se puede obtener como máximo un total de 20 millones de barriles de petróleo, y se puede gastar como máximo 250 millones de euros en la extracción. Formular el P.N.L. para ayudar a la empresa a maximizar sus ganancias para los próximos dos años. Ejemplo 4 Una compañía de electricidad planea gastar 10000 dólares en publicidad. Se sabe que un minuto de publicidad en televisión cuesta 3000 dólares y 1000 dólares en la radio. Si la empresa compra ๐ฅ) minutos de publicidad en televisión y ๐ฅ+ minutos en la radio, su ingreso, en dólares, están dado por โ2๐ฅ)+ โ ๐ฅ++ + ๐ฅ) ๐ฅ+ + 8๐ฅ) + 3๐ฅ+ . ¿Cómo puede la empresa maximizar sus ingresos? Desarrollo matemático: Ejemplo 1: Las variables de decisión del problema: ๐ฅ) โ cantidad de materia prima 1 ๐ฅ+ โ cantidad de materia prima 2 El objetivo es maximizar la cantidad de fertilizante ๐ = 4๐ฅ) + 2๐ฅ+ โ 0.5๐ฅ)+ โ 0.25๐ฅ++ Las restricciones del problema son: -โโ El costo no puede no puede superar el presupuesto de la empresa: 480๐ฅ) + 300๐ฅ+ โค 24000 -โโ No negatividad: ๐ฅ) โฅ 0, ๐ฅ+ โฅ 0 Investigación de Operaciones I Profesor: Jaime Carrasco Ayudante: Jorge Pontigo La función objetivo nos queda: max ๐(๐ฅ) , ๐ฅ+ ) = 4๐ฅ) + 2๐ฅ+ โ 0.5๐ฅ)+ โ 0.25๐ฅ++ Por lo tanto nuestro modelo se puede escribir completo de la forma: max ๐(๐ฅ) , ๐ฅ+ ) = 4๐ฅ) + 2๐ฅ+ โ 0.5๐ฅ)+ โ 0.25๐ฅ++ s.a. 480๐ฅ) + 300๐ฅ+ โค 24000 ๐ฅ) โฅ 0, ๐ฅ+ โฅ 0 Ejemplo 2: Las variables de decisión del problema: ๐ฅ) โ cantidad de ampolletas a producir el primer mes ๐ฅ+ โ cantidad de ampolletas a producir el segundo mes ๐ฅ+ โ cantidad de ampolletas a producir el tercer mes La función objetivo nos queda: El objetivo es minimizar los costos, el Costo Total = costo de producción + costo de almacenaje segundo mes + costo de almacenaje tercer mes. Costo de producción:= ๐ฅ)+ + ๐ฅ++ +๐ฅI+ Costo de almacenaje segundo mes:= 12(๐ฅ) โ 50) Costo de almacenaje tercer mes:= 12(๐ฅ) + ๐ฅ+ โ 50) Por lo tanto ๐ ๐ฅ) , ๐ฅ+ , ๐ฅI = ๐ฅ)+ + ๐ฅ++ +๐ฅI+ + 12 ๐ฅ) โ 50 + 12(๐ฅ) + ๐ฅ+ โ 50) Las restricciones del problema son: -โโ Atender la demanda del primer mes: ๐ฅ) โฅ 50 Investigación de Operaciones I Profesor: Jaime Carrasco Ayudante: Jorge Pontigo -โโ Atender la demanda del segundo mes: ๐ฅ) โ 50 + ๐ฅ+ โฅ 50 -โโ Atender la demanda del tercer mes: ๐ฅ) + ๐ฅ+ โ 100 + ๐ฅI โฅ 50 -โโ No negatividad: ๐ฅ+ โฅ 0, ๐ฅI โฅ 0 Por lo tanto nuestro modelo se puede escribir completo de la forma: min ๐ ๐ฅ) , ๐ฅ+ , ๐ฅI = ๐ฅ)+ + ๐ฅ++ + ๐ฅI+ + 12 ๐ฅ) โ 50 + 12(๐ฅ) + ๐ฅ+ โ 50) s.a. ๐ฅ) โฅ 50 ๐ฅ) โ 50 + ๐ฅ+ โฅ 50 ๐ฅ) + ๐ฅ+ โ 100 + ๐ฅI โฅ 50 ๐ฅ+ โฅ 0, ๐ฅI โฅ 0 Ejemplo 3: Las variables de decisión del problema: ๐ฅ) โ millones de barriles extraídos el primer año ๐ฅ+ โ millones de barriles extraídos el segundo año La función objetivo corresponde a maximizar los ingresos, ๐ ๐ฅ) , ๐ฅ+ = ๐ฅ) 30 โ ๐ฅ) + ๐ฅ+ 35 โ ๐ฅ+ โ ๐ฅ)+ โ 2๐ฅ++ . Las restricciones del problema: -โโ Gastar como máximo 250 euros en la extracción: ๐ฅ)+ + 2๐ฅ++ โค 250 -โโ Obtener como máximo 20 millones de barriles: ๐ฅ) + ๐ฅ+ โค 20 Investigación de Operaciones I Profesor: Jaime Carrasco Ayudante: Jorge Pontigo -โโ No negatividad: ๐ฅ) โฅ 0, ๐ฅ+ โฅ 0 Por lo tanto nuestro modelo se puede escribir completo de la forma: min ๐ ๐ฅ) , ๐ฅ+ = ๐ฅ) 30 โ ๐ฅ) + ๐ฅ+ 35 โ ๐ฅ+ โ ๐ฅ)+ โ 2๐ฅ++ s.a. ๐ฅ)+ + 2๐ฅ++ โค 250 ๐ฅ) + ๐ฅ+ โค 20 ๐ฅ) โฅ 0, ๐ฅ+ โฅ 0 Ejemplo 4: Las variables de decisión del problema: ๐ฅ) โ minutos que se compran en televisión ๐ฅ+ โ minutos que se compran en radio La función objetivo corresponde a maximizar los ingresos, ๐ ๐ฅ) , ๐ฅ+ = โ2๐ฅ)+ โ ๐ฅ++ + ๐ฅ) ๐ฅ+ + 8๐ฅ) + 3๐ฅ+ . Las restricciones del problema: -โโ Gastar 10000 dólares en publicidad en ambos medios: 3000๐ฅ) + 1000๐ฅ+ โค 10000 Por lo tanto nuestro modelo se puede escribir completo de la forma: min ๐ ๐ฅ) , ๐ฅ+ = โ2๐ฅ)+ โ ๐ฅ++ + ๐ฅ) ๐ฅ+ + 8๐ฅ) + 3๐ฅ+ Investigación de Operaciones I Profesor: Jaime Carrasco Ayudante: Jorge Pontigo Resolución usando Matlab: Recordar la siguiente estructura vista en el laboratorio: Ejemplo 1: fa = @(x) -4*x(1) - 2*x(2) + 0.5*x(1)^2 + 0.25*x(2)^2; %Recuerden la función objetivo se multiplica por -1 para quedar en min A = [480 300]; b = 24000; Aeq = []; beq = []; lb = [0;0]; lu = []; x0 = [0;0]; %Se deben dar una solución factible fácil, recuerden que factible es que cumpla todas las restricciones options=optimset('Algorithm','active-set'); [x,fval,e,output,lambda,G,H] = fmincon(fa, x0, A, b, [], [], lb, lu,[],options) %%%%%%%%%%%%%%%%RESULTADOS%%%%%%%%%%%%%%%%%%% >> lagrange Local minimum possible. Constraints satisfied. fmincon stopped because the predicted change in the objective function is less than the default value of the function tolerance and constraints are satisfied to within the default value of the constraint tolerance. <stopping criteria details> No active inequalities. Investigación de Operaciones I Profesor: Jaime Carrasco Ayudante: Jorge Pontigo x = x1 = 4.0000 %materia prima 1 x2 = 4.0001 %materia prima 2 fval = función objetivo -12.0000 e = 5 output = iterations: funcCount: lssteplength: stepsize: algorithm: firstorderopt: constrviolation: message: 6 18 1 6.7460e-05 'medium-scale: SQP, Quasi-Newton, line-search' 3.3616e-05 -4.0000 'Local minimum possible. Constraints satisfied. fmincon stopped because ...' lambda = lower: upper: eqlin: eqnonlin: ineqlin: ineqnonlin: [2x1 [2x1 [0x1 [0x1 0 [0x1 Gradiente = 1.0e-04 * 0.1329 0.3362 Hessiana = 1.0014 -0.0037 -0.0037 0.5094 double] double] double] double] double] Investigación de Operaciones I Profesor: Jaime Carrasco Ayudante: Jorge Pontigo Ejemplo 2: fa = @(x) x(1)^2 + x(2)^2 + x(3)^2 +12*(x(1)-50)+12*(x(1)+x(2)-50); A = [-1 0 0;-1 -1 0;-1 -1 -1]; b = [-50;-100;-150]; %recordar que las restricciones deben ser del tipo <= por lo tanto multiplicamos por -1 para dejar <= Aeq = []; beq = []; lb = [50;0;0]; lu = []; x0 = [50;0;0]; options=optimset('Algorithm','active-set'); [x,fval,e,output,lambda,G,H] = fmincon(fa, x0, A, b, [], [], lb, lu,[],options) %%%%%%%%%%%%%%%%RESULTADOS%%%%%%%%%%%%%%%%%%% Local minimum found that satisfies the constraints. Optimization completed because the objective function is non-decreasing in feasible directions, to within the default value of the function tolerance, and constraints are satisfied to within the default value of the constraint tolerance. <stopping criteria details> Active inequalities (to within options.TolCon = 1e-06): lower upper ineqlin ineqnonlin 1 1 2 3 x = 50.0000 %ampolletas primer mes 50.0000 %ampolletas segundo mes 50.0000 %ampolletas tercer mes fval = 8.1000e+03 e = 1 Investigación de Operaciones I Profesor: Jaime Carrasco Ayudante: Jorge Pontigo output = iterations: funcCount: lssteplength: stepsize: algorithm: firstorderopt: constrviolation: message: 2 8 1 0 'medium-scale: SQP, Quasi-Newton, line-search' 0 0 'Local minimum found that satisfies the constraints. Optimization comple...' lambda = lower: [3x1 double] upper: eqlin: eqnonlin: ineqlin: ineqnonlin: [3x1 [0x1 [0x1 [3x1 [0x1 double] double] double] double] double] Gradiente = 124.0000 112.0000 100.0000 Hessiana = 1.0000 0.0000 0.0000 0.0000 1.5000 0.5000 Ejemplo 3: (propuesto) Ejemplo 4: (propuesto) 0.0000 0.5000 1.5000
© Copyright 2024