4. Empirical Methodology
4.2. Multivariate Regression Analysis
Si bien en los puntos anteriores se realizo una aplicación por medio del LINDO, ya mencionamos que hay variación entre las versiones del software y en la actualidad el uso difundido del producto es a través de su nombre comercial LINGO. En la metodología no existen diferencias importantes para problemas como los desarrollados en este curso, si bien LINGO introduce una sintaxis más potente que permite facilitar su aplicación a problemas más complicados.
LINGO puede incluso, leer los datos de una planilla de cálculo, de una base de datos o un archivo de texto.
Como siempre mencionamos solo la reiteración y aplicación de los conceptos es lo que nos hará desarrollar mayores habilidades. Por tanto a fuer de ser reiterativos desarrollaremos otra aplicación que estimo ampliara las habilidades del estudiante.
La ventana inicial de LINGO.
Desarrollo de un modelo en LINGO: Modelo del Mix de producción:
Supongamos que CompuCorp. produce 2 modelos de computadoras llamadas modelo Standard que posee las características genéricas que el mercado hogareño solicita hoy
- 132 -
en día y la llamada Turbo que posee ampliaciones de memoria, mayor tamaño de disco y placas aceleradoras para video. CompuCorp puede vender cada unidad Standard que produce a un precio de $100, y cada unidad Turbo por $150. (Usaremos valores numéricos sencillos para ejemplo y que no se corresponden con la realidad).
La fábrica puede producir a lo sumo 100 computadoras Standard por día y 120 computadoras Turbo. CompuCorp tiene una capacidad de trabajo de 160 horas por día. Las computadoras Standard requieren 1 hora de labor, mientras que las Turbo requieren 2 horas.
El problema de CompuCorp es determinar la mezcla de computadoras Standard y Turbo a producir cada día para maximizar el total de las ventas sin exceder el límite de producción y de trabajo.
En general un modelo de optimización consiste en los siguientes 3 ítems: 1. Función objetivo
2. Variables 3. Restricciones
La sintaxis para escribir la función objetivo en LINGO es: MAX = 100 x STANDARD + 150 x TURBO;
Nota: Cada línea en LINGO finaliza con un punto y coma. El punto y la coma son indispensables. El modelo no se resolverá si falta algún punto y coma.
Las restricciones se introducen de la siguiente manera: STANDARD <= 100;
TURBO <=120;
STANDARD + 2 x TURBO <= 160;
Dado que la mayor parte de las computadoras no tienen una tecla de menor o igual, LINGO ha adoptado como convención utilizar el símbolo
< =
para representarlo . Una expresión puede abarcar más de una línea, por ejemplo:MAX = 100
*
STANDARD + 150*
TURBO;- 133 -
Se pueden introducir comentarios, que serán ignorados por LINGO, comenzando con un signo de exclamación! y terminando con un punto y coma. Los comentarios también pueden ocupar varias líneas.
Por ejemplo:
X= 1.5 * Y + Z / 2 * Y; ! Esto es un comentario;
X= 1.5 * ! Esto es un comentario en el medio de una restricción; Y + Z / 2 * Y;
LINGO no distingue entre mayúsculas y minúsculas, por lo que es lo mismo STANDARD que standard y que StAnDaRd.
Los nombres de las variables deben comenzar con un carácter alfabético (A-Z), los siguientes caracteres pueden ser alfabéticos, numéricos o subrayado (_). Los nombres pueden ser de hasta 32 caracteres de longitud.
Resolución del modelo.
Para ordenar a LINGO a que resuelva el problema, se debe seleccionar el comando Solve del menú LINGO, o presionar el botón Solve de la barra de herramientas.
Si no hay errores en la formulación del problema durante la etapa de compilación, LINGO invocará al módulo de resolución adecuado para buscar la solución óptima.
- 134 -
En esta ventana se puede monitorear el proceso de resolución y las dimensiones del modelo.
El recuadro "Variables" muestra el número total de variables del modelo, las variables que son no lineales y las enteras. Una variable es considerada no lineal si es parte de una restricción no lineal en el modelo. Mientras más variables no lineales y enteras contenga el modelo, más difícil será resolverlo de forma óptima en un tiempo razonable. Los modelos lineales puros sin variables enteras tienden a resolverse más rápidamente. La cuenta de variables no incluye las que LINGO determina como de valor fijo, por ejemplo: dadas las restricciones
X = 1; X + Y = 3;
LINGO determina por la primera restricción que X está fija en 1, y, usando esta información, deduce que Y está fija en 2. X e Y serán entonces excluidas del modelo. En el recuadro "Constraints" se muestra la cantidad total de restricciones y el número de éstos que son no lineales. Una restricción es considerada no lineal si una o más variables aparecen de forma no lineal en la restricción.
El recuadro "Nonzeros" muestra el total de coeficientes distintos de cero que aparecen en el modelo y el número de estos que aparecen en variables no lineales.
El recuadro "Memory Used" muestra la cantidad de memoria que está utilizando LINGO para resolver el modelo.
El recuadro "Elapsed Runtime" muestra el tiempo total utilizado para generar y resolver el modelo.
El recuadro "Optinizer Status" muestra el estado actual del optimizador:
Campo Descripción
State Estado de la solución actual, puede
ser "Global optimum", "Local optimum", "Feesible", "Unbounded", "Interrupted", "Undetermined"
Iterations Numero de iteraciones
Infeasibility Cantidad de veces que es violada una restricción
- 135 -
Objetive Valor actual de la función
objetivo
Best IP Valor de la función objetivo de la
mejor solución entera encontrada (solo en modelos de programación entera)
IP Bound Límite teórico de la función objetivo para modelos de programación entera.
Cuando LINGO termine de resolver el modelo, creará una nueva ventana con el título Solution Report, conteniendo los detalles de la solución:
Informe de la solución.