Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
I.
Introducción a la Investigación de Operaciones
Antecedentes: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
I.1. Introducción Durante la Segunda Guerra Mundial, el mando británico consultó a científicos y técnicos sobre distintas cuestiones militares: – Despliegue de radares. – Dirección de operaciones antisubmarinas, de minas, bombardeos y traslado de tropas.
El resultado se llamó Investigación de Operaciones Militares, y más tarde Investigación Operativa (IO) El MIT contribuyó a su puesta en marcha – El profesor Morse (MIT) fue pionero en los EE.UU. – Fundó el Centro OR del MIT y colaboró en la fundación de ORSA. 3
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
I.
Introducción a la Investigación de Operaciones
¿Qué son las ciencias de la gestión (investigación operativa)? Hoy en día: las ciencias de la gestión y la investigación operativa suponen “el empleo de modelos matemáticos para proporcionar pautas que permitan a los gestores tomar decisiones efectivas partiendo de la información de la que disponen, o para hallar el modo de ampliar ésta, en caso de que sea insuficiente para llegar a la decisión adecuada.” Comparar con: ciencias de la decisión, análisis de sistemas, investigación operativa, dinámica de sistemas, análisis operacional, sistemas de ingeniería, ingeniería de sistemas y otros conceptos.
4
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
I.
Introducción a la Investigación de Operaciones
La investigación operativa en la historia 1947 – Proyecto Scoop (Scientific Computation of Optimum Programs), en el que George Dantzig y otros científicos desarrollan el método simplex de programación lineal. Década de 1950 – Años muy interesantes: progresos matemáticos, teoría de colas, programación matemática. Comparar con: Inteligencia artificial (I.A.) en los 60. Década de 1960 – Crece el interés: más progreso, grandes proyectos. Comparar con: Inteligencia artificial en los 80.
5
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
I.
Introducción a la Investigación de Operaciones
Década de 1970 – Época de desilusión y estancamiento. NPcompleto. Expectativas más realistas. Década de 1980 – Gran expansión del uso de computadores personales. Acceso cada vez más fácil a datos. Se extiende la disposición de los directivos al empleo de modelos. Década de 1990 – Uso creciente de sistemas de I.O. Nuevos avances de la tecnología de I.O; p.ej: ampliaciones de optimización y simulación a hojas de cálculo, lenguajes de modelación, optimización a gran escala. Mayor interconexión entre la I.A. y la I.O 6
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
I.
Introducción a la Investigación de Operaciones
La investigación operativa en el año 2000 CIENTOS de oportunidades para el campo de la I.O. Datos, datos y más datos – Datos de e-business (click stream, compras, otros datos de transacciones, correo electrónico, etc.) – El proyecto del genoma humano y su desarrollo Mayor automatización en la toma de decisiones Necesidad de mayor coordinación para la utilización de recursos (gestión de la cadena de suministro)
7
Introducción a la Investigación de Operaciones
Definición
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
I.
Aplicación del método científico por un grupo multidisciplinario personas a la resolución de un problema. Objetivo El principal objetivo de esta área de conocimientos consiste en formular y resolver diversos problemas orientados a la toma de decisiones, mediante métodos científicos, que optimizan el funcionamiento del proceso analizado, generalmente bajo condiciones que implican la utilización de recursos escasos.
8
Introducción a la Investigación de Operaciones
Naturaleza La naturaleza de los problemas abordados pueden ser: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
I.
Métodos
determinísticos: Programación lineal, programación entera, transporte, teoría de la localización o redes, programación multicriterio, teoría de inventarios, etc. (Modelos de Prog. Matemática)
Métodos probabilísticos: Cadenas de markov, teoría de juegos,
líneas de espera, teoría de inventarios, etc. Métodos
híbridos: probabilísticos.
Conjugan
métodos
determinísticos
y
Métodos heurísticos: soluciones basadas en la experiencia. 9
Introducción a la Investigación de Operaciones
Gran cantidad de problemas reales cada más complejos y especializados requieren de: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
I.
Uso
de metodologías para matemática de estos problemas.
la
formulación
Métodos y herramientas de resolución, como los
que provee la Investigación de Operaciones.
10
Introducción a la Investigación de Operaciones
I.1.1 Formulación del Problema 1. Definir el Problema – – Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
I.
2.
Observar el Sistema – –
3.
7.
Estimar el Grado de Acercamiento del Modelo a la Realidad
Seleccionar la Alternativa Adecuada –
6.
Representación Idealizada del Problema
Verificar el Modelo y usar el Modelo para Predicciones –
5.
Reunir Datos Estimar Valores de Parametros
Formular el Modelo Matemático para el Problema –
4.
Definir el Problema Especificación de Objetivos
Escoger el modelo que mejor se adapta a los objetivos
Presentar los Resultados y Conclusiones del Estudio a la Organización Implantar y Evaluar las Recomendaciones
11
Introducción a la Investigación de Operaciones
Formular el Problema Observar el Sistema Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
I.
Formular el Modelo Matemático Verificar el Modelo y usar para predicciones Seleccionar la Alternativa Presentar Resultados y Conclusiones Implantar y Evaluar Recomendaciones 12
Introducción a la Investigación de Operaciones
I.2 Elementos de un modelo de optimización. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
I.
Supongamos que se dispone de determinadas piezas para la elaboración de dos productos finales. Se dispone de 8 “piezas pequeñas” y 6 “piezas grandes”, que son utilizadas para elaborar sillas (usando 2 piezas pequeñas y 1 pieza grande) y mesas (usando 2 piezas de cada tipo). Interesa decidir cuántas sillas y mesas fabricar de modo de obtener la máxima utilidad, dado un beneficio neto de U$ 15 por cada silla y de U$20 por cada mesa fabricada.
13
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
I.
Introducción a la Investigación de Operaciones
Posibles soluciones factibles a considerar, esto es soluciones que respetan las restricciones del número de piezas disponibles, son por ejemplo, fabricar: • 4 sillas, que reportan una utilidad de U$60
• 1 sillas y 2 mesas , utilidad de U$55 • 3 mesas, utilidad de U$60 • 1 mesa y tres sillas, utilidad de U$65 • 2 sillas y 2 mesas, utilidad de U$70
• etc.
14
Introducción a la Investigación de Operaciones
Componentes de un modelo matemático: i) Las variables de decisión, que consiste en definir cuáles son las decisiones que se debe tomar. En el ejemplo, x: número de sillas elaboradas. y: número de mesas elaboradas. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
I.
¿Qué puedes decidir? Ej: cuanto producir; cuanto invertir, y en qué, son variables de decisión
ii) La función objetivo del problema, que permita tener el mejor criterio para decidir entre todas las soluciones factibles. En el ejemplo, maximizar la utilidad dada por: z = f(x,y) = 15x + 20y
¿Qué quiere decir “mejor”? Ej: maximizar beneficio, minimizar coste, … son objetivos
15
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
I.
Introducción a la Investigación de Operaciones
iii) Restricciones del problema, que consiste en definir un conjunto de ecuaciones e inecuaciones que restringen los valores de las variables de decisión a aquellos considerados como factibles. En el ejemplo, respetar la disponibilidad de piezas para la fabricación de sillas y mesas: Piezas pequeñas: 2x + 2y 8 Piezas grandes : x + 2y 6 También se impone restricciones de no – negatividad: x,y 0
¿Qué restricciones limitan las decisiones? Ej: no exceder presupuesto, no usar más piezas que las disponibles, etc.… son restricciones
iv) Resolución del Modelo y Análisis de la Solución
16
Introducción a la Investigación de Operaciones
En resumen: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
I.
Max sa:
15x + 20y 2x + 2y 8 x + 2y 6 x,y 0
El ejemplo corresponde a un modelo de Programación Lineal. Si además restringimos los valores de x e y a números enteros, tendríamos un modelo de Programación Entera. Por otra parte, si hubiese retornos crecientes a escala, deberíamos emplear una función objetivo no lineal como f(x,y) = cxa + dyb con a,b >1, y tendríamos un modelo de Programación No Lineal.
17
Introducción a la Investigación de Operaciones
BIBLIOGRÁFIA EN INVESTIGACIÓN DE OPERACIONES
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
I.
1. Introducción a la Investigación de Operaciones, F.S. Hillier y G.J. Lieberman, McGraw Hill, Sexta Edición, 1997. 2. Investigación de Operaciones, una introducción, H.A. Taha, Prentice Hall, México, Sexta Edición, 1998. 3. Introduction to Management Science, F. Hillier, M. Hillier and G.J. Lieberman. Irwin McGraw-Hill, 1999. 4. Model Operations Research: A practical Introduction. M.W. Carter and C.C.Price. CRC Press, 2000. 5. Practical Management Science: Spreadsheet Modeling and Applications, Winston, W.L., Albright S.C. y Broadie M., International Thomson Publishing Company, 1997.
18
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
Temario: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
II.1. Introducción II.2. Definiciones II.3. Suposiciones de la PL II.4. Ejemplos de modelamiento. II.5. Resolución gráfica de problemas. II.6. Análisis de Sensibilidad. II.7. El Método Simplex. II.8. Dualidad en Programación Lineal. II.9. Análisis de Sensibilidad o Post-Optimal 20
II.1 INTRODUCCIÓN La programación lineal es un caso especial de la programación Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
matemática, en donde todas las funciones que participan en el modelo son lineales. Utilización:
Planificación Gestión de recursos humanos y materiales Transporte Planificación financiera Organización de la producción. Una extensa gama de problemas que aparecen en las áreas de tipo industrial, económico, administrativo, militar, etc.
21
II.2 DEFINICIONES Función Lineal.- una función f(x1, x2, x3,…. xn) es una función Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
lineal de x1, x2, x3,…. xn, si y solo si para algún conjunto de constantes c1, c2, c3,…. cn, existe una función f(x1, x2, x3,…. xn) = c1 x1+ c2 x2, c3 x3,…. cn xn Desigualdad Lineal.- una desigualdad f(x1, x2, x3,…. xn)≥ b ó
f(x1, x2, x3,…. xn)≤ b es lineal, si y solo si la función f(x1, x2, x3,…. xn) es lineal y b es cualquier número real. Un problema de Programación Lineal.- es un problema de
optimización, para el cual: Se busca maximizar o minimizar una función lineal de variables de
decisión. Los valores de las variables de decisión satisfacen un conjunto de restricciones. Cada restricción es una ecuación o una desigualdad lineal.
22
La Región Factible y la Solución Óptima:
• Región Factible.- Es el conjunto de todos los puntos que satisfacen todas las restricciones del problema de PL. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
• Solución Óptima.- Para un problema de maximización en PL la solución óptima es el punto o conjunto de puntos de la región factible con mayor valor de la función objetivo. Para un problema de minimización en PL la solución óptima es el punto o conjunto de puntos de la región factible con menor valor de la función objetivo.
23
Suposiciones de Proporcionalidad y Aditividad.-
El hecho de que la función objetivo de un problema de PL tiene Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
que ser una función lineal de las variables de decisión, tiene dos implicaciones: La contribución de cada variable de decisión a la función objetivo es
proporcional al valor de la variable de decisión. La contribución a la función objetivo por parte de cualquier variable de decisión es independiente de los valores de las otras variables de decisión.
El hecho de que cada restricción de un problema de PL tiene
que ser una desigualdad o igualdad lineal de las variables de decisión, tiene también dos implicaciones: La contribución de cada variable al lado izquierdo de cada
restricción es proporcional al valor de la variable de decisión. La contribución de cada variable al lado izquierdo de cada restricción independiente de los valores de las otras variables de decisión. 24
• Suposición de Divisibilidad.-
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
– La suposición de divisibilidad requiere que cada variable de decisión pueda tomar valores fraccionarios. – En muchas situaciones donde no se presenta la divisibilidad, redondear cada variable de la solución óptima del problema de PL a un valor entero, puede proporcionar una solución razonable más no necesariamente óptima.
• Suposición de Certidumbre.– La suposición de certidumbre significa que tiene que conocerse con certidumbre cada parámetro (coeficiente de la función objetivo, coeficientes de las variables de las restricciones, lado izquierdo de las restricciones).
25
II.4 Ejemplos de modelamiento. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
i) Problema de Transporte. El problema consiste en decidir cuántas unidades trasladar desde ciertos puntos de origen (plantas, ciudades, etc.) a ciertos puntos de destino (centros de distribución, ciudades, etc..) de modo de minimizar los costos de transporte, dada la oferta y demanda en dichos puntos. Se suponen conocidos los costos unitarios de transporte, los requerimientos de demanda y la oferta disponible. 26
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Por ejemplo, suponga que una empresa posee dos plantas que elaboran un determinado producto en cantidades de 250 y 400 unidades diarias, respectivamente. Dichas unidades deben ser trasladadas a tres centros de distribución con demandas diarias de 200, 200 y 250 unidades, respectivamente. Los costos de transporte (en $/unidad) son:
C.Dist. 1 C.Dist.2 C.Dist.3 Planta 1
21
25
15
Planta 2
28
13
19
27
Diagrama:
C.D.1
X11 Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Planta 1 X12 X21
X22
C.D.2
Planta 2 X13 X23
C.D.3
Orígenes
Destinos
28
Variables de decisión: xij = Unidades transportadas desde la planta i (i=1,2), hasta el centro de distribución j (j=1,2,3) Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Función Objetivo: Minimizar el costo total de transporte dado por la función: 21x11+25x12+15x13+28x21+13x22+19x23 Restricciones del problema: 1) No Negatividad:
xij 0
2) Demanda: CD1 : x11 +x21 CD2 : x12 +x22 CD3 : x13 + x23
= 200 = 200 = 250 29
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
3) Oferta : P1 : x11 + x12 + x13 250 P2 : x21 + x22 + x23 400 Las variables de decisión deben aceptar soluciones como números reales para tener un modelo de P.L.
30
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
ii) Problema de la dieta: este consiste en determinar una dieta de manera eficiente, a partir de un conjunto dado de alimentos, de modo de satisfacer ciertos requerimientos nutricionales. Supongamos que se tiene la siguiente información:
Leche Legumbre Naranjas Requerimientos (galon) (1 porción) (unidad) Nutricionales Niacina
3,2
4,9
0,8
13
Tianina
1,12
1,3
0,19
15
Vitamina C
32
0
93
45
Costo
2
0,2
0,25
31
Variables de decisión: x1 : galones de leche utilizados en la dieta. x2 : porciones de legumbre utilizadas en la dieta. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
x3 : unidades de naranja utilizadas en la dieta. Función Objetivo: Minimizar el costo total de la dieta, dado por: 2 x1 + 0.2 x2 + 0.25 x3 Restricciones del problema: Requerimientos mínimos de los nutrientes considerados: 3.2 x1 + 4.9 x2 + 0.8 x3 13 1.12 x1+ 1.3 x2 + 0.19 x3 15
32 x1+
+
9 x3 45
x1 0 ; x2 0 ; x3 0 32
iii) Problema de dimensionamiento de lotes: Este consiste en hallar una política óptima de producción para satisfacer demandas fluctuantes en el tiempo, de modo de minimizar costos de producción e inventario, considerando la disponibilidad de diversos recursos escasos. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Supongamos que una fabrica puede elaborar hasta 150 unidades en cada uno de los 4 periodos en que se ha subdividido el horizonte de planificación y se tiene adicionalmente la siguiente información: Periodos Demandas Costo Prod. Costo de Inventario (unidades) (US$/unidad) (US$/unidad) 1
130
6
2
2
80
4
1
3
125
8
2.5
4
195
9
3
Supuestos adicionales: 1) Existe un inventario inicial de 15 unidades. 2) No se acepta demanda pendiente o faltante (es decir, se debe satisfacer toda la demanda del periodo). 33
Variables de decisión:
xt : número de unidades elaboradas en el periodo t. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
It : número de unidades de inventario al final del periodo t. Función objetivo:
Consiste en minimizar los costos de producción y el costo de mantenimiento de inventario. 6x1+ 4x2 + 8x3 + 9x4 + 2I1 + I2 + 2.5I3 + 3I4 Notar que en el óptimo I4 va a ser 0, así que incluso podríamos no incluirla, pero de todos modos la consideramos.
34
Restricciones del problema: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
1) Restricciones de cotas, que reflejan la capacidad de producción. xt 150 t Período 2) Restricciones de no negatividad xt 0
t Período
3) Restricciones de demanda x1 + I0 – I1 = 130
Periodo 1
x2 + I1 – I2 = 80
Periodo 2
x3 + I2 – I3 = 125
Periodo 3
x4 + I3 – I4 = 195
Periodo 4
I0=15
35
II. Modelos de Programación Matemática Programación Lineal
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
iv) Problema de planificación financiera: Supongamos que un banco dispone de $250 millones para destinar a 4 tipo de créditos ofrecidos, los cuales tienen las siguientes, tasas de crédito: • Primer crédito corriente (PCC) :12% • Segundo crédito corriente (SCC) :16% • Crédito para el hogar :16% • Crédito personal :10% La asignación de estos créditos, debe satisfacer la siguiente política utilizada por la institución: El monto asignado a los PCC, debe ser al menos, el 55% del monto asignado a los créditos corrientes, y al menos un 25% del total del dinero prestado. El SCC, no puede exceder el 30% del total del dinero prestado, por políticas tributarias el interés recibido por el banco no debe exceder a un retorno del 14% sobre el capital prestado. ¿Cuánto asignar a cada tipo de crédito, de la manera más eficiente, respetando la política del banco? 36
Variables de decisión: x1 :Monto asignado al PCC.
x2 : Monto asignado SCC.
x3 : Monto asignado al crédito para el hogar. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
x4 : Monto asignado al crédito personal. Función Objetivo: Se propone maximizar los retornos recibidos en la asignación, dados por: 0.12 x1 + 0.16 x2 + 0.16 x3 + 0.10 x4 Restricciones del problema: x1 0.55 ( x1 + x2 )
x1 0.25 ( x1 + x2 +x3 + x4 ) x2 0.30 ( x1 + x2 +x3 + x4 ) (0.12x1+0.16x2+0.16x3+0.10x4 ) 0.14 ( x1+ x2 +x3 +x4 ) Adicionalmente:
x1 + x2 +x3 + x4 250 37
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
v) Problema de mezcla de productos: en este problema una refinería produce 4 tipos de gasolina (gas 1, gas 2, gas 3 y gas 4). Dos características importantes de cada gasolina son su número de performance (NP) y su presión de vapor (RVP), que están dados por: NP
RVP
Barriles diarios
gas 1
107
5
3814
gas 2
93
8
2666
gas 3
87
4
4016
gas 4
108
21
1300
38
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Estas gasolinas pueden ser vendidas directamente a un precio de $24,83 por barril o bien mezcladas para obtener gasolinas de aviación (avgas A y avgas B). La calidad de estas dos últimas junto con sus precios de venta son:
NP
RV
Precio por barril (US$)
avgas A Al menos 100 A lo más 7
26,45
Avgas B
25,91
Al menos 91
A lo más 6
El NP y RVP de cada mezcla es un promedio de los respectivos NP y RVP de las gasolinas empleadas. Se desea obtener un plan de venta de las distintas gasolinas que maximice los retornos.
39
Variables de decisión: xj : cant. de barriles del gas j que son vendidos sin mezclar, con j = 1, 2, 3, 4. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
xA : cant. de barriles de avgas A.
xB : cant. de barriles de avgas B.
xjA: cant. de gas j usado en avgas A. xjB: cantidad de gas j usado en avgas B.
Función objetivo: Max 24,83 (x1 + x2 + x3 + x4) + 26,45xA + 25,91xB Restricciones: x1 + x1A + x1B = 3814 x2 + x2A + x2B = 2666 x3 + x3A + x3B = 4016 x4 + x4A + x4B = 1300
x1A + x2A + x3A + x4A = xA x1B + x2B + x3B + x4B = xB
40
NP, avgas A:
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
NP, avgas B:
107 x1A 93 x 2 A 87 x 3 A 108 x 4 A 100 xA 107 x1B 93 x 2B 87 x 3B 108 x 4B 91 xB
RVP, avgas A:
5x1A 8x 2 A 4 x 3 A 21x 4 A 7 xA RVP, avgas B:
5 x1B 8 x 2 B 4 x 3 B 21x4 B 6 xB 41
vi) Problema de expansión de la capacidad de un Sistema de Potencia Eléctrica:
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
En este problema se desea planificar la expansión de la capacidad de un sistema eléctrico para los siguientes T años. La demanda (estimada) para el año t corresponde a dt MW para t = 1, 2, ..., T. La capacidad existente del sistema corresponde a ct MW para el año t = 1, 2, ..., T.
Existen 2 alternativas para la expansión de la capacidad del sistema: 1) Usar plantas térmicas a petróleo; 2) Usar plantas térmicas a gas. Se requiere una inversión pt por MW instalado de una planta a petróleo que esté operativa al comienzo del año t, y el correspondiente costo para una planta a gas es gt. Por razones políticas y de seguridad, se ha decidido que no más del 30% de la capacidad instalada, corresponda a plantas a gas (nuevas).
Cada planta a petróleo tiene una vida de 20 años y una planta a gas una vida de 15 años. Se desea proponer un plan de expansión al mínimo costo posible. 42
Variables de decisión: xt : cantidad de MW expandidos en planta a petróleo al inicio del año t, con t = 1, 2, ..., T. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
yt : cantidad de MW expandidos en planta a gas al inicio del año t, con t = 1, 2, ..., T. zt : cantidad total de MW disponible en plantas nuevas a petróleo al inicio del año t. wt : cantidad total de MW disponible en plantas nuevas a gas al inicio del año t.
43
II. Modelos de Programación Matemática Programación Lineal
pt x t gt yt
Min
t 1
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
T
t
c t z t w t dt t
z t xk
t 20
k 1
zt
t
x
k t 19
k
t 20
w t yk
t 15
k 1
wt
t
y
k t 14
k
t 15
wt 0,30 ct zt w t
t 1... T
x t , yt , z t , w t 0
44
vii) Problema de Establecimiento del Horario de Trabajo:
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Una oficina de correos necesita de un número diferente de empleados de tiempo completo, para diferentes días de la semana. El número de empleados de tiempo completo requeridos para cada día se da en la taba siguiente: DIA
No. EMP. NECESARIO Lunes 17 Jueves 19 Domingo 11
DIA
No. EMP. NECESARIO Martes 13 Viernes 14
DIA
No. EMP. NECESARIO Miércoles 15 Sábado 16
Las reglas sindicales señalan que cada empleado debe trabajar por 5 días consecutivos y después descansar 2 días. La oficina de correos quiere cumplir con sus requerimientos diarios y utilizar solamente empleados de tiempo completo. Formule un PL para minimizar los empleados de tiempo completo
45
Variables de Decisión: xi : número de empleados que empieza a trabajar el día i Función Objetivo: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Restricciones:
Min z= x1 + x2 + x3 + x4 + x5 + x6 + x7
x1
+ x4 + x5 + x6 + x7
≥ 17
+ x5 + x6 + x7
≥ 13
+ x6 + x7
≥ 15
x1 + x2 x1 + x2 + x3
x1 + x2 + x3 + x4
+ x7
x1 + x2 + x3 + x4 + x5 x2 + x3 + x4 + x5 + x6
x3 + x4 + x5 + x6 + x7
≥ 19 ≥ 14 ≥ 16
≥ 11
xi ≥ 0 (i=1,2,3,…7)
46
PROBLEMAS PROPUESTOS:
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
1.- Supóngase que la oficina de correos puede obligar a trabajar un día extra a la semana. Por ejemplo un empleado que ha trabajado de lunes a viernes, tendría que trabajar el sábado. Se paga al empleado 50 dólares diarios por los 5 primeros días y 62 dólares por el día extra (en caso de haber trabajado). Formule un PL cuya solución permita a la oficina de correos minimizar el costo para cumplir con sus necesidades laborales semanales.
2.-Supóngase que la oficina de correos tiene una planta de 25 empleados a tiempo completo y no se le permite ni contratar ni despedir empleados. Formular un PL para programar el horario de los empleados a fin de maximizar el número de fines de semana libres recibidos por los empleados.
47
PROBLEMAS PROPUESTOS:
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
3.- Los empleados del Departamento de Policía trabajan dos turnos de 6 horas diarias, escogidos entre los siguientes 4 turnos posibles: 1) de 0h a 6 h, 2) de 6h a 12h, 3) de 12 a 18h, 4) de 18 a 24h. Se necesita el siguiente número de policías por cada turno: 1) 15, 2) 5, 3) 12 y 4) 6. A los policías que tienen turno consecutivos se les paga 12 dólares la hora y a los policías que no tienen turnos consecutivos se le para 18 dólares la hora. Formule un PL para minimizar los costos y cubrir la demanda diaria de fuerza laboral del Departamento de Policía
48
II.5. Resolución gráfica de problemas. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Consideremos el siguiente problema a resolver gráficamente: Max sa:
z = 3x1 + 5x2 x1 2x2 3x1 + 2x2 x1 , x2 0
4 12 18
49
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Región de puntos factibles
x2
Función Objetivo
9
6 4 2
4
6
x1 50
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Región de puntos factibles
x2
Función Objetivo
9
6 4 2
4
6
x1 51
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Región de puntos factibles
x2
Función Objetivo
9
x*
Solución Optima
6 4 2
4
6 52
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Región de puntos factibles
x2
Función Objetivo
9
x*
Solución Optima
6 4 2
4
6 53
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Región de puntos factibles
x2
Función Objetivo
9
x*
Solución Optima
6 4 2
4
6 54
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Región de puntos factibles
x2
Función Objetivo
9
x* 6
Solución Optima
x*
4 2
4
6 55
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
En primer lugar, se debe obtener la región de puntos factibles en el plano, obtenida por medio de la intersección de todos los semi-espacios que determinan cada una de las inecuaciones presentes en las restricciones del problema. A continuación, con el desplazamiento de las curvas de nivel de la función objetivo en la dirección de crecimiento de la función (que corresponde a la dirección del vector gradiente de la función, z(x1,x2) = (3,5)T, se obtiene la solución óptima del problema en la intersección de las rectas: 2x2 = 12 y 3x1+2x2 = 18 (restricciones activas). Esto es:
x1 * = 2
x2 * = 6
z* = 3 x1* + 5 x2* = 36
56
II. Modelos de Programación Matemática Programación Lineal Los ejercicios anteriores plantean un PROBLEMA DE DECISIÓN
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
Algunas reflexiones
Hemos tomado una situación real y hemos construido sus equivalentes matemáticos: MODELO MATEMÁTICO Durante la formulación de los modelos matemáticos, hemos considerado el método cuantitativo que nos permitirá resolver el modelo numéricamente ALGORITMO El algoritmo es un conjunto de instrucciones que siguiendo de manera ordenada producen una solución numérica
NUEVA DEFINICION Ciencia para la representación de problemas reales mediante modelos matemáticos que junto con métodos cuantitativos nos permiten obtener una solución numérica a los mismos. 57
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Notar que se pueden dar otras situaciones en la búsqueda de una solución óptima para esta clase de problemas: 1) La solución óptima exista pero haya más de una. En el ejemplo, considerese la nueva función objetivo: z = 6x1+4x2. 2) El problema no tenga solución, dada una región de puntos factibles no - acotada. En el ejemplo, reemplace cada desigualdad por una . 3) El problema no tenga solución, porque no existen puntos factibles. En el ejemplo, suponga que agregamos la restricción: x1 5.
58
II.3. Análisis de sensibilidad. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Consideremos otro ejemplo: max z= 15x + 20 y s.a. 2x+2y≤8 x+2y ≤6 x,y≥0
59
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Max sa :
15 x 20 y 2x 2 y 8
x 2y 6 x, y 0
4 3
2
4
6 60
A partir de la resolución gráfica del problema se tiene: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Solución óptima : x1*= 2 ; x2*= 2 Valor óptimo :
z = z(2,2) = 70
El análisis de sensibilidad permite responder, entre otras, las siguientes preguntas: 1) ¿Cuál es el intervalo de variación de algún coeficiente de la función objetivo, de modo que la actual solución siga siendo la óptima?
61
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Max sa :
15 x 20 y 2x 2 y 8
x 2y 6 x, y 0
4
3 2
4
6 62
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Max sa :
15 x 20 y 2x 2 y 8
x 2y 6 x, y 0
4
3
4
6 63
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Max sa :
15 x 20 y 2x 2 y 8
x 2y 6 x, y 0
4
3
4
6 64
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Max sa :
15 x 20 y 2x 2 y 8
x 2y 6 x, y 0
4
3
4
6 65
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Max sa :
15 x 20 y 2x 2 y 8
x 2y 6 x, y 0
4
3
4
6 66
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Max sa :
15 x 20 y 2x 2 y 8
x 2y 6 x, y 0
4
3
4
6 67
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Max sa :
15 x 20 y 2x 2 y 8
x 2y 6 x, y 0
4
3
4
6 68
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Max sa :
15 x 20 y 2x 2 y 8
x 2y 6 x, y 0
4
3
4
6 69
Sea Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
z = c1x1+c2x2
La solución óptima de la nueva función, seguirá siendo: x1*= 2 ; x2*= 2 sí:
c1 1 1 c2 2
70
También podemos estudiar el intervalo de un sólo coeficiente, dejando el resto de los parámetros fijos: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Para C1:
c1 1 1 20 2
10 c1 20
Para C2:
15 1 1 c2 2
15 c2 30
71
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
2) ¿Cuál es el intervalo de variación de los coeficientes del lado derecho (términos libres) de las restricciones, de modo que la actual solución siga siendo la óptima? Estudiaremos por separado las variaciones de cada uno de los coeficientes del lado derecho de las restricciones, de modo preservar la geometría del problema, esto es, que se conserven las mismas restricciones activas de la solución óptima inicial.
72
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Max sa :
15 x 20 y 2x 2 y 8
x 2y 6 x, y 0
4 3 2
2
4
6
8 73
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Max sa :
15 x 20 y 2x 2 y 8
x 2y 6 x, y 0
4 3 2
2
4
6
8 74
Primera restricción. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
La mayor variación del coeficiente del lado derecho se alcanza en x=0 y y=4, de donde se obtiene: z(0,4) = 15 · 0 + 20 · 4 = 80 y b1* = 0 + 2 · 4 = 8 La menor variación del coeficiente del lado derecho se alcanza en: x=4 ; y=0, de donde se obtiene:
z(4,0) = 15 · 4 + 20 · 0 = 60 y b1 = 4 + 2 · 0 = 4 De aquí, se calcula el precio sombra P1, que indica la razón o tasa de cambio de la función objetivo con respecto al cambio en una unidad del lado derecho: P1
z(0,4) z(4,0) 80 60 5 b1* b1 84
75
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Max sa :
15 x 20 y 2x 2 y 8
x 2y 6 x, y 0
4
3
4
6 76
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Max sa :
15 x 20 y 2x 2 y 8
x 2y 6 x, y 0
4
3
4
6 77
Segunda restricción. La mayor variación del coeficiente del lado derecho se alcanza en x=6 y y=0, de donde se obtiene: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
z(0,4) = 15 x 6 + 20 x 0 = 90 y b1*= 2 x 6 + 2x0 = 12 La menor variación del coeficiente del lado derecho se alcanza en: x=0 ; y= 3, de donde se obtiene: z(4,0) = 15 x 0 + 20 x 3 = 60 y b1= 2 x 0 + 2 x 3 = 6 De aquí, se calcula el precio sombra P2, que indica la razón o tasa de cambio de la función objetivo con respecto al cambio en una unidad del lado derecho: z(6,0) z(0,3) 90 60 P2 5 * b2 b2 12 6
78
Ejemplo 2
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Una fábrica produce 2 tipos de juguetes de madera: soldados y trenes se vende un soldado en 27 dólares y se usan 10 dólares de materia prima y 14 dólares en mano de obra. Se vende un tren en 21 dólares y se usan 9 de materia prima y 10 dólares en mano de obra. La producción de soldados y trenes necesita de 2 tipos de trabajo especializado: carpintería y acabado. Un soldado requiere de 1 hora de carpintería y 2 de acabado. Un tren requiere de 1 hora de carpintería y una de acabado. La empresa dispone de 80 horas de carpintería y 100 de acabado y puede conseguir toda la materia prima necesaria. La demanda de trenes no tiene límite pero no se pueden vender mas de 40 soldados a la semana. Formule un PL para maximizar la ganancia semanal.
79
x número de trenes y número de soldados Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
max z = 3x + 2y s.a. 2x+y ≤100 x +y ≤80 x ≤40 x,y≥0
ganancia restricción de acabado restricción de carpintería restricción de demanda de soldados
80
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
max z= 3x + 2y s.a. 2x+y ≤100 x+y ≤80 x ≤40 x, y ≥ 0
81
solución
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
x=20 y=60
82
A partir de la resolución gráfica del problema se tiene: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Solución óptima : x*= 20 ; y*= 60 Valor óptimo :
z = z(20,60) = 180
El análisis de sensibilidad permite responder, entre otras, las siguientes preguntas: 1) ¿Cuál es el intervalo de variación de algún coeficiente de la función objetivo, de modo que la actual solución siga siendo la óptima?
83
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones II. Modelos de Programación Matemática Programación Lineal
84
Sea Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
z = c1x1+c2x2
La solución óptima de la nueva función, seguirá siendo: x*= 20 ; y*= 60 sí: c1 2 1 c2
85
También podemos estudiar el intervalo de un sólo coeficiente, dejando el resto de los parámetros fijos: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Para C1:
c1 2 1 2
2 c1 4
3 2 1 c2
3 c2 3 2
Para C2:
86
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
2) ¿Cuál es el intervalo de variación de los coeficientes del lado derecho (términos libres) de las restricciones, de modo que la actual solución siga siendo la óptima? Estudiaremos por separado las variaciones de cada uno de los coeficientes del lado derecho de las restricciones, de modo preservar la geometría del problema, esto es, que se conserven las mismas restricciones activas de la solución óptima inicial.
87
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
max z= 3x + 2y s.a. 2x+y ≤100 x+y ≤80 x ≤40 x, y ≥ 0
88
Primera restricción. La mayor variación del coeficiente del lado derecho se alcanza en x=60 y y =0, de donde se obtiene: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
z(60,0) = 3 · 60 + 2 · 0 = 180 y b1* = 2 · 60 + 1 · 0 = 120 La menor variación del coeficiente del lado derecho se alcanza en: x= 4 ; x2 = 0, de donde se obtiene: z(40,0) = 3 · 40 + 2 · 0 = 120 y b1 = 2 · 40 + 1 · 0 = 80 Obsérvese que, aunque para 80≤b1≤120 la base actual es óptima los valores de las variables de decisión y de la función objetivo cambian. Por ejemplo si 80≤b1≤100 la solución óptima cambiará del punto B a algún otro punto en el segmento AB. Similarmente si 100≤b1≤120 la solución óptima cambiará del punto B a algún otro punto en el segmento AD.
89
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Para ilustrar la idea, sea b1 el número de horas de acabado disponibles. Si cambiamos b1 a 100+Δ sabemos que la base será óptima para -20≤Δ ≤20 la solución para el PL será todavía e punto en el que las restricciones de acabado y carpintería son obligatorias. Por lo tanto si cambiamos b1 = 100+Δ se puede encontrar los nuevos valores de las variables al resolver 2x + y = 100 + Δ
y
x + y =80
Esto produce que x=20+Δ, y y=60-Δ lo que significa que si aumentamos el número de horas de acabado da como resultado un aumento de número de soldados producidos y una disminución de trenes producidos.
90
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal De aquí, se calcula el precio sombra P1, que indica la razón o tasa de cambio de la función objetivo con respecto al cambio en una unidad del lado derecho:
z(60,0) z(40,0) 180 120 P1 1.5 * b 1 b1 120 80
91
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
max z= 3x + 2y s.a. 2x+y ≤100 x+y ≤80 x ≤40 x, y ≥ 0
92
Segunda restricción. La mayor variación del coeficiente del lado derecho se alcanza en x=0 y y=100, de donde se obtiene: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
z(0,100) = 3·0 + 2·100 = 200 y b2*= 1·0 + 1·100 = 100 La menor variación del coeficiente del lado derecho se alcanza en: x=0 ; y=60, de donde se obtiene: z(0,60) = 3·0 + 2·60 = 120 y b2= 1·0 + 1·60 = 60 Obsérvese que, aunque para 60≤b2≤80 la base actual es óptima los valores de las variables de decisión y de la función objetivo cambian. Por ejemplo si 60≤b2≤80 la solución óptima cambiará del punto B a algún otro punto en el segmento BF. Similarmente si 80≤b1≤100 la solución óptima cambiará del punto B a algún otro punto en el segmento AC.
93
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Ahora, sea b2 el número de horas de carpintería disponibles. Si cambiamos b2 a 80+Δ sabemos que la base será óptima para -20≤Δ ≤20 la solución para el PL será todavía e punto en el que las restricciones de acabado y carpintería son obligatorias. Por lo tanto si cambiamos b2 = 80+Δ se puede encontrar los nuevos valores de las variables al resolver 2x + y = 100
y
x + y =80 + Δ
Esto produce que x=20-Δ, y y=60+2Δ lo que significa que si aumentamos el número de horas de carpintería da como resultado una disminución del número de soldados producidos y un disminución de trenes producidos.
94
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
De aquí, se calcula el precio sombra P2, que indica la razón o tasa de cambio de la función objetivo con respecto al cambio en una unidad del lado derecho: z(0,100) z(0,60) 200 120 P2 2 * b2 b2 100 60
95
Supongamos que cambiamos b3 = 40+Δ se puede encontrar los nuevos valores de las variables al resolver Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
2x + y = 100
y
x + y =80
Esto produce que la solución original x=20, y y=60. Entonces se puede demostrar que la base actual es óptima para un Δ ≥ -20, lo que significa que si se cambia el lado derecho de esta restricción en el intervalo en la cual la base es óptima, la solución del PL no cambia.
96
II.4. El Método Simplex. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Un PL puede tener restricciones en forma de igualdad o de desigualdad. También pueden tener variables que tienen que ser no negativas o no tener restricción de signo. Para usar el Algoritmo Simplex hay que transformar el PL en un problema equivalente, en el cual: Todas las restricciones son ecuaciones Todas las variables son no negativas
Un PL que se encuentra en esta forma está en su forma ESTANDAR. 97
Ejemplo 1 de transformación en su forma Estandar Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Una Empresa produce dos tipos de cinturones: El modelo de lujo y el modelo regular. Cada tipo requiere un metro de cuero. El cinturón regular requiere de una hora de trabajo especializado y el de lujo necesita de dos horas. Se dispone semanalmente de 60 horas de mano de obra especializada y 40 metros de cuero. Si cada cinturón regular y cada cinturón de lujo contribuyen a las ganancias con 3 y 4 dólares cada uno; cual es el plan de producción para generar la máxima utilidad?
98
Si definimos: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
X1 = Número de cinturones de lujo producidos X2 = Número de cinturones regulares producidos El modelo sería: Max Z= 4X1+3X2 s.a. X1+ X2 ≤ 40 (Restricción del cuero) 2X1+ X2 ≤ 60 (Restricción de mano de obra) X1, X2 ≥ 0 (Restricción de no negatividad)
99
El modelo en la forma estandar: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Max Z= 4X1+3X2 s.a. X1 + X2 + S1 = 40 2X1+ X2 + S2 = 60 X1, X2, S1 , S2 ≥ 0
(Restricción del cuero) (Restricción de mano de obra) (Restricción de no negatividad)
100
Ejemplo 2 de transformación en su forma Estandar
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Min Z= 50X1+20X2 +30X3 +80X4 s.a. 400X1+ 200X2 + 150X2 + 500X2 ≥ 500 3X1 + 2X2 ≥6 2X1 + 2X2 + 4X3 + 4X4 ≥ 10 2X1 + 4X2 + X3 + 5X4 ≥ 8 X1, X2 , X3 , X4 ≥ 0 En la Forma Estadar: Min Z= 50X1+20X2 +30X3 +80X4 s.a. 400X1+ 200X2 + 150X2 + 500X2 –E1 = 500 3X1 + 2X2 –E2 =6 2X1 + 2X2 + 4X3 + 4X4 –E3 = 10 2X1 + 4X2 + X3 + 5X4 –E4 = 8 X1, X2 , X3 , X4 ,E1 ,E2 ,E3 ,E4 ≥ 0 101
Ejemplo 3 de transformación en su forma Estandar Max Z= 20X1+15X2 s.a. X1 Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
≤ 100 X2 ≤ 100 50X1 + 35X2 ≤ 4000 20X1 + 15X2 ≥ 2000 X1, X2 ≥ 0
En la Forma Estadar: Max Z= 20X1+15X2 s.a. X1 +S1 = 100 X2 +S2 = 100 50X1 + 35X2 +S3 = 4000 20X1 + 15X2 –E4 = 2000 X1, X2 ,S1 ,S2 ,S3 ,E4 ≥ 0 102
II.4. El Método Simplex.
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
En lo que sigue consideremos el siguiente programación lineal en su forma estándar: Min c1x1 + c2x2 + ... + cnxn sa a11x1 + a12x2 + ... + a1nxn = b1 a21x1 + a22x2 + ... + a2nxn = b2 ... ... ... am1x1 + am2x2 + ... + amnxn = bm xi 0, i = 1, 2, ..., n Matricialmente escrito como: Min cTx s.a. Ax = b x0
y
problema
mn
103
de
En resumen, es posible reformular de manera equivalente el problema usando las siguientes justificaciones: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
1) Siempre es posible llevar un problema de maximización a uno de minimización. Si f(x) es la función objetivo a maximizar y x* es la solución óptima: f(x*) f(x) , x factible - f(x*) - f(x) ,
x factible
\ x* es también mínimo de - f(x)
104
2) Cada restricción del tipo puede ser llevada a una ecuación de igualdad usando una (nueva) variable de holgura no negativa, con un coeficiente nulo en la función objetivo. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
3) De igual modo, cada restricción del tipo puede ser llevada a una ecuación de igualdad usando una variable de exceso no negativa. 4) Siempre es posible escribir una variable libre de signo como la diferencia de dos variables no negativas.
105
Considérese un sistema Ax = b de m ecuaciones lineales con n variables (supóngase n≥m)
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
DEFINICION: Se obtiene una solución básica de Ax = b, haciendo n-m variables (variables no básicas VNB) iguales a cero y resolviendo el sistema resultante de m variables que quedan (variables básicas VB).
Naturalmente, las selecciones diferentes de variables no básicas VNB llevaran a soluciones básicas diferentes. La búsqueda de la solución óptima se restringe a encontrar un vértice óptimo y cada vértice del conjunto de las restricciones del problema, llamado región de puntos factibles, corresponde a una solución básica factible del sistema Ax = b. Esta solución básica factible, corresponde a su vez a aquellas soluciones que resultan de resolver el sistema para exactamente m variables, fijando las restantes n-m en cero, llamadas respectivamente variables básicas y no-básicas, que además deben satisfacer condiciones de no-negatividad
106
II. Modelos de Programación Matemática
EJEMPLO 1 DE SOLUCION BASICA FACTIBLE: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
Programación Lineal
max Z= 4x1 + 3 x2 s.a. x1 + x2 ≤ 40 2x1 + x2 ≤ 60 x1, x2 ≥ 0
max s.a.
Z= 4x1 + 3 x2 x1 + x2 +s1 2x1 + x2 +s2 x1, x2, s1, s2 ≥ 0
= 40 = 60
Variables
Variables
Solución Básica
Punto
Básicas
No Básicas
Factible
x1,x2
s1,s2
s1=s2= 0
x1= 20
x2= 20
E
x1,s1
x2,s2
x2=s2= 0
x1= 30
s1= 10
C
x1,s2
x2,s1
x2=s1= 0
x1= 40
s2= -20
No es sbf porque s2<0
x2,s1
x1,s2
X1=s2=0
s1= -20
x2= 60
No es sbf porque s1<0
x2,s2
x1,s1
x1=s1= 0
x2= 40
s2= 20
B
s1,s2
x1,x2
x1=x2= 0
s1= 40
s2= 30
F
107
II. Modelos de Programación Matemática
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
Programación Lineal
108
II. Modelos de Programación Matemática
EJEMPLO 2 DE SOLUCION BASICA FACTIBLE: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
Programación Lineal
max Z= x1 + 2 x2 + 2 x3 s.a. 2 x1 + x2 ≤ 8 x3 ≤ 10 x1, x2, x3 ≥ 0 Variables
Solución Básica Factible
Punto
Z
Básicas x1,x3
x1=4
x3=10
x2=s1=s2=0 D
24
s1,s2
s1=8
s2=10
x1=x2=x3=0 F
0
s1,x3
s1=8
x3=10
x1=x2=s2=0 E
20
x2,x3
x2=8
x3=10
x1=s1=s2=0 C
36
x2,s2
x2=8
s2=10
x1=x3=s2=0 B
16
x1,s2
x1=4
s2=10
x2=x3=s1=0 A
4 109
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
110
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Teorema Fundamental de la Programación Lineal: Si un problema tiene solución óptima, tiene una solución básica factible óptima.
111
Dada una matriz B de m x m invertible, esta induce una partición de las variables y parámetros del modelo como se muestra a continuación: n Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
B
D
A=
m
x1 xB x x 2 xn xD
m
nm
c B c c D
m
nm
xB :variables básicas. xD :variables no básicas. m
n-m
B : es llamada una matriz de base
cB :costos básicos. cD :costos no básicos.
112
Supongamos el problema en la forma estandar: Max z= 60 x1 + 30 x2 + Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
s.a:
20 x3 + 0 s1 + 0 s2 + 0s3
8 x1 + 6 x2 + x3 + 4 x1 + 2 x2 + 1.5 x3 2 x1 + 1.5 x2 + 0. 5 x3
s1
=48 + s2 = 20 + s3 = 20
x1, x2, x3, s1, s2, s3≥ 0 Donde la solución es: z= 280 con s1=24 ,x3=8 y x1=2 las variables básicas son: s1,x3,x1 las variables no básicas son: x2,s2,s3 113
Por lo tanto el sistema anterior puede expresarse como:
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Max z= CB xB + CD xD s.a: B xVB + D xD = b xB , xD≥ 0 S1
Es decir: max z= 0
20
60
X3
x2 +
30
0
0
s2
X1 s.a. 1
1
8
S1
0 1.5
4
X3
0 0.5
2
X1
S1 X3 X1
≥
s3
+
6
0
0
x2
2
1
0
s2
1.5
0
1
s3
0
x2
0
s2
0
s3
0 ≥
0 0 114
Multiplicando las restricciones: B xB + D xD = b por B-1: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
B-1 B xB + B-1 D xD = B-1 b o bien: xB + B-1 D xD = B-1 b Donde: 1 B-1= 0 0
2 2 -0.5
-8 -4 1.5
115
Sustituyendo en nuestro ejemplo: s1 Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
x3
+
x1
1
2
-8
6
0
0
x2
0
2
-4
2
1
0
s2
0
-0.5
1.5
1.5
0
1
s3
=
1
2
-8
48
0
2
-4
20
0
-1
1.5
8
O bien: s1 x3 x1
+
-2
2
-8
x2
-2
2
-4
s2
1.25
-0.5
1.5
s3
24 =
8 2
116
Ahora expresemos la función objetivo de la misma manera: Tomemos las restricciones B xB + D xD = b y multipliquemos por el vector CBB-1 Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
CB xB + CB B-1DxD= CBB-1 b z- CB xB - CD xD =0 Sumando las dos últimas relaciones: z+(CB B-1D- CD)xD= CBB-1 b
117
Criterio de Optimalidad: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
c T x cBT x B cDT x D
1
1
c B b B D x B cDT x D T B
1
1
cBT B b cDT cDT B D x B x D valor actual de la función obj.
vector de costos reducidos.
118
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
La ecuación que define cada uno de los costos reducidos es: rj c j cBT B1A j Donde j es el índice de variable no-básica y Aj la respectiva columna en A de esa variable. La actual solución básica factible es óptima ssi rj j, existe una variable no básica xp con costo reducido negativo, que entra a la nueva base.
119
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Para decidir quién deja la base, es necesario calcular el mayor valor que puede tomar la variable entrante que garantiza la factibilidad de la nueva solución básica, con: y1 0 y1 p x y 2 0 B 1A 2 p B 1b j x y m0 mp
y se debe calcular:
yk 0 Min ykp
yi0 / yip 0 xk deja la base yip 120
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal Ejemplo. Resolver el siguiente problema de P.L. Max 40x + 60y sa: 2x + y 70 x + y 40 x + 3y 90 x,y 0
Se deben agregar 3 variables de holgura ( s1 , s2 , s3 var.básicas), y llevar a forma estándar (x1 = x y x2 = y). -40x1 – 60x2
Min sa:
2x1 + x2 + s1 x 1 + x2 x1 + 3x2
= 70 + s2
= 40 + s3 = 90
x1, x2, x3, s1 , s2 , s3 0,
121
Tabla inicial:
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
x1
x2
s1
s2
s3
2
1
1
0
0
70
1
1
0
1
0
40
1
3
0
0
1
90
-40
-60
0
0
0
0
122
Usamos como variable entrante a la base x2 (pues r2<0). Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
x1
x2
s1
s2
s3
2
1
1
0
0
70
1
1
0
1
0
40
1
3
0
0
1
90
-40
-60
0
0
0
0
Se calcula Min { 70/1, 40/1, 90/3 } = 30, por lo tanto sale s3.
123
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Actualizando, queda la siguiente tabla (no óptima), donde la variable entrante a la base es x1 (pues r1<0).
x1
x2
s1
s2
s3
5/3
0
1
0
-1/3
40
2/3
0
0
1
-1/3
10
1/3
1
0
0
1/3
30
-20
0
0
0
20
1800
Se calcula Min { 40/(5/3), 10/(2/3), 30/(1/3) } = 15, por lo tanto s2 deja la base actual. 124
Actualizando, queda la siguiente tabla final: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
x1
x2
s1
s2
s3
0
0
1
-5/2
½
15
1
0
0
-1/3
-½
15
0
1
0
1/3
½
25
0
0
0
20
10
2100
Como todos los costos reducidos son mayores o iguales que cero nos encontramos en la solución óptima.
125
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
x 1 15 x B x 2 25 s1 15
s2 0 xD s3 0
z* = - 40 x 15 - 60 x 25 = - 2100 En la formulación inicial, tenemos como solución óptima x*=15, y *=25, con valor óptimo 2.100.
126
Ejemplo 2 del método Simplex Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Min Z= 2X1 -3X2 s.a. X1 + X2 ≤ 4 X1 - X2 ≤ 6 X1, X2 ≥ 0
127
Método 1 Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
-Z
X1
X2 S1 S2 ld
Variable
Razón
Básica
Min Z= 2X1 - 3X2 s.a. X1 + X2 ≤ 4 X1 - X2 ≤ 6 X1, X2 ≥ 0
1
2
-3
0
0
0 -Z=0
0
1
1
1
0
4 S1=4
(4/1)=4
0
1
-1
0
1
6 S2=6
Ninguna
-Z
X1
X2 S1 S2 ld
Variable Básica
1
5
0
3
0
12 -Z=12
0
1
1
1
0
4 X2=4
0
2
0
1
1
10 S2=10 128
Método 2 Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Z
X1
X2 S1 S2 ld
Variable
Razón
Básica
Max -Z= -2X1 +3X2 s.a. X1 + X2 ≤ 4 X1 - X2 ≤ 6 X1, X2 ≥ 0
1
-2
3
0
0
0 Z=0
0
1
1
1
0
4 S1=4
(4/1)=4
0
1
-1
0
1
6 S2=6
Ninguna
-Z
X1
X2 S1 S2 ld
Variable Básica
1
-5
0
-3
0
12 Z=-12
0
1
1
1
0
4 X2=4
0
2
0
1
1
10 S2=10 129
Resumen del Método Simplex: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Paso 0: Escribir el problema de programación lineal en su forma estándar. Paso 1: Escoger una solución básica factible inicial. Paso 2: Escoger una variable no - básica con costo reducido negativo que determina la variable entrante y seguir al paso tres. Sin embargo, si todos los costos reducidos son mayores que cero , parar, ya que la actual solución es la óptima. Paso 3: Calcular el criterio de factibilidad que determina que variable deja la base. Si todos los cuocientes son negativos: problema no - acotado, parar. Paso 4: Actualizar la tabla de modo de despejar el valor de las nuevas variables básicas, los costos reducidos y el valor de la función objetivo. Volver al Paso 2.
130
Programación Lineal
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Lineal II.Programación Modelos de Programación Matemática
No siempre es fácil obtener una solución básica factible inicial, en las variables originales del modelo. Para conseguir esto existen varios procedimientos como son: • •
Método de la M – grande. Método Simplex de dos fases.
131
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
INTRODUCCIÓN Hasta el momento sólo se han estudiado problemas en la forma estándar. Maximizar Z. Restricciones de la forma menor igual. Todas las variables no negativas FORMA ESTANDAR Maximizar Z= Sujeto a:
3X1 X1
+
3X1 + X1, X2
5X2 2X2 2X2
≤ ≤ ≤ ≥
4 12 18 0
132
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Existen variaciones cuando: Restricciones en forma de igualdad Lados derechos negativos Restricciones de la forma mayor igual que Función objetivo minimizar
133
Método de la M grande.
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Paso 1: Modifique las restricciones de tal manera que el lado derecho de cada restricción sea no negativa. Paso 2: Transforme cada restricción de desigualdad a la forma estandar Paso 3: Si la restricción i es una igualdad o un restricción de ≥ añadir una variable artificial ai Paso 4: Sea M un número positivo muy grande. Si el PL es de minimización añadir (para cada variable artificial) Mai a la función objetivo. Si el PL es de maximización añadir (para cada variable artificial) -Mai a la función objetivo. Paso 5: Ya que cada variable artificial estará en la función objetivo (renglón cero) eliminar todas las variables artificiales de la función objetivo (renglón cero) Paso 5: Resolver el problema con el método simplex.
134
1. RESTRICCION EN FORMA DE IGUALDAD
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Cualquier restricción del tipo a11 X1 + a12 X2 + a13 X3 + ………+ a1n Xn =b1 Es equivalente a a11 X1 + a12 X2 + a13 X3 + ………+ a1n Xn ≤ b1 a11 X1 + a12 X2 + a13 X3 + ………+ a1n Xn ≥ b1 Lo que es inconveniente pues aumenta el número de restricciones
135
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Lo que se hace entonces es introducir variables artificiales Cambiemos la tercera restricción de desiguladad de Wyndor Glas c.o. por una igualdad
FORMA ESTANDAR Maximizar Z= Sujeto a:
3X1 X1
+
3X1 + X1, X2
5X2 2X2 2X2
≤ ≤ =
≥
4 12 18 0
136
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
137
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
138
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
139
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
140
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
141
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
142
PROBLEMA REAL Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Max z=
3
x1
+
PROBLEMA ARTIFICIAL 5
x2
Max z=
s.a.
3
x1
+
5
x2
-
M
x5
s.a. x1
3
x1
+
x1
,
≤
4
2
x2
≤
12
2
x2
=
18
x2
≥
0
x1
3
Así:
3
x1
+
x1
,
x1
+
≤
4
2
x2
≤
12
2
x2
≤
18
x2
≥
0
=
18
2
x2
+
x5
143
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
144
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
145
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
146
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
147
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
148
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
149
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
150
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
151
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
152
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
153
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
154
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
155
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
156
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
157
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
158
Ejemplo:
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal Max sa:
2x1 + x2 10x1 + 10x2 9 10x1 + 5x2 1 x1,x2 0
Se debe agregar una variable de holgura (x3) y una variable de exceso (x4), y llevarlo a su forma estándar. Min -2x1 - x2 sa: 10x1 + 10x2 +s3 =9 10x1 + 5x2 - e4 = 1 x1,x2, x3, x4 0
159
II. Modelos de Programación Matemática Programación Lineal
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
Método Simplex de dos Fases. Fase 0: Usamos los pasos 1,2 y 3 del método de la M grande Fase 1: Paso 1: Por el momento, ignorar la función objetivo original. En su lugar resuelva un PL cuya función objetivo es min w= Σ ai . La resolución de este programa lineal hará las variables necesariamente iguales a cero. Ya que cada ai ≥0, la solución del PL corresponderá a uno de los 3 casos siguientes: caso 1: El valor óptimo de w>0. En este caso el problema no tiene solución caso 2: El valor óptimo de w=0, y no hay variables artificiales en la base óptima de la fase I. En este caso omitimos todas las columnas que corresponden a las variable artificiales en el cuadro de la fase I. Combinamos la función objetivo original con las restricciones del cuadro óptimo de la fase I. Pasamos a la fase II caso 3: El valor óptimo de w=0, y por lo menos una variable artificial está en la base óptima de la fase I. En este caso podemos encontrar la solución para el PL original, si al final de la fase I, omitimos del cuadro óptimo de la fase I todas las variables artificiales no básicas y cualquier variable del problema original con coeficiente negativo en el renglón cero de l cuadro óptimo de la fase I Fase 2: Resolver el problema con el método simplex. 160
Método Simplex de dos Fases.
Aplicamos Simplex de dos Fases : Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Fase 1:
Min sa:
x5 10x1 + 10x2 +s3 =9 10x1 + 5x2 - e4 + a 5 = 1 x1,x2, x3, x4, x5 0
Quedando la siguiente tabla: Variables
x1
x2
s3
e4
a5
valor
Básicas w
0
0
0
0
1
0
s3
10
10
1
0
0
9
a5
10
5
0
-1
1
1 161
donde: s3 Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
xB=
9
x1
=
xD=
a5
0
x2
1
=
0
e4
0
Luego se hace cero el costo reducido de la variable x5 de la tabla anterior, y queda la siguiente tabla inicial. Variables
x1
x2
s3
e4
a5
valor
Básicas w
-10
-5
0
1
0
-1
s3
10
10
1
0
0
9
a5
10
5
0
-1
1
1
162
Método Simplex de dos Fases. La variable entrante a la base es x1 ( pues r1 < 0). Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Variables
x1
x2
s3
e4
a5
valor
Básicas w
-10
-5
0
1
0
-1
s3
10
10
1
0
0
9
a5
10
5
0
-1
1
1
Calculamos Min { 9/10, 1/10}= 1/10, por lo tanto sale a5. 163
Obteniéndose la siguiente tabla final: Variables
x1
x2
s3
e4
a5
valor
Básicas Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
w
0
0
0
1
0
0
s3
0
5
1
1
-1
8
x1
1
1/2
0
s3
xB=
8
=
x1
-1/10
xD=
1/10
1/10
1/10 x2
e4
a5
0
=
0
0
Donde, la anterior, corresponde a la solución óptima del problema en la Fase 1, con valor óptimo 0. De aquí entonces tomamos x1 y x3 como variables básicas.
164
Fase 2: Variables
x1
x2
s3
e4
valor
Básicas
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
z
-2
-1
0
0
0
s3
0
5
1
1
8
x1
1
1/2
0
-1/10
1/10
En la tabla hacemos 0 los costos reducidos de variables básicas Variables
x1
x2
s3
e4
valor
Básicas z
0
0
0
-1/5
1/5
s3
0
5
1
1
8
x1
1
1/2
0
-1/10
1/10
Luego la variable entrante a la base es e4 (pues r4<0). Y calculando Min { 8/1, (-1/10)/(1/10) } = 8, se tiene que sale s3.
165
Quedando: Variables Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
x1
x2
s3
e4
valor
Básicas z
0
1
1/5
0
9/5
e4
0
5
1
1
8
x1
1
1
1/10
0
9/10
donde la solución óptima del problema resulta ser: e4 xB =
8 xD =
= x1
x2
9/10
0
= s3
0
166
Consideremos otro ejemplo para el caso 2 min z=
s.a. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
2 x1
+
3 x2
1/2 x1
+
1/4 x2
≤
4
1 x1
+
3 x2
≥
20
x1
+
x2
=
10
x1
,
x2
≥
0
Aumentando las variables de holgura, exceso y artificiales min z=
2 x1
+
3 x2
1/2 x1
+
1/4 x2
1 x1
+
3 x2
x1
+
x2
+
s1 -
e2
+
a2
+
a3
=
4
=
20
=
10
167
Primera Fase min w= Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
a2 1/2
x1
+
1/4
x2
1
x1
+
3
x2
x1
+
+
+
s1 -
e2
+
a2
x2
variable
w
w
1
a3
+
x1
x2
s1
e2
a2
a3
a3
=
4
=
20
=
10
valor
0
0
0
0
-1
-1
0
s1
1/2
1/4
1
0
0
0
4
a2
1
3
0
-1
1
0
20
a3
1
1
0
0
0
1
10
168
sumamos las columnas 2 y 3 para eliminar las variables a2 y a3
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
VB
w x1
x2
s1
e2
a2
a3
valor
prueba
w
1
2
4
0
-1
0
0
30
s1
0
1/2
0
1
0
0
0
4
16
a2
0
1
3
0
-1
1
0
20
7
a3
0
1
1
0
0
0
1
10
10
169
Haciendo 1 al pivote
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
VB
w x1
x2
s1
w
1
s1
e2
a2
a3
valor
2
4
0
-1
0
0
30
0
0.5
0
1
0
0
0
4
a2
0
1/3
1
0
-1/3
1/3
0
20/3
a3
0
1
1
0
0
1
10
Realizando operaciones VB
w x1
x2 s1 e2
a2
a3 valor
prueba
w
1
2/3
0
0
1/3
-4/3
0
10/3
s1
0
5/12
0
1
1/12
-1/12
0
7/3
28/5
x2
0
1/3
1
0
-1/3
1/3
0
20/3
20
a3
0
2/3
0
0
1/3
-1/3
1
10/3
1/5
170
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
VB
w x1
x2
w
1
2/3
0
0
1/3
-4/3
0
10/3
s1
0
5/12
0
1
1/12
-1/12
0
7/3
x2
0
1/3
1
0
-1/3
1/3
0
20/3
x1
0
1
0
0
1/2
-1/2
3/2
5
x2
s1
s1
e2
a2
e2
a3
a2
valor
VB
w x1
a3
valor
w
1
0
0
0
0
-1
-1
0
s1
0
0
0
1
-1/8
1/8
-5/8
1/4
x2
0
0
1
0
-1/2
1/2
-1/2
5
x1
0
1
0
0
1/2
-1/2
3/2
5
171
Fase 2 Volvemos a introducir la función objetivo original
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
VB
z x1
x2
s1
e2
valor
z
1
-2
-3
0
0
0
s1
0
0
0
1
-1/8
1/4
x2
0
0
1
0
-1/2
5
x1
0
1
0
0
1/2
5
Como tanto x1 como x2 están en la base óptima de la fase 1 VB eliminarlas del renglón z x1 s1 e2 valor debemos 0x2 z
1
0
0
0
-1/2
25
s1
0
0
0
1
-1/8
1/4
x2
0
0
1
0
-1/2
5
x1
0
1
0
0
1/2
5
Debido a que no hay como mejorar la función objetivo original Esta es OPTIMA 172
Supongamos que en el ejemplo anterior se cambia la segunda min z= 2 x1 + 3 x2 restricción (a fin de analizar el caso 1) s.a. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
1/2 x1
+
1/4 x2
≤
4
1 x1
+
3 x2
≥
36
x1
+
x2
=
10
x1
,
x2
≥
0
Aumentando las variables de holgura, exceso y artificiales min z= s.a.
2 x1
+
3 x2
1/2 x1
+
1/4 x2
1 x1
+
3 x2
x1
+
x2
+ s1
= - e2
+ a2
4
= 36 + a3
= 10
173
Primera Fase min w= Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
a2 1/2 x1 +
1/4 x2
1 x1 +
3 x2
x1 +
x2
+ a3
+ s1 -
e2
+ a2 + a3
x2
s1
e2
a2
a3
=
4
=
36
=
10
variable
w x1
valor
w
1
0
0
0
0
-1
-1
0
s1
0
1/2
1/4
1
0
0
0
4
a2
0
1
3
0
-1
1
0
36
a3
0
1
1
0
0
0
1
10
174
sumamos las columnas 2 y 3 para eliminar las variables a2 y a3 VB w x1 x2 s1 e2 a2 a3 valor prueba
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
w
1
2
4
0
-1
0
0
46
s1
0
1/2
1/4
1
0
0
0
4
16
a2
0
1
3
0
-1
1
0
36
12
a3
0
1
1
0
0
0
1
10
10
175
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal VB
w x1
x2
s1
e2
a2
a3
valor
w
1
-2
0
0
-1
0
-4 6
s1
0
1/2
1/4
1
0
0
-1/4 3/2
a2
0
-2
0
0
-1
1
-3 6
x2
0
1
1
0
0
0
1 10
Como ninguna variable en el renglón 0 tiene coeficiente positivo se trata de un cuadro óptimo de la fase 1. Debido a que el valor de w=6>0 el PL no tiene solución factible
176
Algunos casos especiales Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
1) Problema Infactible. Esta situación se detecta cuando el valor óptimo del problema de la Fase 1 da mayor que cero. 2) Múltiples soluciones óptimas. Esta situación se detecta cuando existen costos reducidos iguales a cero en una o más de las variables básicas óptimas. 3) Problema no acotado. Esta situación se detecta cuando al realizar el cálculo de la variable que deja la base, todos los elementos ykj de la columna j en la tabla, son negativos para j el índice de una variable no básica con costo reducido negativo. 177
II.5. Dualidad en Programación Lineal.
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Consideremos un ejemplo de producción de 2 productos finales que hacen uso de tres recursos escasos (máquinas), cuyas disponibilidades en horas corresponden a los lados derechos de las restricciones. P) Max 40x1 + 60x2 sa: 2x1+2x2 70 x1 + x2 40 x1 + 3x2 90 x1 , x2 0 La solución óptima y el valor óptimo del problema P) esta dada por: x1 * = 5 x2* = 25
z = v(p) = 2100 178
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
En lo que sigue, combinaremos las distintas restricciones del problema, ponderando por los valores 1, 2 y 3 cada una, respectivamente, de modo de obtener la mejor cota superior del valor óptimo del problema P). Vale decir: 1(2x1+2x2) + 2(x1+x2) + 3(x1+3x2) 70 1 + 40 2 + 90 3 Para garantizar que el lado derecho de esta última desigualdad sea una cota superior de la función objetivo se debe cumplir que : 2 1 + 2 + 3 40 21 + 2 + 3 3 60 179
La mejor elección de esta cota se obtendría al resolver: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
70 1 + 40 2 + 90 3 2 1 + 2 + 3 40 21 + 2 + 3 3 60 1, 2, 3 0 Este problema se conoce como el problema “ Dual” D) asociado al problema “Primal” P). D)
Min sa:
También resulta que al formular el problema dual de D) se obtiene el problema primal (o uno equivalente). Cualquiera de los dos entrega la misma información y el valor óptimo alcanzado es el mismo. 180
Más generalmente, si el problema primal es: P) n
Max
c jx j j1
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
n
sa :
aijx j bi
i 1,2,...,n
j1
xj 0 su dual resulta el problema: D) Min
j 1,2,...,m
m
bi i i 1 m
sa :
aiji c j
j 1,2,...,n
i 1
i 0
i 1,2,...,m
181
Lo que se puede expresar en forma matricial como: P) Max cTx sa: Ax b x0 Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
bT AT c 0 Si el problema primal corresponde a: P) Max -cTx sa: Ax b x0 Su dual resulta ser: D) Min -bT sa: AT c 0 Es decir, el dual del dual es el problema primal D)
Min sa:
182
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Teorema de dualidad débil: Si x IRn, es una solución factible del problema primal P) y IRm, una solución factible del problema dual D), entonces: n
m
j 1
i 1
c x c j x j bi i b T T
En particular, si ambas soluciones son los óptimos de sus respectivos problemas, sus valores óptimos cumplen que : v(P) v(D) Teorema de dualidad fuerte: Si x* = (x1*, x2*, ..., xn*)T, es una solución óptima problema primal P), entonces el problema dual D) tiene solución óptima * = (1*, 2*, ..., m*)T que satisface: n
m
j1
i1
v(P) c x * c jx j * bi i * bT v(D) T
183
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Además: i)Si P) es no-acotado entonces D) es infactible. ii)Si D) es no-acotado entonces P) es infactible. Ejemplo:
P)
Min sa:
3x1 + 4x2 + 5x3 x1+ 2x2 + 3x3 5 2x1 + 2x2 + x3 6 x 1 , x2 , x3 0
D)
Max sa:
5 1 + 6 2 1 + 22 3 21 + 22 4 31 + 2 5 1, 2 0
184
Resolvemos D) por Simplex, en su forma estándar:
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
1
2
3 4
5
1
2
1
0
0
3
2
2
0
1
0
4
3
1
0
0
1
5
-5
-6
0
0
0
0
3 3 xB 4 4 5 5 1 0 xD 2 0
Luego la variable entrante a la base es 2 (pues r2<0). Y calculando Min { 3/2, 4/2, 5/1 } = 3/2, se tiene que sale 3
185
1 2 3 4 5 Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
½
1
½
0
0
3/2
1
0
-1
1
0
1
5/2
0
-1/2
0
1
7/2
2 3 / 2 xB 4 1 5 7 / 2 1 0 xD 3 0
-2 0 3 0 0 9 Luego la variable entrante a la base es 1 (pues r2<0). Y calculando Min { (3/2)/(1/2), 1/1, (7/2)/(5/2)} = 1, se tiene que sale 4
186
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
1 2 3 4 5 0
1
1
-1/2
0
1
1
0
-1
1
0
1
0
0
2
-5/2
1
1
0
0
1
2
0
11
1 1 x B 2 1 5 1 3 0 xD 4 0
Sol. óptima de D): 1* = 1; 2* = 1;
v(D) = 11
Sol. óptima de P):
x1* = 1; x2* = 2; x3* = 0;
v(P) = 11 187
Método Simplex Dual: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
La idea de este método consiste en resolver de alguna manera el problema dual asociado a P) en la tabla y variables del problema primal P), según veremos en su aplicación a un problema primal (ejercicio anterior). Min 3x1 + 4x2 + 5x3 sa: x1+ 2x2 + 3x3 5 2x1 + 2x2 + x3 6 x 1 , x2 , x3 0
188
Método Simplex Dual: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Min sa:
3x1 + 4x2 + 5x3 + 0x4 + 0x5 x1 + 2x2 + 3x3 - x4 5 2x1 + 2x2 + x3 - x5 6 x1 , x2 , x3 , x4 , x5 0
x1
x2
x3
x4
x5
-1
-2
-3
1
0
-5
-2
-2
-1
0
1
-6
3
4
5
0
0
0
x(-1) x(-1)
189
Método Simplex Dual: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
En la tabla anterior se toman dos variables de exceso x4 y x5 , y se multiplica por un número negativo con la finalidad de encontrar la matriz identidad IRn, además es necesaria la condición de que los costos reducidos de la tabla sean mayores que cero ( lo que en este caso se cumple). En la tabla anterior se escoge, usando el lado derecho, alguna variable con valor negativo. Escogemos x5 , variable que dejará la base. Enseguida , se obtiene la variable entrante calculando: Min { (-3/-2) , (-4/-2),(-5/-1)} = 3/2. De donde resulta que x1 entra a la base.
190
Método Simplex Dual: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
x1
x2
x3
x4
x5
0
-1
-5/2
1
-1/2
-2
1
1
1/2
0
-1/2
3
0
1
7/2
0
3/2
-9
La tabla posee aún un lado derecho negativo (costos reducidos negativos del problema dual), por lo cual no es factible en P).
191
x4 (=-2) deja la base, luego calculamos : Min {(-1/-1),((-7/2)/(-5/2)),((-3/2)/(-1/2))} = 1, por lo que x2 entra a la base. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
x1
x2
x3 x4 x5
0
1
5/2 -1
½
2
1
0
-2
1
-1
1
0
0
1
1
1
-11
La tabla posee lados derechos no-negativos (costos reducidos positivos del problema dual) y también los costos reducidos de las variables no básicas x3, x4 y x5 son no-negativos , por lo que tenemos una solución factible en P) que es la solución óptima del problema. x 1 1 x x 2 2 x 3 0
v(P) 11
192
II.6. Análisis de Sensibilidad o Post-Optimal Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
1) ¿Qué ocurre con las actuales variables básicas si se cambia algún coeficiente del lado derecho (b)? Si calculamos: xB B b y se cumple: xB 0 Las mismas variables básicas lo son también de la nueva solución óptima, calculada con el nuevo b . Si lo anterior no se cumple, se puede aplicar el Método Simplex Dual. 2) ¿ Qué ocurre con la actual solución óptima si se agrega una nueva variable al problema ? 1
Para decidir si la actual solución básica es óptima para el nuevo problema, calculamos el costo reducido de la nueva variable mediante la formula:
rk ck cBTB1Ak
193
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal donde k es el índice de la nueva variable y Ak su respectiva columna en la matriz de coeficientes. Si se cumple que rk0 se conserva la actual solución óptima. En caso contrario, se sigue con el Simplex. 3) ¿ Que ocurre con la actual solución óptima del problema P) si se cambian los coeficientes que definen la función objetivo ? Supongamos que el vector de coeficientes en la función objetivo n cambia a un vector c IR La actual solución óptima también lo es para P con:
P)
T
Min c x sa : Ax b x0 194
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Siempre que los nuevos costos reducidos sean mayores o iguales a cero (notar que también cambia el valor de la función objetivo en la actual solución óptima). Es decir se debe cumplir que:
rD cD cBT B 1 D 0 T B
rj c j c B 1 A j 0
o equivalent emente j
En caso contrario, se aplica el Simplex a partir de la tabla final de P) con los nuevos costos reducidos y nuevo valor de la actual solución básica.
195
Veamos los cambios que tienen lugar cuando sólo varía un coeficiente del vector c de la función obj. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
a) Cambio de un coeficiente asociado a una variable nobásica xJ: Se conserva la misma solución óptima del problema P) ssi. para esa variable xJ:
rj
T 1 c j cBB A j
0
j
196
Consideremos : Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
c j c j j Por lo tanto se conserva la misma solución ssi:
j rj
c j c j rj
197
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
b) Cambio en un coeficiente de la función objetivo asociado a una variable básica: En este caso para tener la misma solución óptima, se debe cumplir que el costo reducido de todas las variables.a cero. rj
c i c i i
T 1 c j cBB A j
0
0 cB cB i 1 cB ie i 0 198
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Si el incremento es cualquiera en el siguiente intervalo, se conserva la misma solución óptima:
rj rj Max / yij 0 i Min / yij 0 yij yij donde rj es el costo reducido de la respectiva variable no básica en la actual solución óptima y los coeficientes yij denotan las entradas en la tabla final del Simplex asociadas a la variable básica xi (cuyo costo cambia) y la respectiva variable no básica xj 199
Ejemplo: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
La siguiente tabla, es la tabla final de un problema de programación lineal. 1,00
2,33
1,67
0,00
0,27
-0,07
1333,33
0,00 -0,03
0,03
1,00
-0,01
0,03
66,67
0,00
3,33
0,00
2,93
0,27
18666,67
6,67
Con esta tabla realizaremos un análisis de sensibilidad: 200
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
a) Variar los recursos ( lado derecho):
Las xB del problema primal no cambian como base óptima, si los valores asociados a estas variables. xB B1b
y se cumple
xB 0
Para calcular estos intervalos de recursos, se necesita la matriz inversa asociada a las variables básicas del tabla final. 201
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
4 10 B 1 40
4 / 15 B 1/ 150 1
1/ 15 2 / 75
Intervalo recurso 1: 4 / 15 1/ 150
1/ 15 6000 b1 x 0 2 / 75 4000
20000 4b1 0 15 15 b1 5000
10000 b1 0 150 150 b1 10000 202
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
5000 b1 10000 1000 b1 16000
Intervalo recurso 2: 4 / 15 1/ 150
1/ 15 6000 x 0 2 / 75 4000 b2
2500 b2 20000 1500 b2 24000
203
Variable x1: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Max {0} C1 Min {((20/3)/(7/3)),((10/3)/(5/3))} 0 D1 2
10 C1* 12
Variable x4: Máx {((20/3)/(-1/30))} D4 Min {((10/3)/(1/30))} -200 D4 100
-60 C4* 240 204
Variable x2: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
C2* = C2 + 2 2 - r2
C2 = -20 C2* - 20 - ( 20/3) C2* - 80/3
Variable x3: C3* = C3 + 3 3 - r3
C3 = -18 C3* - 18 - ( 10/3) C3* - 64/3 205
BIBLIOGRÁFIA EN PROGRAMACIÓN LINEAL Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
1. Linear Programming and Network Flow, M.Bazaraa, J.Jarvis and H.Sherali. John Wiley & Sons, Inc., New York, Second Edition 1990. 2. Introduction to Linear Optimization, D.Bertsekas and J.Tsitsiklis. Athena Scientific USA, 1997. 3. Linear Programming, V.Chvátal. W.H. Freeman and Company, New York, 1983. 4. Linear Programming and Extensions, G. Dantzig. Princeton University Press, New Jersey, tenth printing, 1993. 5. Introducción a la Programación Lineal y No Lineal, D.Luenberger. Adisson Wesley Iberoamericana, 1989. 6. Linear and Combinatorial Programming, K. Murty. John Wiley & Sons, Inc., New York, Second Edition 1976. 7. Model Building in Mathematical Programming, H.P. Williams. John Wiley & Sons, Inc., New York, 4rd Edition 1999. 206
DIRECCIONES ELECTRÓNICAS EN PROGRAMACIÓN LINEAL Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Lineal
Preguntas de consulta frecuente en Programación Lineal: http://www-unix.mcs.anl.gov/otc/Guide/faq/linear-programming-faq.html
Servidor NEOS, guía de software de Programación Lineal: http://www-fp.mcs.anl.gov/otc/Guide/SoftwareGuide/Categories/linearprog.html
Servidor NEOS, ejemplo problema de la dieta: http://www-fp.mcs.anl.gov/otc/Guide/CaseStudies/diet/index.html
Guía de software de Programación Lineal en revista OR&MS Today (INFORMS Magazine): http://lionhrtpub.com/software-surveys.shtml
207
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
Temario: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
III.1. Introducción y ejemplos de modelamiento. III.2. Resolución de problemas de P. E. III.3. Método de Branch and Bound.
209
Ejemplo de Restricciones “O”
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
Seat considera la fabricación de 3 tipos de automóviles: compacto, mediano y largo. En la tabla se presentan los recursos requeridos y las ganancias proporcionadas por cada tipo de automóvil. En la actualidad se cuenta con 6000 ton de acero y 60000 horas de trabajo. Para que la producción de un tipo de automóvil sea económicamente factible hay que fabricar al menos 1000 unidades de este tipo. Formular un modelo matemático para optimizar las ganancias.
COMPACTO MEDIANO
LARGO
Ton. de acero
1.5
3
5
hors de trabajo
30
25
40
2000
3000
4000
ganancia (dolares)
210
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera Consideremos como variables de decisión x1 = número de automóviles compactos x2 = número de automóviles medianos x2 = número de automóviles grandes Por lo tanto la función objetivo (ganancia de la fábrica): Max z=2000 x1+ 3000x2 + 4000x3 R1 R2 R3 R4 R4
x1≤ 0 x2≤ 0 x3≤ 0 1.5 x1 30 x1
ó x1≥1000 ó x2≥1000 ó x3≥1000 + 3 x2 + 5 x3 ≤ 6000 +25 x2 + 40 x3 ≤ 60000
211
Restricciones “O” Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
Se dan dos restricciones de la forma: f(x1, x2,… xn) ≤ 0 g(x1, x2,… xn) ≤ 0 Se desea asegurar que se cumpla por lo menos una de las dos restricciones. Deberá agregarse las siguientes dos restricciones: f(x1, x2,… xn)≤ My g(x1, x2,… xn)≤M(1-y) Donde: y es una variable 0-1 y M es un número muy grande que asegure que se satisfagan: f(x1, x2,… xn)≤M g(x1, x2,… xn)≤M Para todos los valores de x1, x2,… xn que satisfagan las otras restricciones.
212
Max z=2000 x1+ 3000x2 + 4000x3
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
x1 ≤ M1 y1 1000- x1 ≤ M1(1-y1) R2 x2 ≤ M2 y2 1000- x2 ≤ M2(1-y2) R3 x3 ≤ M3 y3 1000- x3 ≤ M3(1-y3) R4 1.5 x1 + 3 x2 + 5 x3 ≤ 600 R4 30 x1 +25 x2 + 40 x3 ≤ 60000 x1, x2, x3 ≥ 0 y1, y2, y3 = 0 ó 1 R1
213
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
Ejemplo de Restricciones “SI ENTONCES” STour recibe pagos de los turistas con tarjetas de crédito de 4 regiones diferentes galápagos, costa, sierra y oriente. El valor promedio de pagos por los clientes de cada región es galápagos 70000, costa 50000, sierra 60000 y oriente 40000. STour debe decidir hacia donde deben enviar los clientes sus pagos, ya que recibe el 20% de interés anual y desea recibir los pagos lo más pronto posible. STour considera montar las oficinas para procesar los pagos en cuatro ciudades Puerto Ayora, Guayaquil, Cuenca y Puyo. El número promedio de días (a partir del envío del pago) hasta la liquidación de un cheque y hasta que STour pueda depositar el dinero depende de la ciudad a la cual se manda el pago como se muestra en la tabla siguiente. El costo anual por manejar una oficina es de 50000. Si se abre la oficina en Puerto Ayora solo puede recibir el dinero de galápagos y de ninguna otra región (si galápagos envía su dinero a la Puerto Ayora entonces ninguna otra región puede enviar el dinero a Puerto Ayora) Formular un PL para minimizar la suma de los costos por intereses perdidos y por el manejo de la oficina. Supóngase que cada región debe enviar su dinero a una sola oficina. DESDE HACIA P.Ayora Guayaquil Cuenca Puyo Galápagos Costa Sierra Oriente
2 6 8 8
6 2 5 5
8 5 2 5
8 5 5 2 214
Restricciones “SI ENTONCES” Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
Se desea asegurar que se cumpla g(x1,x2,…xn)≥0 si se satisface f(x1,x2,…xn)>0, mientras que si no se satisface f(x1,x2,…xn)>0 entonces g(x1,x2,…xn)≥0 no debe satisfacerse. Deberá agregarse las siguientes dos restricciones, en definitiva f(x1,x2,…xn)>0 implica g(x1,x2,…xn)≥0 : -g(x1, x2,… xn)≤My f(x1, x2,… xn)≤ M(1-y) Donde: y es una variable 0-1 y M es un número muy grande que asegure que se satisfagan: f(x1, x2,… xn)≤M -g(x1, x2,… xn)≤M Para todos los valores de x1, x2,… xn que satisfagan las otras restricciones. 215
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
FUNCION OBJETIVO Intereses perdidos Desde Galápagos A Puerto Ayora A Guayaquil A Cuenca A Puyo Desde Costa A Puerto Ayora A Guayaquil A Cuenca A Puyo
0.2(70000)*2=28000 0.2(70000)*6=84000 0.2(70000)*8=112000 0.2(70000)*8=112000 0.2(50000)*3=30000 0.2(50000)*2=20000 0.2(50000)*5=50000 0.2(50000)*5=50000 216
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
FUNCION OBJETIVO Intereses perdidos Desde Sierra A Puerto Ayora A Guayaquil A Cuenca A Puyo Desde Oriente A Puerto Ayora A Guayaquil A Cuenca A Puyo
cont… 0.2(60000)*8=96000 0.2(60000)*5=60000 0.2(60000)*2=24000 0.2(60000)*5=60000 0.2(40000)*8=64000 0.2(40000)*5=40000 0.2(40000)*5=40000 0.2(40000)*2=16000 217
FUNCION OBJETIVO Xij= 1 si se envía el dinero de la zona i a la ciudad j 0 caso contrario Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
Yi=
1 si se abre la oficina en la ciudad I 0 caso contrario Si tomamos la función en miles de dólares Z=
+28X11+84X12+112X13+112X14
+60X21+20X22+50X23+50X24 +96X31+60X32+24X33+60X34 +64X41+40X42+40X43+16X44 +50Y1+50Y2+50Y3+50Y4
218
RESTRICCIONES Tipo 1: de cada zona se envíe a una ciudad
X11+X12+X13+X14=1 Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
X21+X22+X23+X24=1 X31+X32+X33+X34=1 X41+X42+X43+X44=1
Tipo 2: Si de la zona j envían a la ciudad i entonces Yi=1 Xij≤Yj (i=1,2,3,4; j=1,2,3,4) ó X1i+X2i+X3i+X4i ≤ 4Yi (i=1,2,3,4) 219
RESTRICCIONES
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
Tipo 3: si galápagos envía su dinero a la Puerto Ayora entonces ninguna otra región puede enviar el dinero a Puerto Ayora
Si X11=1 Entonces X21=0, X31=0, X41=0 Se puede escribir como Si X11>0 Entonces X21+X31+X41≤0 (-X21-X31-X41≥0) f=X11 g=-X21-X31-X41 Deberá incluirse las dos restricciones: X11≤M(1-y) X21+X31+X41≤My 220
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera Funciones lineales por partes Supongamos que una función lineal por partes tiene los puntos de ruptura b1,b2,…bn. Para algún k (k=1,2,3…n-1), bk ≤ x≤ bk+1. Entonces, para algún número zk (0 ≤ zk ≤1) se puede escribir x como: x= zk bk+(1-zk)bk+1 Ya que f(x) es lineal para bk ≤ x≤ bk+1 , podemos escribir como: f(x)=zk f(bk)+(1-zk) f(bk+1 ) Paso 1: donde se presenta f(x) remplazar por z1f(b)+z2f(b2)+z3f(b3)…..znf(bn) Paso 2: añadir las siguientes restricciones: z1≤y1, z2≤y1+y2 , z3≤y1+y2……. zn-1 ≤yn-2+yn-1, zn ≤1 y1+y2+y3….+yn-1=1 z1+z2+z3….+zn-1=1 X=z1b1+z2b2+z3b3+…….znbn
221
Ejemplo de Funciones lineales por partes
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
Supóngase que se produce gasolina a partir de petoleo. Al comprar el petróleo de nuestro proveedor se recibe un descuento por cantidad. Los 500 primeros galones de petróleo cuestan 0.25 dólares el galón; los siguientes 500 galones a 0.20 dólares; y los siguientes 500 galones a 0.15 dólares Se pueden comprar como máximo 1500 galones
222
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
223
a) Problema de la mochila.
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera Una empresa está pensando invertir en cuatro proyectos diferentes, cada proyecto se finaliza a lo más en 3 años. Los flujos de caja requeridos en cada año junto con el Valor Presente Neto de cada proyecto, concluIdos los años de ejecución, y las disponibilidades de recursos financieros se resumen en la siguiente tabla: Proy 1 Proy 2 Proy 3 Proy 4
Disp. Recursos
Año 1
10
8
6
12
30
Año 2
8
15
4
0
15
Año 3
18
0
16
0
12
V.P.N.
35
18
24
16
Interesa determinar en cuáles proyectos invertir de modo de conseguir el mayor V.P.N. de la inversión.
224
Variables de decisión: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera 1, si se invierte en el proyecto i xi 0, sin o
con i 1,2,3,4
Función objetivo: Max 35x1 + 18x2 + 24x3 + 16x4
225
Restricciones (tres alternativas): 1) Reinvirtiendo el dinero no utilizado en un período: Año1: 10x1 + 8x2 + 6x3 + 12x4 + s1 Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
Año2: 8x1 + 15x2 + 4x3 Año3: 18x1
+ s2 = 15 + s1
+ 16x3
xi {0,1}
= 30 12 + s2
i = 1,2,3,4
2) Sin invertir el dinero no utilizado en un período, pero utilizando el retorno de los proyectos concluídos: Año1: 10x1 + 8x2 + 6x3 + 12x4 30 Año2: 8x1 + 15x2 + 4x3
15 + 16x4
Año3: 18x1
12 + 18x2
xi {0,1}
+ 16x3 i = 1,2,3,4
226
3) Reinvirtiendo el dinero no utilizado en un período y, también el retorno de proyectos concluidos: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
Año1: 10x1+ 8x2+ 6x3+ 12x4+ s1 Año2: 8x1+ 15x2+ 4x3 Año3: 18x1 xi {0,1}
= 30
+ s2 = 15 + s1 + 16x4
+ 16x3
12 + s2 + 18x2
i = 1,2,3,4
227
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
Notar que el conjunto de las soluciones factibles es finito. Esto ocurrirá generalmente con los problemas de Programación Entera (puros). En el ejemplo, el número de soluciones factibles no supera el número de las soluciones binarias del problema (variables restringidas sólo a valores 0 o 1) que son 24 = 16, dado el número de variables utilizadas, de hecho las soluciones factibles son menos de 16 pues en particular xi=1 para i=1,2,3,4 no satisface las disponibilidades de capital en cualquiera de las tres alternativas.
228
Tomemos el ejemplo de la mochila dado con anterioridad Supongamos que adicionalmente la inversión efectuada requiera nuevas restricciones.
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
- Se debe invertir en al menos 1 de los 3 primeros proyectos: x1 + x2 + x3 1 - El proyecto 2 no puede ser tomado a menos que el proyecto 3 si sea tomado: x2 x3
- Se puede tomar el proyecto 3 o 4 pero no ambos:
x3 + x4 1
- No se puede invertir en más de dos proyectos: x1 + x2 + x3 + x4 2
229
b) Cumplimiento de un subconjunto de las restricciones de un problema.
Consideremos un problema que posee las siguientes restricciones: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
12x1 + 24x2 + 18x3 2400 15x1 + 32x2 + 12x3 1800 20x1 + 15x2 + 20x3 2000 Supongamos además, que nos basta con obtener alguna solucion óptima que verifique el cumplimiento de al menos 2 de las 3 restricciones anteriores. Variables de decisión:
1, si la restricció n j se satisface yj 0, casocontrario
230
Cada inecuación anterior la reemplazamos por:
12x1 + 24x2 + 18x3 2400 + M1 (1- y1) Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
15x1 + 32x2 + 12x3 1800 + M2 (1- y2) 20x1 + 15x2 + 20x3 2000 + M3 (1- y3) Además, debemos agregar la restricción que permita que a lo más una de las restricciones no se cumpla: y1 + y2 + y3 2 Mi = constante lo suf. grande
231
c) Inclusión de costos fijos. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
Supongamos que se desea tener lotes de compra de un producto dado, para satisfacer demandas que fluctúan en el tiempo sobre un horizonte de planificación dividido en T períodos. Asumimos conocidos: una estimación de la demanda dt, con t = 1, 2, ..., T, los costos fijos asociados a la compra de una unidad pt, los costos asociados al mantenimiento de una unidad en inventario de cada período ht y los costos fijos asociados a la gestión de compra en el período t, st.
Observación: no se permite unidades de faltante.
232
Variables de decisión Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
x t:
número de unidades compradas en t.
It :
nivel de inventario al final del período t. con t:
1, 2, ..., T
1, si se hace una compra en el periodo t yt 0, sin o
233
Función objetivo T
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
Min
st t 1
y t p t x t h t It
Restricciones
xt + It-1 - It = dt
t = 1, 2, ..., T I0 = inventario inicial
xt Mt yt
t = 1, 2, ..., T
Mt = cte. grande
234
d) Problema de cobertura:
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera Dado un número de regiones o zonas, en las cuales se ha subdividido una comuna, cuidad, país, etc., digamos que un total de m, se desea instalar un cierto número de servidores (escuelas, centros de atención primaria de salud, compañías de bomberos, etc.) de entre un conjunto de n potenciales servidores ubicados en alguna de las zonas dadas. Se conoce la información relativa a que zonas pueden ser atendidas por cada uno de los n potenciales servidores, es decir, se conoce la matriz de incidencia A = (aij) donde :
1, si la zona i puede ser atendida por el servidor j aij 0, sin o con
i 1,2,...,m
y
j 1,2,...,n
235
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera Se desea determinar cuáles son los servidores que deben ser instalados de modo de dar cobertura a cada zona, dados los costos de instalación cj del servidor j. Variables de decisión:
1, si se instala el servidor j xj 0, sin o Función objetivo:
n
Min
cj xj j1
Restricciones: Para cada zona i
n
aij x j 1
j1
Se agrega la siguiente restricción, si adicionalmente, hay algún límite en el número de servidores que se pueden instalar (digamos k) : m
xj k j1
236
e) Problema de transporte y localización: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
Si se tiene un conjunto de m clientes que demandan di unidades de un producto determinado. Una compañía desea satisfacer esas demandas desde un cierto conjunto de plantas elegidas de n potenciales lugares donde se instalarán. Sean cj los costos asociados a la instalación de la planta j , vj el costo unitario de producción de la planta j y tij el costo de transporte de una unidad desde la planta j al cliente i . Se desea decidir cuáles plantas abrir y el tamaño de cada una de modo de satisfacer las demandas estimadas.
237
Variables de decisión: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera 1, si se abre la planta j yj 0, sin o xij = el número de unidades elaboradas en la planta j para satisfacer el cliente i, con j = 1,...,n y i = 1,....,m.
238
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
Función objetivo: m c y v x j j j ij j 1 j 1 i 1
tijxij
Costo de
Costo de
Costo de
Instalación
Producción
Transporte
n
Min
n
n
m
j 1 i 1
239
Restricciones:
1) Demanda cliente i: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
m
xij di i 1
2) Relacionar variables de producción con las asociadas a la apertura de plantas (variables binarias): n
xij Mj y j j 1
donde Mj es una constante grande (por ejemplo, capacidad máxima de producción de la planta j), con xij 0 e yj {0,1}.
240
III.2. Resolución de problemas de P. E. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
Supongamos que tenemos el siguiente problema de programación lineal:
PL)
Max
cTx
s.a.
Ax=b x0
Pero todas o una parte de las variables deben restringir su valor a números enteros, dando origen a un problema de Programación Entera (puro) o de Programación Entera- Mixta, respectivamente. 241
Por ejemplo:
PLE) Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera Max
cTx
s.a.
Ax=b x 0,
xj entero
El problema PL) corresponde a la relajación continua del problema PLE), que resulta de eliminar las condiciones de integralidad de las variables de decisión en PLE). El valor óptimo de PL) provee sólo una cota superior del valor óptimo de PLE). Notar sin embargo, que si la solución óptima de PL) cumple con la integralidad de los valores requiridos, entonces esta solución es también solución óptima de PLE). 242
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
243
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
244
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
245
Ejemplo Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
PLE) Max s.a.
x2 - 2x1 + 2x2 1 2x1 + x2 7 x1 0, x2 0
enteros
246
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
x2
2x1 + x2 7
- 2x1 + 2x2 1
7
. . . .
. . . . . 3.5
x1 247
Notar que en el ejemplo la solución óptima puede ser hallada por simple enumeración de todas las soluciones factibles. Aquí las soluciones óptimas son: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
x1 * = 1 x2 * = 1
o
x1* = 2 x2* = 1
Esta alternativa de enumeración queda naturalmente restringida a problemas muy pequeños.
Alternativamente, podemos resolver la relajación continua asociada al problema PLE). Si la solución óptima de la relajación continua da una solución entera, esa es la solución óptima no solo del problema lineal sino que también lo es del problema lineal entero. En el ejemplo, la solución de la relajación continua es: x1 = 3/2 x2 = 2 248
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera A partir de esta última solución podemos redondear o truncar los valores que no salieron enteros, obteniendo respectivamente en el ejemplo: x1 = 2 x1 = 1 x2 = 2 x2 = 2 las cuales no son soluciones factibles de PLE), de modo que desde el punto de vista de una resolución numérica no es suficiente con resolver la relajación continua. Todavía podrían resultar soluciones factibles de PLE), pero no neceasariamente óptimas. Por ejemplo: PLE)
Max
f(x1, x2) = x1 + 5x2
s.a.
x1 + 10x2 10 x1 1 x1 0, x2 0
enteros 249
Solución óptima de PL) x1 = 1
f(1,9/10)=5,5
x2 = 9/10 Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
Redondeando o truncando los valores x1 = 1
infactible
x2 = 1
x1 = 1
f(1,0)=1
x2 = 0
Pero la solución óptima de PLE) es:
x1 = 0;
x2 = 1;
v(PLE) = 5
250
III.3. Método de Branch and Bound.
Consideremos el siguiente problema de programación entera: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
PLE)
Max s.a.
21x1 + 11x2 7x2 + 4x2 13 x1 0 x2 0 x1, x2 enteros
Consideremos inicialmente la resolución de la relajación continua de PLE), que consiste en eliminar las condiciones de integralidad.
251
III.3. Método de Branch and Bound. x2 Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
3
x2 = 3
3/2 2
x2 = 2
21x1+11x2=39 1
x2 = 1 13/7 sol. relajada
x1 = 1
21x1+11x2
x1 x1 = 2
7x1+4x2=13
252
Descripción del método Branch and Bound (maximización)
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
Paso 0 Hacer P0), la relajación continua de PLE) Fijar la cota inferior del v(PLE) en -. Paso1 Seleccionar un problema no resuelto, Pi)
Resolver Pi) como problema de programación lineal. Agotar este problema, usando: (i) que se encontró una solución entera (ii) que el problema resulta infactible (iii) que el problema no provee un valor mejor que la actual cota del valor óptimo v(PLE). 253
Si el problema Pi) resulta agotado y da solución entera, mejorar el valor de la cota inferior de v(PLE).
Si todos los problemas están agotados, parar. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
Solución óptima de PLE), la solución entera asociada a la actual cota inferior de v(PLE), si existe (si no existe entonces PLE) es infactible)
Si el problema no está agotado pasar al paso 2. Paso 2 Seleccionar una variable xj= ûj, cuyo valor en la solución óptima de Pi) no de entero.
Eliminar la región correspondiente a ûj < ûj < ûj + 1 Crear dos nuevos problemas de programación lineal que incorporen a Pi) dos restricciones mutuamente excluyentes: xj ûj, xj ûj +1 una en cada problema y volver al paso 1. 254
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
P0 x1 = 1 x2 = 3/2 z = 37.5
x11
P1
P11
x1 = 0 x2 = 13/4 z = 35.75 x23 x1 = 0 x2 = 3 P1211 z = 33
P2 infactible
x22
x21 x1 = 1 x2 = 1 z = 32
x1 = 13/7 x2 = 0 z = 39 x12
P12
x1 = 5/7 x2 = 2 z = 37 x11
P121
P122 x24
infactible
P1212 infactible
P0) Relajación continua -< z 39 P1) Max 21x1 + 11x2 s.a. 7x1 + 4x2 13 x1 1 x1 0 x2 0 P2) Max 21 x1 + 11x2 s.a. 7x1 + 4x2 13 x1 1 x2 1 x1 0 x2 0 De donde 32 z 39 Solución óptima x1* = 0; x2* = 3; z = 33 255
BIBLIOGRÁFIA EN PROGRAMACIÓN ENTERA Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
1) Integer Programming, L.A.Wolsey. John Wiley & Sons, Inc., New York, 1998. 2) Combinatorial Optimization C.H.Papadimitriou and K.Steiglitz. Prentice Hall Inc., USA, 1982. 3) Linear and Combinatorial Programming, K. Murty. John Wiley & Sons, Inc., New York, Second Edition 1976. 4) Integer and Combinatorial Optimization, George L. Nemhauser and Laurence A. Wolsey. John Wiley & Sons, Inc., New York, 1999. 5) Model Building in Mathematical Programming, H.P. Williams. John Wiley & Sons, Inc., New York, 4rd Edition 1999.
256
DIRECCIONES ELECTRÓNICAS EN PROGRAMACIÓN ENTERA Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación Entera
Preguntas de consulta frecuente en Programación Lineal: http://www-unix.mcs.anl.gov/otc/Guide/faq/linear-programming-faq.html
Servidor NEOS, guía de software de Programación Entera: http://www-fp.mcs.anl.gov/otc/Guide/SoftwareGuide/Categories/intprog.html
Servidor NEOS, ejemplo problema corte de rollos: http://www-fp.mcs.anl.gov/otc/Guide/CaseStudies/cutting/index.html
Guía de software de Programación Lineal en revista OR&MS Today (INFORMS Magazine): http://lionhrtpub.com/software-surveys.shtml
257
Temario: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
IV.1. Introducción y ejemplos. IV.2. Propiedades básicas de los problemas de programación no-lineal. IV.3. Problemas de optimización no restringida. IV.4. Problemas con restricciones de igualdad. IV.5. Problemas con restricciones de igualdad y desigualdad. IV.6. Métodos de optimización restringida.
258
IV.1. Introducción y Ejemplos
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
A esta clase de problemas de optimización pertenecen todos aquellos, en los cuales la función objetivo y/o las restricciones son funciones no-lineales de las variables de decisión. En particular, la programación no-lineal provee una manera de abordar el no cumplimiento del supuesto de proporcionalidad de la programación lineal, permitiendo la programación de economías o deseconomías de escala y/o retornos crecientes o decrecientes a escala.
259
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal a) Rendimientos decrecientes a escala. Una compañía vende cuatro productos diferentes. El retorno que provee cada producto es una función de la cantidad de recursos asignados a la promoción y venta de cada producto, según la siguiente tabla: PRODUCTO
RETORNO (M$)
Producto 1
10.000 x1 0.50
Producto 2
7.500 x2 0.75
Producto 3
9.000 x3 0.60
Producto 4
15.000 x4 0.30
260
En este ejemplo: xi es la cantidad de recursos asignados al producto i, con i = 1,2,3,4. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
El siguiente modelo provee una asignación de estos recursos, de modo de maximizar las utilidades, considerando una inversión anual no superior a los M$ 75.000. Max 10.000 x10.5 + 7.500 x20.75 + 9.000 x30.6 + 15.000 x40.3 s.a: x1 + x2 + x3 + x4 75.000 xi 0; i = 1, 2, 3, 4, 5.
261
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal b) Aproximación y ajuste de curvas. Supongamos que se tiene un conjunto de datos correspondientes a una determinada función y=g(x) (desconocida), digamos (x1,y1), (x2,y2), .., (xm,ym) y se desea aproximar g(x) por una función h(x)
ym y2
y1 x1
x2
xm
262
Algunas elecciones posibles: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
h (x) = a0 + a1 x ii) h (x) = a0 + a1 x + a2 x2 iii) h (x) = a0 + a1 x a2 iv) h (x) = a0 e a1x v) h (x) = a0 + a1 x + a2 e a3 x vi) h (x) = a0 + a1 ln(x) i)
263
¿Cómo elegir los coeficientes a=(a0,...,an) en la función h(x) que aproxima o ajusta los datos observados? Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
Se define una función de error: e(x,a) = g(x) – h(x)
Una elección posible de los coeficientes ai resulta de minimizar la suma ponderada de los errores al cuadrado en cada uno de los datos , es decir: m
Min
F(a) =
i e(x i
i 1
, a)2=
m
2 ( y h ( x )) i i i
i 1
264
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal Que da origen a un problema de programación no-lineal sin restricciones. Si escogemos 1 = ... = m = 1 y h(x) = a0 + a1x, el problema corresponde a una regresión lineal. h(x)= a0 + a1x ym
y2 y1 x1
x2
xm
265
Cuya solución resulta ser: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
yi a0 i1 m m
m yi x i a 1 i1m 2 xi i 1
266
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal c) Localización de instalaciones. Una compañía petrolera desea construir una refinería que recibirá suministros desde tres instalaciones portuarias, cuyas coordenadas se muestran en la siguiente figura: Puerto B
40
Puerto C
30
Puerto A
30
80
267
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal Si denotamos por x e y las respectivas coordenadas de la refinería que se debe instalar, una posible elección es aquella que resulta de minimizar la cantidad total de tubería necesaria para conectar la refinería con los puertos, dada por:
Min f(x,y) =
( x 0)2 ( y 0 )2 (x 30)2 ( y 40)2 (x 80)2 ( y 30)2
268
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal La solución óptima calculada por el solver de Excel es: x*=30,8052225 y*= 37,8900128 Puerto B
Puerto C Refinería
Puerto A
269
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal d) Optimización de carteras de inversión Se desea obtener una cartera de inversiones en base a distintos instrumentos (acciones, pagarés, bonos, etc). La cartera elegida deberá reflejar un compromiso entre los retornos de los instrumentos elegidos y el riesgo asociado a cada uno de ellos, de hecho es natural esperar que a mayor retorno haya un mayor riesgo y también que exista cierta correlación entre los retornos de los distintos instrumentos de la cartera. A continuación se formula un modelo para obtener una cartera de inversión de un tomador de decisiones con aversión al riesgo, con un vector de retornos que tiene una distribución normal con media: r = (r1, r2, ..., rn)T y matriz de covarianza: Q = (sij) con i = 1, 2, ..., n y j = 1, 2, ..., n donde sii denota la varianza del retorno del instrumento i y donde sij (i j) es la covarianza de los retornos del instrumento i con el j.
270
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
Sea xi el porcentaje de inversión del instrumento i en la cartera, con i = 1, 2, ..., n las variables de decisión del modelo y sea K una constante de aversión al riesgo. El siguiente modelo (propuesto por Markowitz, Premio Nobel de Economía 1991), combina ambos elementos presentes en una decisión de esta naturaleza:
Max
n
n n
i1
i1 j1
rixi K sij xix j n
sa :
xi 1 i1
xi 0
1 1,2,..., n
Usando el servidor Neos para una cartera con tres acciones seleccionadas del menú para este problema en el servidor y un bono, se tiene: 271
Selected value of K is 10.00 Risk less rate of return (monthly) is 0.00407 Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
Name
Avg Return (monthly, pet)
Std Desviation
Pet of optimal Portfolio
Coca Cola Co
2,885
6,574
48,6
Exxon Corp
1,647
4,939
13,7
Texaco Inc
1,869
6,381
16,6
Bond
0,407
0
21
272
Optimal Portfolio Statistics Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
Avg Return (monthly, pet)
2,03
Std Desviation
4,02
Pet of Optimal Potrfolio
27,2
21.0%
Coca Cola 48.6%
Exxon Corp Texaco Inc
16.7% 13.7%
Bond
273
IV.2. Propiedades básicas de los problemas de programación no-lineal.
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
De manera general, un problema de optimización considera la resolución de un modelo como el que sigue: P) Min f(x) s.a. x D IRn Donde f: IRn IR es una función, comúnmente continua y diferenciable, y D es el dominio de factibilidad del problema, generalmente dado por: D = {x IRn / gi(x) = bi i=1,...,m; hr(x) dr r =1,...,l} Decimos que x* D es un mínimo global o solución óptima del problema P) si: f(x*) f(x) para todo x D Por otra parte, decimos que x^ D es un mínimo local del problema P) si: f(x^) f(x) para todo x en una vecindad de x^ (x D B(x^, )) 274
Min s.a: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal f(x) = (x - 1) (x - 2) (x - 3) (x - 4) (x - 5) 1x5
f(x)
Son mínimos locales x=1, x+ y x*, en tanto la solución óptima o mínimo global es x*
x* 1
2
3
4
x 5
x+
275
f(x,y) = -4x3 + 3x - 6y Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
276
f(x,y) = x2 - 4x - 2y Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
277
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal Existen resultados que garantizan la existencia y unicidad de la solución de un problema de programación no lineal. Teorema (Weiertrass). Si f es una función continua y D es un conjunto no vacío cerrado y acotado de IRn, entonces P) tiene solución óptima. Teorema. Si f es una función continua y D es un conjunto cerrado no vacío y además f cumple que: lim f ( x ) , |x|
entonces P) tiene solución óptima. Por su parte, la unicidad de la solución óptima se puede garantizar sólo bajo ciertas condiciones muy especiales. De igual modo es posible garantizar si un mínimo local es un mínimo global del problema. Para esto se requiere saber si el problema P) es un problema convexo, esto es si la función objetivo f(x) es convexa y el conjunto D de puntos factibles es un conjunto convexo.
278
Definición. Decimos que f: IRnIR es una función convexa si:
fx + (1-)y ) f(x) + (1-)f(y) Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
para todo x, y D (x y) con [0, 1] Si la desigualdad anterior se cumple de manera estricta, decimos que f es estrictamente convexa. Lineal a tramos
f(y) f(x) x
y 279
Adicionalmente, se tiene el siguiente resultado Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
Teorema. Si f es una función dos veces continuamente diferenciables, las siguientes afirmaciones son equivalentes: i) f es una función convexa ii) f(x) f(y) + fT(y)(x-y) para dos puntos
cualesquiera x e y. iii) La matriz hessiana de las segundas derivadas
parciales de f, denotada en lo que sigue por D2f(x), es semi positiva definida para todo x.
280
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal Por otra parte, también podemos caracterizar si un conjunto cualquiera es convexo o no, de acuerdo a la siguiente: Definición. D IRn, un conjunto no vacío, es convexo ssi x + (1-) y D, para todo x D, y D con [0,1]. x
y
Es convexo
y x No es convexo
281
Así por ejemplo, si h(x) es una función convexa el conjunto D = { x IRn h(x) d } es convexo para cualquier escalar real d. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
También es posible demostrar que la intersección de conjuntos convexos es un conjunto convexo. De aquí que por ejemplo el problema P)
Min
f(x)
s.a
hr(x) dr
r=1,2,...,l
Con f(x) y hr(x) funciones convexas para r=1,2,..,l definen un problema convexo, pues el dominio de factibilidad es la intersección de los conjuntos convexos Dr={ x IRn hr(x) dr }, para r=1,2,..,l. Teorema. Si P) es un problema convexo y x* es un mínimo local de P) entonces x* es un mínimo global o solución óptima de P), si además, f es una función estrictamente convexa x* es una solución óptima única. 282
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal La principal dificultad en los problemas de programación no lineal es que incluyen restriciones no lineales de igualdad como g(x) = b y el conjunto de puntos {xIRn : g(x)=b} generalmente no es convexo cuando g(x) es una función no lineal cualquiera. Por lo tanto no todos los problemas de programación no lineal son convexos y esto hace más difícil garantizar que la solución encontrada por un solver sea una solución óptima del problema. Como puede verse en el siguiente ejemplo, que resolveremos gráficamente, la geometría de los problemas también cambia respecto de lo observado en programación lineal. Consideremos el siguiente problema: Min
(x1 - 3)2 + (x2 - 4)2
s.a.
x1 + x 2 5 x1 - x2 5/2 x1 0, x2 0 283
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
284
La solución óptima x* de este problema se alcanza el punto x1* = 2, x2* = 3 correspondiente al único punto de la curva de nivel que tiene el menor valor y que intersecta la región de puntos factibles. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
Notar que la solución ya no corresponde a un vértice del dominio de factibilidad del problema, aún cuando todavía esta solución se alcanza en la frontera de dicho conjunto. Sin embargo, esto último, a diferencia de lo que ocurre en programación lineal, no siempre se produce. Si por ejemplo el problema es ahora: Min
(x1 - 2)2 + (x2 - 2)2
s.a
x1 + x2 5 x1 - x2 5/2 x1 0, x2 0 285
La solución cambia a lo representado en la siguiente figura, donde la solución óptima se alcanza en x1* = 2, x2* = 2, ahora perteneciente al interior del dominio de factibilidad del problema. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
286
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal Gráficamente, también podemos observar la presencia de divesos mínimos locales en un problema no lineal.
287
IV.3. PROGRAMACION NO RESTRINGIDA En esta sección consideraremos un problema Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
P) Min f(x)
con x IRn
A esta clase de problemas pertenece por ejemplo el problema de aproximación y ajuste de curvas. Sin embargo, la principal razón para su estudio radica en la extensión de las ideas y métodos para esta clase de problemas a los problemas de optimización restringida. A continuación se resumen algunos resultados teóricos para esta clase de problemas: Teorema (condiciones necesarias de primer orden). Si f es una función continuamente diferenciable y x+ IRn es un mínimo local de P), entonces: f(x+) = 0.
288
Teorema (condiciones necesarias de segundo orden). Si f es una función dos veces continuamente diferenciable y x+ IRn es un mínimo local de P), entonces: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
f(x+) = 0 y D2 f(x+) es semi positiva definida. Dado lo anterior, no todos los puntos x IRn que satisfacen las propiedades mencionadas son mínimos locales de la función, sin embargo existen resultados que proveen condiciones necesarias y suficientes para que un punto sea un mínimo local. Teorema (condiciones necesarias y suficientes de segundo orden). Sea f una función dos veces continua diferenciable en x+ IRn . Si f(x+) = 0 y D2f(x+) es positiva definida, entonces x+ es un mínimo local estricto. Teorema. Sea f una función convexa continuamente diferenciable, entonces x+ es un mínimo global ssi f(x+) = 0. 289
Ejemplo. Considere la función:
f(x1,x2) = 3 x12 + x23 - 3/2 x22 Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
su gradiente y matriz Hessiana corresponden a:
6x1 f ( x ) 2 3 x 3 x 2 2 0 6 D f (x ) 0 6 x 3 2 2
290
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal De modo que hay dos posibles candidatos, x+ = (0, 0)T y x* = (0, 1)T, que satisfacen las condiciones necesarias de primer orden. Sin embargo
0 6 D f (x ) 0 6 x 3 2 2
sólo es positiva definida en x* = (0,1), de modo que x* es un mínimo local del problema.
291
IV.3. Problemas de optimización no restringida. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
292
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal La mayor parte de los algoritmos de optimización para abordar esta clase de problemas pertenecen a la clase de algoritmos generales de descenso que reducen el cálculo de un mínimo local a una secuencia de problemas de búsqueda lineal (o búsqueda unidimensional). Decimos que un vector d IRn es una dirección de descenso de la función f en el punto x+ ssi la derivada direccional de f en x+ en la dirección d, es negativa: x2 f(x) d
x+ -f(x)
Z=10
Z=20
x1 293
Consideremos además la función unidimensional (en una variable) g() = f(x+ + d) Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
donde es un escalar real llamado el tamaño del paso. Esta función da el valor de la función f cuando uno se mueve a partir del punto x+ en la dirección d un cierto paso . Claramente, si g’(0) = fT(x+)d < 0, es posible escoger un paso tal que: g() = f(x+ + d) < f(x+) = g(0) esto es, que reduzca el valor de la función respecto del valor actual en x+.
294
Algoritmo general de descenso 1) Considere un punto inicial x = x0. Hacer k = 0. 2) Escoger una dirección de descenso dk. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
3) Realizar una búsqueda lineal que seleccione un paso k tal que: gk(k) = f(xk + kdk) < f(xk) = gk(0) 4) Hacer xk+1 = xk + kdk. 5) Hacer un test de convergencia. Si converge parar. En caso contrario, hacer k=k+1 y volver a 2)
En el paso 5), los criterios más usuales de convergencia son que se cumpla: f(xk) f(xk+1) - f(xk)/ (1+ f(xk))
para un cierto número L de valores consecutivos de k, y donde es una tolerancia de error dada, por ejemplo = 10-4. 295
Existen varios métodos para escoger una dirección de descenso, uno de ellos es: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
Método del Descenso más Pronunciado En este método, también conocido como Método del Gradiente o Método de Cauchy, dado la actual aproximación xk, la dirección de descenso se escoge como: dk = -f(xk) Ejemplo.Considerar el problema: Min (x1 – 2)4 + (x1 – 2x2)2 sa: x1 2 x IR 2
que resolvemos usando el método del descenso más pronunciado a partir del punto x10 = 0, x20 = 3 296
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
297
Iteración k Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal xk
f(xk)
f(xk)
k
1
(0.00,3.00) 52.00 (-44.00,24.00)
0.062
2
(2.70,1.51)
0.34
(0.73, 1.28)
0.24
3
(2.52,1.20)
0.09
(0.80,-0.48)
0.11
4
(2.43,1.25)
0.04
(0.18, 0.28)
0.31
5
(2.37,1.16)
0.02
(0.30,-0.20)
0.12
6
(2.33,1.18)
0.01
(0.08, 0.12)
0.36
7
(2.30,1.14) 0.009
(0.15,-0.08)
0.13
8
(2.28,1.15) 0.007
(0.05, 0.08)
298
Otra elección posible para la dirección de descenso es la que usa el:
Método de Newton Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
Aquí el vector dk se calcula como la solución del siguiente sistema de ecuaciones: D2f(x)dk = - f(x) Sin embargo, a pesar de ser un método más eficiente que el anterior respecto de su rápidez de convergencia, requiere en cada iteración, el cálculo de las segundas derivadas parciales y la resolución de un sistema de ecuaciones. Además, dk está garantizada que es una dirección de descenso sólo si D2f(xk) es positiva definida. Al aplicar el método al ejemplo anterior se tiene:
299
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
Iteración k
f(xk)
f(xk)
1
(0.00,3.00)
52.00 (-44.00,24.00)
2
(0.67,0.33)
3.13
(-9.39,-0.04)
3
(1.11,0.56)
0.63
(-2.84,-0.04)
4
(1.41,0.70)
0.12
(-0.80,-0.04)
5
(1.61,0.80)
0.02
(-0.22,-0.04) (-0.07, 0.00)
6
(1.74,0.87)
0.05
8
(1.83,0.91) 0.0009
(-0.0003,-0.04)
300
IV.4. Problemas con restricciones de igualdad. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
El problema que se desea abordar consiste en: P)
Min s.a.
f(x) g1(x) = b1 g2(x) = b2 g m(x) = bn
mn
Definición. Decimos que x IRn es un punto regular de las restricciones del problema P) ssi: gi(x) = bi
i = 1, 2, ..., m
g1(x), g2(x), ..., gm(x) son vectores l.i. 301
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal Para presentar algunos resultados teóricos, que permiten el cálculo de mínimos locales, se introdujo la definición anterior, que se relaciona con el cumplimiento de ciertas condiciones de regularidad del problema. A continuación, introducimos la función Lagrangiana asociada a P): m
L(x, ) f (x) i (gi (x ) bi ) i1
donde 1, 2, ..., m)T representa el vector de los Multiplicadores de Lagrange. Los siguientes resultados teóricos establecen ciertas propiedades que satisface un mínimo local, las cuales muestran, en particular, que dicho punto es un punto estacionario de la función lagrangeana.
302
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal Teorema. (Condiciones necesarias de primer orden): Sean f(x) y g1(x),g2(x),...,gm(x) funciones continuamente diferenciales y sea x^ un mínimo local que además es un punto regular de las restricciones de P), entonces existe un vector λ^ IRm, de multiplicadores de Lagrange tales que: m
x L(x , ) f (x ) ^i gi (x ^ ) 0 ^
^
^
i 1
303
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal Teorema (Condiciones necesarias y suficientes de segundo orden). Sean f, g1 ,g2, ..., gm funciones dos veces continuamente diferenciables y sea x^ IRn un punto regular de las restricciones de P) que junto con λ^ IRm, satisfacen: m
xL(x , ) f (x ) ^igi (x ^ ) 0 ^
y que
^
^
m
i 1
D f (x ) ^i D2 gi (x ^ ) 2
^
i 1
es una matriz positiva definida entonces x^ es un mínimo local de P). 304
Ejemplo: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
Min
x12 x 22
sa :
x1 x 2 4
x1 2 IR x 2 Buscamos la solución óptima condiciones de optimalidad:
usando
las
305
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
f (x ) x12 x 22
;m 1
h1(x ) x1 x 2 4
f (x ) (2x1, 2x 2 )T
0 0 h1(x ) 0 0
2 0 D f (x ) 0 2
0 0 D h(x ) 0 0
2
2
306
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
Luego las condiciones de primer orden son: 2x1 + λ1 = 0 2x2 + λ1 = 0 x1 + x2 - 4 = 0 ( Factibilidad) Resolviendo el sistema: x1 = x2 = 2; λ1 = -4, luego por existencia de la solución óptima de P) se tiene que la solución óptima es : x1=2 , x2=2 307
De todos modos las condiciones de segundo orden se cumplen pues: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
2 0 0 0 2 0 0 2 1 0 0 0 2 es positiva definida. Notar que en x* se tiene:
m
f (x ) *i hi (x * ) *
i1
4
4 41 1 T
T
308
IV.5. Prob. con rest. de igualdad y desigualdad. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
Por último consideramos un problema más general de optimización: P) Min f(x) s.a. gi(x) = bi i = 1, 2, ..., m hr(x) = dr r = 1, 2, ..., l En este caso decimos que x^ es un punto regular de las restricciones del problema ssi:
309
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
gi(x^) = bi
; i = 1, 2, ..., m
hr(x^) dr
; r = 1, 2, ..., l
g1(x^), g2(x^), ..., gm(x^), hj(x^) vectores l.i.
con j { r / hr(x^) = dr }
310
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
Teorema (condiciones necesarias de primer orden de Karush-Kuhn-Tucker (KKT)). Suponga que las funciones f, g1, ..., gm, h1, ..., hl son continuamente diferenciables. Sea x^ un punto regular de P) y mínimo local del problema, entonces existen multiplicadores de lagrange: 1, 2 , ..., m y m1 , m2 , ..., ml 0 : m
f (x ) i gi (x ) ^
i 1
m r (hr (x ^ ) dr ) 0
^
l
^ m h ( x r r )0
r 1
; r 1, 2, ..., l 311
IV.6. Métodos de optimización restringida. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
a) Método de activación de restricciones Este método se aplica en esta descripción a problemas que sólo poseen restricciones de desigualdad. La idea es que si el problema no restringido tiene una solución óptima que no satisface una parte de las restricciones, se considera k restricciones como de igualdad y se resuelve este problema restringido hasta llegar a un conjunto de restricciones activas cuya solución también satisface las restricciones omitidas. 312
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal Paso1: Resuelva el problema no restringido. Si el óptimo satisface todas las restricciones parar, en caso contrario, hacer k=1 e ir al paso 2. Paso 2: Activar cualquiera de las k restricciones y hallar una solución que satisfaga las condiciones de optimalidad KKT. Si la solución resulta factible para las restantes restricciones parar. Sino, active otro conjunto de k restricciones y repita el paso. Si se han tomado todos los conjuntos de k restricciones sin hallar solución factible ir al paso 3.
313
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
Paso 3: Si k = L (# total de restricciones) no existe solución factible. En caso contrario, hacer k= k+1 e ir a paso 2.
Ejemplo. Consideremos el problema: Min (2x1 – 5)2 + (2x2 – 1)2 s.a. x1 + 2x2 2 x1, x2 0 314
El problema no restringido tiene como solución a Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
x1* = 5/2 y x2* = ½ obtenida al resolver: f(x) = 0
Claramente, este punto no satisface la restricción: h1(x1,x2) = x1 + 2x2 2. 315
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
Consideramos entonces activa la restricción lineal, esto es resolvemos: f(x1, x2) + m1 h1(x1, x2) = 0 h1 (x1, x2) = 2 Cuya solución optima es: x1^ = 22/10 = 11/5 x2^ = -1/10 m1^ = -12/5 que no satisface x2 0 316
Continuando con el método, si sólo se activa x1= 0 se llega al mínimo local: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
x1 = 0, x2 = ½
m2= 0, m1= 0, m3= 0
Notar que otro mínimo local se tiene x1 + 2x2 2 y x2 = 0 activas, obteniéndose:
con
x1 = 2, x2 = 0.
317
b) Método de Frank – Wolfe. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
Este método permite la resolución de un problema cuya función objetivo es una función convexa nolineal y cuyas restricciones son todas lineales. Este método reemplaza la función objetivo por una secuencia de funciones lineales que la aproximan, dando así origen a una secuencia de problemas de programación lineal.
318
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
Si xk es la actual aproximación a la solución óptima del problema P) Min f(x) s.a. Ax = b x0
Entonces la expansión en serie de Taylor en torno a x =xk, a saber f(x) = f(xk) + f(xk)(x – xk), permite aproximar el problema P) por el problema lineal: 319
Min f(xk) + f(xk)(x – xk) Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
s.a. Ax = b x0
o equivalentemente, eliminando los términos constantes, se puede considerar el problema: PLk) Min f(xk)x s.a. Ax = b x0 320
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
Si xPLk denota la solución óptima de PLk), este punto no necesariamente es cercano a xk de modo que es necesario proponer un punto que resulte de hacer una minimización unidimensional en el segmento que une xk con xPLk. Todo lo anterior se resume en el siguiente algoritmo:
321
Pao 0: Escoger un punto inicial factible x0. Hacer k = 1. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
Paso 1: Evaluar c= f(xk-1) Paso 2: Hallar la solución óptima xPLk del siguiente problema lineal Min cT x s.a. Ax = b x0
322
Paso 3: Para la variable [0, 1], se define Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
g() = f(xk-1 + [xPLk – xk-1]) Usar algún procedimiento de minimización unidimensional para hallar un k que aproxime la solución de Min { g() / [0, 1]}
323
Paso 4: Hacer xk = xk-1 + k (xPLK – xk-1) Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
Paso 5: Si se satisface el criterio de parada del método, parar. En caso contrario, hacer k = k + 1 y volver al Paso 1.
324
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal Ejemplo. Min sa:
x12 – 5x1 + 2x22 – 8x2 3x1 + 2x2 6 x1, x2 0
Iteración k x k-1 f(x k-1)
xLPk
xk
k
(0, 2)
2/3
1
(0, 0)
(-5, -8)
(0, 3)
2
(0, 2)
(-5, 0)
(2, 0) (5/6, 7/6) 5/12
325
BIBLIOGRÁFIA EN PROGRAMACIÓN NO LINEAL Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal
1. Nonlinear Programming, M.Bazaraa, H.Sherali and C.Shetty. John Wiley & Sons, Inc., New York, Second Edition 1993. 2. Nonlinear Programming, D.Bertsekas. Athena Scientific USA, 1995. 3. Numerical Methods for Unconstrained Optimization and Nonlinear Equations, J.Dennis and R.Schnabel. SIAM Classics in Applied Mathematics 16. SIAM Publications, Philadelphia, 1996. 4. Practical Methods of Optimization, R.Fletcher. John Wiley & Sons, Inc., 1981. 5. Introducción a la Programación Lineal y No Lineal, D.Luenberger. Adisson Wesley Iberoamericana 1989. 6. Mathematical Programming: Theory and Algorithms, M.Minoux. John Wiley & Sons, Inc., New York, 1986 7. Optimization Software Guide, J.Moré and S.Wright, SIAM Frontiers in Applied Mathematics 14, SIAM Publications, Philadelphia 1993. 326
DIRECCIONES ELECTRÓNICAS EN LINEAL Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
II. Modelos de Programación Matemática Programación No - lineal PROGRAMACIÓN NO
Preguntas de consulta frecuente en Programación No Lineal: http://www-unix.mcs.anl.gov/otc/Guide/faq/nonlinear-programming-faq.html
Servidor NEOS, guía de software de Programación No Lineal : http://www-fp.mcs.anl.gov/otc/Guide/SoftwareGuide/Categories/unconstropt.html http://www-fp.mcs.anl.gov/otc/Guide/SoftwareGuide/Categories/constropt.html
Servidor NEOS, ejemplo problema de carteras de inversión: http://www-fp.mcs.anl.gov/otc/Guide/CaseStudies/port/index.html
Guía de software de Programación No Lineal en revista OR&MS Today (INFORMS Magazine): http://lionhrtpub.com/software-surveys.shtml
327
Contenidos Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
III. Programación Dinámica
III. Programación Dinámica
328
III. Programación Dinámica Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
III. Programación Dinámica
La programación dinámica se utiliza tanto en problemas lineales
como no lineales. La programación dinámica es útil para resolver un problema donde se deben tomar una serie de decisiones interrelacionadas. A diferencia de la P.L., la programación dinámica no tiene formulación matemática estándar. Se trata de un enfoque de tipo general para la solución de problemas, y las ecuaciones se derivan de las condiciones individuales de los mismos.
329
El problema de la diligencia Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
III. Programación Dinámica
Un cazafortunas desea ir de Missouri a California en una diligencia, y quiere viajar de la forma más segura posible. Tiene los puntos de salida y destino conocidos, pero tiene múltiples opciones para viajar a través del territorio. Se entera de la posibilidad de adquirir seguro de vida como pasajero de la diligencia. El costo de la póliza estándar (Cij) se muestra en la tabla de la siguiente página. ¿Cuál es la ruta que minimiza el costo de la póliza de seguro?
330
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
III. Programación Dinámica
331
Algunas Alternativas de Solución 1. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
III. Programación Dinámica
2.
3.
Enumeración exhaustiva: enumerar todas las rutas posibles, calcular su costo y elegir la de menor valor. En total son 18. Elegir la ruta más barata en cada etapa. Esta solución no necesariamente conduce al óptimo global. Un pequeño sacrificio en una etapa puede permitir mayores ahorros más adelante Programación Dinámica:
Estrategia de solución: un problema complejo es desagregado en problemas más simples que se resuelven etapa por etapa En el caso de la diligencia un problema simple sería pensar qué pasaría si al viajero sólo le faltara una etapa del viaje 332
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
III. Programación Dinámica Por P.D. la solución sería entonces ir desde el estado actual (i cualquiera que sea) y llegar a su destino final (estado J) al costo cij. Se hace lo mismo para cada jornada (etapa), ensanchando el problema. Así encontramos la solución óptima del lugar al que debe dirigirse teniendo en cuenta la información de la iteración anterior.
Formulación Sea Xn ( n = 1,2,3,4 ) las variables que representan el destino inmediato en la etapa n. A → X1 → X2 → X3 → X4 Donde X4 = J Sea fn (S, Xn) el costo total de la mejor política global para las etapas restantes, dado que el agente se encuentra en el estado S, listo para iniciar la etapa n y se dirige a Xn como destino inmediato.
333
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
III. Programación Dinámica Dados S y n , sea Xn* el valor de Xn (no necesariamente único), que minimiza fn (S , Xn) , y sea fn*(S) el valor mínimo correspondiente de fn (S, Xn) entonces: fn* (S) = Min Xn fn(S, Xn) = fn(S, Xn*)
fn(S, Xn)
= =
Costo Mínimo costo Inmediato + futuro (etapa (etapa n) n+1 en adelante) cs , xn
+
↓ Costo por ir de la ciudad i al destino j
fn+1* (Xn) ↓ Costo óptimo acumulado
334
Etapa n=4 Como el destino final (estado J) se alcanza al terminar la etapa 4, entonces Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
III. Programación Dinámica
f5*(J) = 0 El objetivo es hallar f1*(A) y su ruta correspondiente. Cuando el cazafortunas tiene sólo una etapa por recorrer (n=4) , su ruta de ahí en adelante, estará determinada por el estado actual (H o I) y su destino final X4=J La ruta será: S →J donde S= H o I Luego f4*(S) = cS,J + f5*(J) = cS,J f4(H) = cH,J = 3 f4(I) = cI,J = 4
335
Etapa n=3 El cazafortunas tiene 2 etapas por recorrer (n=3). Suponga que sale de E. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
III. Programación Dinámica
Luego f3*(E) = 4 y X3* = H En general para la etapa 3 se tiene:
336
III. Programación Dinámica En la segunda etapa, el cazafortunas tiene 3 jornadas por recorrer (n=2). Suponga que sale de C. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
Etapa n=2
Luego f2*(C) = 7 y X2* = E En general para la etapa 2 se tiene:
337
III. Programación Dinámica En la primera etapa, el cazafortunas tiene todas las jornadas por recorrer (n=1). Necesriamente debe salir de A. Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
Etapa n=1
Luego f1*(A) = 11 y X1* = C ó D Veamos:
338
La solución del problema gráficamente
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
III. Programación Dinámica
Podemos ver que hay 3 soluciones óptimas
339
III. Programación Dinámica
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
Características de la P.D. 1. El problema se puede dividir por etapas, que requieren una política de decisión en cada una de ellas. 2. Cada etapa tiene un cierto número de estados asociados a su inicio. (Estados son las diferentes condiciones posibles en las que se puede encontrar el sistema en cada etapa del problema). 3. El efecto de la política de decisión en cada etapa, es transformar el estado actual en un estado asociado con el INICIO de la siguiente etapa. 4. El procedimiento pretende hallar la política óptima para el problema completo. Esto quiere decir, la política a emplear desde cualquier posible estado del problema. 5. Dado el estado actual, la política óptima desde este estado es independiente de las políticas adoptadas en las etapas anteriores. (la solución depende únicamente del estado actual y no de cómo se llegó allí) PRINCIPIO DE OPTIMALIDAD EN LA P.D., (Richard Bellman, 1957)
340
III. Programación Dinámica cont….
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
Características de la P.D.
6. El procedimiento de la solución termina cuando se obtiene la política óptima de la última etapa (por lo general la solución en esta etapa es trivial) 7. Siempre se dispone de una relación recursiva (esto es lo que permite trabajar las decisiones interrelacionadas). La relación recursiva será: fn* (Sn)= Max Xn { fn (Sn, Xn) }
ó
fn* (Sn)= Min Xn { fn (Sn, Xn) }
Donde: N: Número de etapas n: etiqueta para la etapa actual (n=1,2,3,…N) Sn: Estado actual para la etapa n Xn: Variable de decisión para la etapa n
341
III. Programación Dinámica cont….
8.Cuando se tiene una relación recursiva como la de la función, el procedimiento de solución “hacia atrás” inicia en la última etapa y se mueve hacia la primera, etapa por etapa Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
Características de la P.D
Xn* : Valor óptimo de Xn dado Sn
342
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
III. Programación Dinámica
ALGORITMO DE P.D. HACIA ATRÁS: Para cada valor probable de la variable de estado al inicio de la etapa, determinar el mejor estado final
ALGORITMO DE P.D. HACIA ADELANTE: Para cada valor probable de la variable de estado al final de la etapa, determinar el mejor estado inicial
343
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
• Esta es una nueva herramienta que nos ayuda INTRODUCCIÓN resolución de los diferentes tipos de problemas.
en la
• Así el objetivo es de minimizar costes y/o maximizar los
beneficios. • Estando dados de la siguiente forma:
optimizar f ( x) con las restriccio nes hi ( x) bi hi ( x) bi h ( x ) b i i
i 1.....l i 1.....m i 1.....n
Investigación de Operaciones
INTRODUCCIÓN Ing. Rodrigo Sempértegui Álvarez
Un algoritmo eficiente que se puede utilizar es el simplex. Para el caso de tener muchas variables este ya no resulta eficiente, por el tiempo que requiere para realizar los cálculos.
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
INTRODUCCIÓN Existen los llamados Problemas de Optimización Combinatorios que contienen variables de decisión enteras y el espacio de soluciones está formado por ordenaciones o subconjuntos de números naturales. Los más conocidos son: Problema de la mochila Problema del viajante
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
Knapsack problem-De la Consiste en: mochila Seleccionar de entre un conjunto de n productos, cada uno con un valor ci y un volumen vi. Determinando aquellos que quepan en un recipiente con volumen V y que tengan el mayor valor posible. Así se determina un subconjunto para el cual:
| * 1..n
c
i
i
max ci i 1..n
i
con la restricció n
v V i
i
Investigación de Operaciones
Knapsack problem-De la mochila Ing. Rodrigo Sempértegui Álvarez
xi toma el valor de 1 cuando el item se introduce en la mochila xi toma el valor de n0 en caso contrario.
Así:
max ci xi i 1
con las restriccio nes n
v x i 1
i
i
V
xi 0,1
i 1..n
Investigación de Operaciones
Travelling Salesman Problem(TSP) Ing. Rodrigo Sempértegui Álvarez
Dado un mapa de carreteras, se desea visitar n
ciudades de forma que se recorra el menor número de kilómetros y solo se visite una sola vez cada ciudad. 6 Solución Optima es la ruta
15
<1, 6, 3, 4, 2, 5>
20
1
16
7
Con un coste de 61km.
3 12
20
16
7
8
5 9
2
21 10
4
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
Problemas de tipo combinatorio La enumeración completa
del conjunto de soluciones y la generación del conjunto de soluciones factibles no es eficiente.
El tiempo de cálculo crece exponencialmente con
el número de ítems del problema.
Investigación de Operaciones
Problema de la mochila Ing. Rodrigo Sempértegui Álvarez
Para el problema de la mochila el número de
subconjuntos del conjunto {1..n} es 2n
Si un computador pudiese generar en un segundo un
millón de esos subconjuntos el tiempo para hallar la solución sería: Con n = 20, 220 = un segundo. Con n = 40, 240 = dos semanas. Con n = 60, 260 = 365 siglos.
Investigación de Operaciones
Problemas P Ing. Rodrigo Sempértegui Álvarez
Aquellos para los cuales se conocen algoritmos que
necesitan un tiempo polinominal para ofrecer una solución óptima.
Son resolubles eficientemente.
Investigación de Operaciones
Problemas NP Ing. Rodrigo Sempértegui Álvarez
Aquellos para los cuales no se conoce un algoritmo
polinomial de resolución. No son algorítmicamente resolubles eficientemente. P es un subconjunto de NP:
P NP
Investigación de Operaciones
Problemas NP-completos Ing. Rodrigo Sempértegui Álvarez
La mayoría de problemas de interés empresarial son
NP-completos.
No se ha podido encontrar algoritmos eficientes para la
resolución de problemas NP-completos.
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
Investigación de Operaciones
HEURÍSTICAS Ing. Rodrigo Sempértegui Álvarez
Del griego heuriskein que significa encontrar. Son algoritmos que ofrecen soluciones factibles, que aunque no optimicen la función objetivo, se supone que al menos se acercan al valor óptimo.
Las heurísticas son utilizadas como una herramienta útil que da soluciones a problemas reales.
Investigación de Operaciones
HEURÍSTICAS Ing. Rodrigo Sempértegui Álvarez
Definición: “Procedimientos simples, a menudo basados en el sentido común, que se supone ofrecerán una buena solución (aunque no necesariamente la óptima) a problemas difíciles, de un modo fácil y rápido” Zanakis, Evans 1981
Factores para la utilización de métodos heurísticos: Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
HEURÍSTICAS Cuando no existe un método exacto de resolución o éste requiere mucho tiempo de cálculo o memoria. b. Cuando no se necesita la solución óptima. c. Cuando los datos son poco fiables. d. Cuando las hay limitaciones de tiempo, espacio, etc. e. Como paso intermedio en la aplicación de otro algoritmo. a.
Investigación de Operaciones
HEURÍSTICAS Ing. Rodrigo Sempértegui Álvarez
Ventajas: Permiten mayor flexibilidad para el manejo de las características del problema. Ofrecen más de una solución.
Investigación de Operaciones
Inconvenientes:
HEURÍSTICAS Ing. Rodrigo Sempértegui Álvarez
No es posible conocer la calidad de la solución. Existen métodos para realizar acotaciones. Un
procedimiento es el de relajar el problema, de manera que sea más fácil de resolver.
Cuando estos procedimientos no son posibles, se puede
utilizar métodos que indican que la heurística no es buena.
Siempre una técnica exacta es mejor que cualquier tipo de
heurística.
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
Investigación de Operaciones
Ing. Rodrigo Sempértegui Álvarez
MÉTODOS CONSTRUCTIVOS TIPOS DE HEURÍSTICAS
MÉTODOS DE DESCOMPOSICIÓN MÉTODOS DE REDUCCIÓN MANIPULACIÓN DEL MODELO
MÉTODOS DE BÚSQUEDA POR ENTORNOS
Investigación de Operaciones
Ing. Rodrigo Sempértegui Álvarez
MÉTODOS CONSTRUCTIVOS Añaden paulatinamente
componentes individuales a la solución, hasta que se obtiene una solución factible. ALGORITMOS
(GREEDY)
GOLOSOS O DEVORA-DORES
(“Divide y vencerás”) Dividen el problema en Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
MÉTODOS DE DESCOMPOSICIÓN subproblemas más pequeños, siendo el output de uno el input de otro. APLICACIÓN A UN PROBLEMA DE
PROGRAMACIÓN LINEAL MIXTA.
Investigación de Operaciones
MÉTODOS DE REDUCCIÓN Ing. Rodrigo Sempértegui Álvarez
Identifican
alguna característica que presumiblemente deba poseer la solución óptima.
Investigación de Operaciones
MANIPULACIÓN DEL MODELO Ing. Rodrigo Sempértegui Álvarez
Modifican
la estructura del modelo, haciéndolo más sencillo de resolver, y deduciendo de su solución, la solución del problema original. REDUCIR EL ESPACIO DE SOLUCIONES AUMENTAR EL ESPACIO DE SOLUCIONES
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
MÉTODOS DE BÚSQUEDA POR ENTORNOS Partiendo de una solución factible inicial, y mediante alteraciones de esa solución, pasan de forma iterativa a otras soluciones factibles de su
entorno. CRITERIO DE PARADA ALMACENAMIENTO DE SOLUCIÓN ÓPTIMA. PASO DE UNA SOLUCIÓN FACTIBLE A OTRA.
(NEIGHBORHOOD)
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
MÉTODO DE BÚSQUEDA LOCAL O DE DESCENSO
En cada iteración se pasa de una solución actual a una de su entorno que sea mejor que ella, finalizando cuando todas las soluciones del entorno sean peores. OPTIMOS LOCALES.
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
EJEMPLO DE FUNCIÓN CON UN ÓPTIMO LOCAL
Solución inicial
Óptimo local
Xi-2 Xi-1
Xi
Xi+1
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
Investigación de Operaciones
Recocido Simulado Ing. Rodrigo Sempértegui Álvarez
Recocer: Proceso térmico para obtener estados de baja energía en
un sólido, mediante un baño térmico.
Para cada temperatura durante el proceso de recocido, el sólido puede alcanzar el equilibrio térmico solo si el enfriamiento se produce lentamente. Caso contrario puede llegar a estados metaestables.
Investigación de Operaciones
Recocido Simulado La evolución de un sólido en el baño térmico puede ser Ing. Rodrigo Sempértegui Álvarez
simulado mediante el algoritmo de la Metrópolis, basado en las técnicas Monte Carlo. Realiza en paso de un estado a otro según: Si el estado generado posee una energía menor que el estado que actualmente se tiene, se acepta el estado generado como actual. Caso contrario el estado se aceptará con una determinada probabilidad, la cual está en función de:
La temperatura La diferencia entre los dos niveles de energía.
Investigación de Operaciones
Algoritmos genéticos Ing. Rodrigo Sempértegui Álvarez
“Técnicas de búsqueda basadas en la mecánica de la
selección natural y genética” [Goldberg, 1989]
Los algoritmos genéticos son flexibles y pueden ser
aplicados en un amplio número de problemas.
Investigación de Operaciones
Algoritmos genéticos Ing. Rodrigo Sempértegui Álvarez
En los algoritmos biológicos, la información hereditaria es pasada a través de los cromosomas o genes, los cuales a su vez están formados de un determinado número de valores (alelos). Los organismos pueden agruparse formando
poblaciones, los que mejor se adaptan tienen mayor probabilidad de sobrevivir y reproducirse.
Investigación de Operaciones
Algoritmos genéticos Ing. Rodrigo Sempértegui Álvarez
Los alelos pueden representar valores de las variables de decisión, que se corresponderán con los genes. Los cromosomas representan las soluciones. Los algoritmos genéticos, trabajan sobre una población de soluciones generando una nueva en cada iteración.
Investigación de Operaciones
Ing. Rodrigo Sempértegui Álvarez
Búsqueda Tabú Los orígenes
de la búsqueda tabú se ubican a fines de los 60s y principios de los 70s.
Se atribuye a Fred Glover, quien desarrolló esta
heurística para tratar de resolver problemas de cubierta no lineal, aunque varios de sus principios también fueron delineados independientemente por P. Hansen .
El uso de estructuras flexibles de memoria basadas en atributos,
diseñadas para permitir una mejor explotación de los criterios de evaluación y la información histórica de la búsqueda que se conseguiría con estructuras rígidas de memoria o con sistemas carentes de memoria
Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
Búsqueda Tabú
Un mecanismo asociado de control basado en la interacción entre las
condiciones que limitan y hacen más flexible el proceso de búsqueda. Este mecanismo se encuentra inmerso en la técnica en la forma de restricciones y criterios de aspiración
La incorporación de memorias de diferente duración (de corto a largo
plazo), para implementar estrategias que intensifiquen y diversifiquen la búsqueda. Las estrategias de intensificación refuerzan las propiedades de las combinaciones de movimientos que han demostrado ser buenas, mientras que las estrategias de diversificación dirigen la búsqueda hacia nuevas regiones del espacio de soluciones factibles.
Investigación de Operaciones
Una entre las metaheurísticas más exitosas que
GRASP aparecieron en los últimos años del siglo pasado es Ing. Rodrigo Sempértegui Álvarez
GRASP.
un método multiarranque diseñado para resolver
problemas difíciles en optimización combinatoria. En su versión básica cada iteración consiste en dos fases: una fase constructiva cuyo producto es una solución factible buena, aunque no necesariamente un óptimo local, y una búsqueda local, durante la cual se examinan vecindades de la solución, al llegar a un óptimo local la iteración termina.
La iteraciones continúan, guardando la mejor solución
encontrada en cada una de ellas, hasta que se alcanza un criterio de terminación.
Investigación de Operaciones
Una de las misiones en una red neuronal consiste en simular las propiedades observadas en los sistemas neuronales biológicos a través de modelos matemáticos recreados mediante mecanismos artificiales
Ing. Rodrigo Sempértegui Álvarez
Redes Neuronales
Una red neuronal se compone de unidades llamadas
neuronas. Cada neurona recibe una serie de entradas a través de interconexiones y emite una salida. Esta salida viene dadas por 3 enlaces: Enlace Sináptico Enlace de Activación Enlace de Transferencia
Enlace Sináptico: que por lo general consiste en la Ing. Rodrigo Sempértegui Álvarez
Investigación de Operaciones
Redes Neuronales sumatoria de cada entrada multiplicada por el peso de su interconexión (valor neto). Si el peso es positivo, la conexión se denomina excitatoria; si es negativo, se denomina inhibitoria.
Enlace de activación: que modifica a la anterior.
Puede no existir, siendo en este caso la salida la misma función de propagación.
Enlace de transferencia: que se aplica al valor
devuelto por la función de activación. Se utiliza para acotar la salida de la neurona y generalmente viene dada por la interpretación que queramos darle a dichas salidas