ANALISIS DE SENSIBILIDAD CON GAMS-CPLEX

Documentos relacionados
ANALISIS DE SENSIBILIDAD CON GAMS-CPLEX

EJERCICIO DE PROGRAMACIÓN LINEAL Y PROGRAMACIÓN LINEAL ENTERA CON GAMS

PROGRAMACION LINEAL. Identificación de las soluciones con GAMS

TC3001: Optimización y Programación Lineal Examen Final Solución Profr. Eduardo Uresti, Agosto-Diciembre 2008

Vamos a ver un ejemplo muy sencillo de este tipo de problema.

Programación Lineal y Optimización Segundo Examen Parcial Profr. Eduardo Uresti, enero-mayo 2013

Optimización y Programación Lineal

UNIVERSIDAD TECNOLÓGICA NACIONAL FACULTAD REGIONAL ROSARIO INVESTIGACIÓN OPERATIVA PRÁCTICA: ANÁLISIS DE SENSIBILIDAD DUALIDAD PARAMETRIZACIÓN

Programación Lineal y Optimización Segundo Examen Parcial:Solución Profr. Eduardo Uresti, Enero-Mayo 2012

Programación Lineal y Optimización Segundo Examen Parcial Respuesta: :Solución Profr. Eduardo Uresti, Agosto-Diciembre 2011

Datos técnicos y económicos A B B B C C C Coste variable por min (um)

XXI Seminario de Ingeniería Química 2003 Instituto Tecnológico de Celaya

MATEMÁTICAS II Examen del 2/12/2004 Solución Importante

Práctica de informática del programa LINDO

EXTENSIONES DE LA PROGRAMACIÓN LINEAL

ANALISIS DE SENSIBILIDAD

Programación Lineal y Optimización Segundo Examen Parcial :Solución Profr. Eduardo Uresti, Verano 2009

Programación Lineal y Optimización Segundo Examen Parcial Respuesta: :Solución Profr. Eduardo Uresti, Enero-Mayo 2011

LINGO - Parte 3. Análisis de sensibilidad con LINGO

TEST IO-I T1. CONCEPTOS PREVIOS. C1.1. Cualquier conjunto convexo tiene al menos un punto extremo?

CAPITULO 14: GAMS INSTALACION DE GAMS

LINDO: Explicación del significado de los resultados obtenidos mediante el software LINDO

EJERCICIOS DE ANALISIS DE SENSIBILIDAD

PLATEJAMENT: 20 pollos 1 metro cuadrado 1 pollo 1/20 m 2 = conejo 1/10 m 2 = lechón ½ m 2 = 0.5. Restricciones:

Resolvamos los modelos de una vez por todas (aunque tengan más de dos variables) Usaremos el Método Simplex, desarrollado por George Dantzig en 1947

WinQSB. Módulo de Programación Lineal y Entera. Al ejecutar el módulo Linear and Integer Programming, la ventana de inicio es la siguiente:

Un atributo expresa las características del centro decisor, que son medibles con independencia del mismo.

MA37A. Software para Programación Lineal

1. Análisis de la situación Objetivo Hipótesis... 3

Min. 2x + 4y + 11z Coste s.a x + 2y + 5z 300 horas en la primera fase 3x + 2y + 2z 200 horas en la segunda fase x, y, z 0

Curso 2018 Segundo Cuatrimestre

CAPITULO 6: PROBLEMAS DE TRANSPORTE

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE CÓMPUTO. Modelado y Análisis M. EN C. EDUARDO BUSTOS FARÍAS

CUADERNO DE PRÁCTICAS DE ORDENADOR CON GAMS

WinQSB. Módulo de Programación Lineal y Entera. Al ejecutar el módulo Linear and Integer Programming, la ventana de inicio es la siguiente

Programación lineal Optimización de procesos químicos DIQUIMA-ETSII

UNIVERSIDAD PERUANA LOS ANDES NEGOCIOS APLICATIVO - WINQBS

Introducción a la Optimización profesor Ángel Marín Departamento Matemática Aplicada y Estadística Universidad Politécnica de Madrid

Método de las gran M. Éste método añade variables artificiales, que no deben de aparecer en la solución óptima final

Introduction to Optimization Ángel Marín. First Laboratory Lecture Gams and Cplex Introduction

6. Análisis Paramétrico

B. Sistema de modelado algebraico

Min 2x x 2 2 2x 1 x 2 6x 2 4x 1 s.a. x x 2 2 = 1 x 1, x 2 0

Herramientas computacionales para la Programación n Lineal

Empresa: Red de Distribución del Centro de Distribución

Programación lineal Optimización de procesos químicos DIQUIMA-ETSII

PROGRAMACION LINEAL ENTERA CON GAMS. 1.- Problemas binarios 2.- Problemas enteros. Criterio de optimalidad 3.- Problema de localización de plantas

DUALIDAD EN PROGRAMACIÓN LINEAL CON LINDO

Desarrollar un modelo Lingo. Para desarrollar un modelo de optimización en Lingo hay que especificar:

Correspondencias en la numeración de los ejercicios. Edición 2006 Edición 2004 Edición 2006 Edición 2004

C APÍTULO 3 DUALIDAD Introducción

Programación lineal. Optimización de procesos químicos

Introducción al programa WinQSB

LINGO - Parte 1. Introducción a LINGO

RESOLUCIÓN DE PROBLEMAS DE PROGRAMACIÓN LINEAL EN MATEMÁTICAS APLICADAS A LAS CIENCIAS SOCIALES CON LA HOJA DE CÁLCULO CALC

MÉTODO SIMPLEX. Es un método genérico de solución de problemas lineales, desarrollado por George Dantzig en 1947.

Estructura de un modelo GAMS (1/3)

Contenido. Lenguajes de modelado algebraico Ejemplo Problema de Transporte Modelado con GNU GLPK. 1 Modelado Algebraico Computacional

BREVE MANUAL DE WINQSB PROFESOR: DAVID LAHOZ ARNEDO

1. Defina el problema de particionamiento. Escriba un ejemplo de este tipo de problema, junto con su formulación general en AMPL.

Análisis de sensibilidad en Modelos lineales:

UNIDAD 5. Problema de Transporte

AMPL CPLEX para resolver problemas lineales enteros de optimización. Víctor Bucarey López IN3701 Modelamiento y Optimización Otoño 2014

ANÁLISIS DE SENSIBILIDAD CON EXCEL Y LINDO

Optimización bajo Incertidumbre A. Sistema de modelado algebraico - GLPK

Minimización De Pérdidas En Media Tensión Con Intervención De Generadores Dispersos En El Control ANEXO I: PROGRAMA GAMS

UNIVERSIDAD DE PUERTO RICO Facultad de Administración Empresas Departamento de Gerencia PRIMER EXAMEN SIMPLEX I N S T R U C C I O N E S:

OPTIMIZACIÓN ECONÓMICA CON GAMS Casasus, T.; Mocholi, M.; Sanchis, V. y Sala, R. 1

TOMA DE DECISIONES CON GAMS 1

a) Plantee el problema multiobjetivo de la empresa, obtenga los óptimos individuales y la matriz de pagos.

APÉNDICE 1: Hojas de Cálculo y LINGO

PROPUESTAS PARA ANALIZAR LOS PRECIOS SOMBRA EN LAS AULAS. Lourdes Canós 1 Teresa León 2 Vicente Liern 1

3 de abril de $ wget 5.5.orig.tar.gz

Constrained static optimization in economics: methods, algorithms and implementation in the general algebraic modeling system

UNIVERSIDAD DE MANAGUA Al más alto nivel

Caso Corporación Desarrollo Winston Salem

Análisis de sensibilidad. M. En C. Eduardo Bustos Farias

La Función objetivo es: MAX 1.08XA XB XC XD1. Año 3 Año 4 B1 B2 B3. Año 1 Año 2

Tema No. 5 Programación Lineal Entera. Introducción

Programación Lineal. Supuestos del modelo

Introduction to Optimization Ángel Marín. Second Laboratory Lecture options, file input-output, dollar,

(2.a) INTRODUCCIÓN A LA FORMULACIÓN DE MODELOS LINEALES

Introducción.- Problema dual.-

PROBLEMA DE PROGRAMACIÓN LINEAL RESUELTO POR MÉTODO SIMPLEX

Facultad de Ciencias Económicas, Jurídicas y Sociales - Métodos Cuantitativos para los Negocios

Modelamiento de problemas de optimización con AMPL

Optimización lineal con R José R. Berrendero

La Programación Lineal. H. R. Alvarez A., Ph. D. 1

Buscar en la Ayuda. Más en Office.com: Descargas Plantillas

PROGRAMACIÓN MATEMÁTICA

M. En C. Eduardo Bustos as

FECHA DE ENTREGA DE LAS ESPECIFICACIONES AL ESTUDIANTE: Adjunto a la Primera Prueba Parcial

Para conocer la conveniencia de la aplicación SOLVER de EXCEL Microsoft, se utilizará un ejemplo práctico:

Software para PL. M. En C. Eduardo Bustos Farías. Investigación de Operaciones 1

Guía básica de LINGO. software de optimización matemática

Introducción a la Programación n Lineal Problemas de dos variables

OPTIMIZACION DETERMINISTICA

Transcripción:

ANALISIS DE SENSIBILIDAD CON GAMS-CPLEX Un de los principales inconvenientes de GAMS a la hora de su aplicación total en los módulos de practicas de las materias de Programación Matemática y similares ha sido la falta de análisis de sensibilidad en los problemas lineales. La ultima versión STUDENT de GAMS incorpora todos los solvers disponibles, aunque con las limitaciones relativas al numero de variables y elementos. La inclusión de todos los solvers hace posible que pueda superarse esta limitación con respecto al análisis de sensibilidad en programación lineal, ya que hay dos solvers (CPLEX y OSL) que si permiten incorporar la opción de análisis de sensibilidad mediante la creación de un fichero de opciones. En nuestro caso usaremos CPLEX. Definición del solver. Una vez instalado el programa GAMS, se pueden definir una serie de opciones, y de entre ellas merece destacar la elección de los solvers que, por defecto, usara GAMS. Así dentro de la opción File elegimos la característica Options, y nos aparece una cuadro de dialogo como el contenido en el gráfico 1. Dentro de él y en la posibilidad de elegir el solver para cada tipo de problema, dentro de la programación lineal LP, y de entre todos los posibles (marcados con ) seleccionamos (con doble click) el solver que deseamos y entonces cambia y parece una X en esa casilla. También es posible omitir esta selección y definir dentro del fichero GMS el solver que deseamos. Esta selección dentro del fichero de entrada es conveniente cuando no podemos asegurar que instalación por defecto tiene el ordenador.

Gráfico 1 Aunque el análisis de sensibilidad de GAMS es un poco más complejo que con LINDO, la ventaja de unificar en un único programa todas las modalidades de problemas de optimización compensa, desde mi punto de vista, esta desventaja. El análisis de sensibilidad se puede realizar sobre los términos independientes y los coeficientes de la función objetivo. El solver CPLEX los realiza de forma conjunta.

Análisis de Sensibilidad de los términos independientes o RHS. Para pode explicar el análisis de sensibilidad con GAMS lo mejor es proceder con un ejemplo. (Fuente: Decisiones de Optimización. Pág 301 y sig.) 10.2.- Un fabricante de muebles con la factoría y trabajadores que tiene actualmente puede producir comedores, dormitorios, y librerías y mesas para oficina, de distintos modelos cada uno de ellos simplemente variando determinados tipos de molduras, y cambiando el color del pulimento. La empresa está distribuida en tres secciones: Sección de preparado con 25 trabajadores, donde se cortan y tornean las piezas de madera y se chapan las piezas que lo requieren. Sección de manufacturado que cuenta con 18 operarios, donde se lijan, se ajustan y se montan todos los muebles para comprobar que todas las piezas encajan de forma adecuada. Sección de pulimentado y calidad con 10 trabajadores, donde se pulimentan los muebles y se comprueba que no existe ningún defecto. Todos los trabajadores de la empresa realizan una jornada laboral de ocho horas diarias. El tiempo en horas/operario que requiere cada tipo de mueble viene dado por la siguiente tabla: Preparado Manufacturado Pulimento Comedores (C) 8 6 4 Dormitorios (D) 6 3 2 Librerias (L) 4 2 2 Mesas (M) 2 1 2 El beneficio que obtiene la empresa por cada tipo de mueble es de 20.000 ptas, 14.000 ptas, 8.000 ptas y 4.000 ptas respectivamente. Obtener la producción diaria a realizar de cada tipo de mueble. Realizar el analisis de sensibilidad de la solución. Solución: El planteamiento matemático del problema y su solución se han obtenido en el capítulo 9 y son: Max F(x) = 20000 C + 14000 D + 8000 L + 4000 M s.a: 8 C + 6 D + 4 L + 2 M 200 6 C + 3 D + 2 L + 1 M 144 4 C + 2 D + 2 L + 2M 80 C 0,D 0,L 0,M 0

La tabla del simplex seria: 20000 14000 8000 4000 0 0 0 C D L M S1 S2 S3 14000 D 0 1 0-1 1/2 0-1 20 0 S2 0 0-1 -2 0 1-3/2 24 20000 C 1 0 1/2 1-1/4 0 3/4 10 W j 0 0-2000 -2000-2000 0-1000 480000 para LINDO: Una primera forma de solucionar este problema sería generando un fichero LTX MAX 20000 COM + 14000 DOR + 8000 LIB + 4000 MESA ST PREP) 8 COM + 6 DOR + 4 LIB + 2 MESA < 200 MANUF) 6 COM + 3 DOR + 2 LIB + MESA < 144 PUL) 4 COM + 2 DOR + 2 LIB + 2 MESA < 80 END La solución, incluyendo el análisis de sensibilidad sería: LP OPTIMUM FOUND AT STEP 2 OBJECTIVE FUNCTION VALUE 1) 480000.0 VARIABLE VALUE REDUCED COST COM 10.000000 0.000000 DOR 20.000000 0.000000 LIB 0.000000 2000.000000 MESA 0.000000 2000.000000 ROW SLACK OR SURPLUS DUAL PRICES PREP) 0.000000 2000.000000 MANUF) 24.000000 0.000000 PUL) 0.000000 1000.000000 NO. ITERATIONS= 2 RANGES IN WHICH THE BASIS IS UNCHANGED: OBJ COEFFICIENT RANGES VARIABLE CURRENT ALLOWABLE ALLOWABLE COEF INCREASE DECREASE COM 20000.000000 8000.000000 1333.333374 DOR 14000.000000 1000.000000 4000.000000 LIB 8000.000000 2000.000000 INFINITY MESA 4000.000000 2000.000000 INFINITY RIGHTHAND SIDE RANGES ROW CURRENT ALLOWABLE ALLOWABLE RHS INCREASE DECREASE PREP 200.000000 40.000000 40.000000 MANUF 144.000000 INFINITY 24.000000 PUL 80.000000 16.000000 13.333333

De la solución anterior, se hace necesario establecer cual es el rango de variación para cada uno de los términos independientes. Así, Preparado, entre 160 y 240 Manufacturado, entre 120 e infinito Pulido, entre 66.67 y 96 La alternativa a resolver con GAMS, pasa por generar un fichero GMS (realizado con las opciones de SET y PARAMETER) valdría de la misma forma usando todas las variables. El fichero es: * PROBLEMA LINEAL PARA SENSIBILIDAD SET J / COMEDOR, DORMIT, LIBRER, MESA/; SET I / PREPAR, MANUF, PULIM/; PARAMETER C(J) / COMEDOR 20000 DORMIT 14000 LIBRER 8000 MESA 4000 /; PARAMETER B(I) / PREPAR 200 MANUF 144 PULIM 80 /; TABLE A(I,J) COMEDOR DORMIT LIBRER MESA PREPAR 8 6 4 2 MANUF 6 3 2 1 PULIM 4 2 2 2 ; VARIABLES X(J), Z; POSITIVE VARIABLES X; EQUATIONS OBJ, RESTRIC(I); OBJ.. Z=E= SUM(J, C(J)*X(J)); RESTRIC(I).. SUM(J, A(I,J)*X(J)) =L= B(I); MODEL MUEBLES /ALL/; OPTION LP = CPLEX; MUEBLES.DICTFILE = 4; MUEBLES.OPTFILE = 1; SOLVE MUEBLES USING LP MAXIMIZING Z ; DISPLAY X.L, X.M;

La variación respecto de un fichero convencional de GAMS es la inclusión de una serie de opciones sobre el solver 1 (CPLEX con OPTION LP = CPLEX;), y crear un fichero de opciones (MUEBLES.OPTFILE = 1;), y que se use un fichero DCIT (MUEBLES.DICTFILE = 4;) para guardar los nombres. EL fichero de opciones debe ser <nombre modelo>.optfile (en este caso seria: MUEBLES.OPTFILE = 1;) es objrng all rhsrng all En el fichero se ha escrito: objrng all y rhsrng all que significa que queremos el análisis del rango de los coeficientes de la función objetivo y de los términos independiente. Al ejecutar el fichero, obtenemos la solución siguiente: S O L V E S U M M A R Y MODEL MUEBLES OBJECTIVE Z TYPE LP DIRECTION MAXIMIZE SOLVER CPLEX FROM LINE 37 **** SOLVER STATUS 1 NORMAL COMPLETION **** MODEL STATUS 1 OPTIMAL **** OBJECTIVE VALUE 480000.0000 RESOURCE USAGE, LIMIT 1.760 1000.000 ITERATION COUNT, LIMIT 2 10000 GAMS/Cplex Aug 7, 2000 WIN.CP.NA 19.4 016.015.038.WAT For Cplex 6.6 Cplex 6.6.1, GAMS Link 16, Using a GAMS/Cplex demo license installed at runtime. User supplied options: objrng all rhsrng all=2 Optimal solution found. 1 En este caso es un poco redundante ya que hemos definido el solver por defecto como CPLEX, por tanto no haria falta incluir esto de forma especifica.

Objective : 480000.000000 EQUATION NAME LOWER CURRENT UPPER ------------- ----- ------- ----- OBJ -INF 0 +INF RESTRIC(PREPAR) 160 200 240 RESTRIC(MANUF) 120 144 +INF RESTRIC(PULIM) 66.67 80 96 VARIABLE NAME LOWER CURRENT UPPER ------------- ----- ------- ----- X(COMEDOR) -1333 0 8000 X(DORMIT) -4000 0 1000 X(LIBRER) -INF 0 2000 X(MESA) -INF 0 2000 Z 4.441e-016 1 +INF LOWER LEVEL UPPER MARGINAL ---- EQU OBJ... 1.000 GAMS Rev 116 Windows NT/95/98 10/04/00 22:20:52 PAGE 6 G e n e r a l A l g e b r a i c M o d e l i n g S y s t e m ---- EQU RESTRIC LOWER LEVEL UPPER MARGINAL PREPAR -INF 200.000 200.000 2000.000 MANUF -INF 120.000 144.000. PULIM -INF 80.000 80.000 1000.000 ---- VAR X LOWER LEVEL UPPER MARGINAL COMEDOR. 10.000 +INF. DORMIT. 20.000 +INF. LIBRER.. +INF -2000.000 MESA.. +INF -2000.000

LOWER LEVEL UPPER MARGINAL ---- VAR Z -INF 4.8000E+5 +INF. **** REPORT SUMMARY : 0 NONOPT 0 INFEASIBLE 0 UNBOUNDED GAMS Rev 116 Windows NT/95/98 10/04/00 22:20:52 PAGE 7 G e n e r a l A l g e b r a i c M o d e l i n g S y s t e m E x e c u t i o n ---- 38 VARIABLE X.L COMEDOR 10.000, DORMIT 20.000 ---- 38 VARIABLE X.M LIBRER -2000.000, MESA -2000.000 EXECUTION TIME = 0.160 SECONDS 1.4 Mb WIN194-116 USER: GAMS Development Corporation, Washington, DC G871201:0000XX-XXX Free Demo, 202-342-0180, sales@gams.com, www.gams.com DC9999 Del fichero anterior podemos extraer la parte correspondiente al análisis de sensibilidad de los términos independientes: EQUATION NAME LOWER CURRENT UPPER ------------- ----- ------- ----- OBJ -INF 0 +INF RESTRIC(PREPAR) 160 200 240 RESTRIC(MANUF) 120 144 +INF RESTRIC(PULIM) 66.67 80 96 Lo que nos indica el análisis para las restricciones del problema es que el termino independiente de la restricción: Preparado, debe estar comprendido entre 160 y 240.

Manufacturado, debe estar comprendido entre 120 e infinito Pulimentado, debe estar comprendido entre 66.67 y 96. Exactamente los mismos resultado que con LINDO. Análisis de Sensibilidad de los coeficientes de la función objetivo. Si analizamos los coeficientes de la función objetivo, tenemos: Los resultados obtenidos con LINDO son: RANGES IN WHICH THE BASIS IS UNCHANGED: OBJ COEFFICIENT RANGES VARIABLE CURRENT ALLOWABLE ALLOWABLE COEF INCREASE DECREASE COM 20000.000000 8000.000000 1333.333374 DOR 14000.000000 1000.000000 4000.000000 LIB 8000.000000 2000.000000 INFINITY MESA 4000.000000 2000.000000 INFINITY Los que nos proporciona GAMS son: VARIABLE NAME LOWER CURRENT UPPER ------------- ----- ------- ----- X(COMEDOR) -1333 0 8000 X(DORMIT) -4000 0 1000 X(LIBRER) -INF 0 2000 X(MESA) -INF 0 2000 Z 4.441e-016 1 +INF Si comparamos los resultados, podemos observar que en LINDO nos proporciona los valores actuales de los coeficientes mientras que con GAMS los valores actuales son 0. Ello se debe a que el punto de partida inicial es el cero, pero salvando esto, los posibles incrementos en los coeficientes de cada una de esta variables son los mismos que nos proporciona LINDO

Lo que significa que la solución es optima mientras los beneficios de los diferentes artículos este comprendido entre: COM, entre 18666,66 y 28000. DOR entre 10000 y 15000 LIB entre 0 (o -INF) y 10000 MESA entre 0 (o -INF) y 6000