Sunteți pe pagina 1din 27

INICIALIZANDO 1

I.
A.

Inicializndose con LINGO


Qu es LINGO?

LINGO es una herramienta simple para utilizar la potencialidad de la optimizacin lineal y no lineal para formular problemas muy grandes de una manera concisa, resolverlos y analizar su solucin. La optimizacin le ayuda a encontrar la respuesta que representa la mejor solucin; obtiene la mayor utilidad, respuesta o felicidad; o logra el menor costo, desperdicio o disconformidad. A menudo estos problemas significan hacer el uso ms eficiente de sus recursos- incluyendo dinero, tiempo, maquinaria, personal, inventario y mucho ms. Los problemas de optimizacin se clasifican a menudo como lineales y no lineales, dependiendo si las relaciones entre las variables son o no lineales. Si usted es un usuario nuevo, se le recomienda pase por los primeros siete captulos para que se familiarice con LINGO. Luego puede usted querer ver el Captulo 13 relacionado con Modelacin Matemtica, para mayor informacin sobre modelos lineales y no lineales y sobre como desarrollar modelos grandes. Puede ser tambin til ver algunos modelos de ejemplo en el Captulo 12 Desarrollando Modelos ms Avanzados, o el Apndice A Ejemplos Adicionales de Modelacin con LINGO, para ver si algn esquema de un ejemplo particular es similar al problema que usted tiene. Para usuarios de versiones previas de LINGO, las nuevas capacidades estn resumidas en el Prefacio, al inicio de este manual. B. Instalando LINGO

Esta seccin discute como instalar LINGO en la plataforma Windows. Para instalar LINGO en otras plataformas distintas a Windows, vea las instrucciones de instalacin incluidas en su software. El instalar el software LINGO es un procedimiento directo. Para preparar LINGO para windows coloque el CD en el dispositivo adecuado y ejecute el programa de instalacin SETUP que se encuentra en el directorio LINGO. El programa de instalacin de LINGO le abrir y guiar en los pasos requeridos para instalar LINGO en su disco duro. Algunas versiones de LINGO requieren que el usuario ingrese una clave Considere la clave como una llave que abre la aplicacin LINGO. Una vez que el programa de SETUP se ha completado, usted debe ejecutar LINGO para ingresar su clave. La clave necesita ser ingresada solamente una vez, cuando usted ejecuta LINGO por primera vez. Todas las sesiones posteriores de LINGO no requerirn que se ingrese la clave. Si an no conoce su clave, usted debera encontrarla en el sobre del CD o en la parte posterior del Manual del Usuario. La clave es una cadena de letras, smbolos y nmeros separados en grupos de cuatro por guiones. (e.g., r82m-XCW2-dZu?-%72S-fD?S-Wp@)).

CAPITULO I

Si su versin de LINGO requiere una clave, usted ver lo siguiente cuando usted ejecute LINGO:

Cuidadosamente ingrese su clave en el campo de edicin, incluyendo los guiones, asegurndose que cada carcter est correcto. Las claves son sensibles a las letras en mayscula, por lo que usted debe respetar el tipo definido para cada letra. Seleccione OK y, asumiendo que la clave ha sido ingresada correctamente, LINGO entonces comenzar. En el futuro usted ser capaz de inicializar LINGO directamente, sin necesidad de ingresar nuevamente la clave. Si usted no tiene una clave, usted puede elegir ejecutar LINGO en la versin de demostracin seleccionando el botn Demo Version. En la versin de demostracin LINGO tiene toda la funcionalidad de la versin standard de LINGO con la sola excepcin de que el tamao mximo de los problemas est restringido. Nota: Si usted recibi su clave por e-mail, entonces usted tendr la opcin de copiarla y pegarla en el campo de edicin de la ventana de ingreso de clave. Copie la clave desde el e-mail que la contiene con la secuencia de teclas Control-C, luego selecciones el campo de clave en LINGO y pguela con la secuencia de teclas Control V. C. Ingresando un Modelo en LINGO 1. Iniciando LINGO Esta seccin ilustra como ingresar y resolver un modelo pequeo en windows. El texto de las ecuaciones del modelo es independiente de la plataforma y ser idntico para todas las plataformas. Sin embargo, tome en consideracin que la tcnica para ingresar un modelo es levemente distinta en plataformas distintas de windows. Para instrucciones de cmo ingresar un modelo en plataformas distintas a windows, por favor refirase al CaptuloVI Lneas de Comandos.

INICIALIZANDO 3 Cuando usted comience LINGO su pantalla debe lucir como se indica:

La ventana exterior etiquetada LINGO, es la ventana principal. Todas las dems ventanas estarn contenidas en sta ventana. La parte alta de la ventana principal contiene la ventana de men de comandos y la barra de herramientas. Vea el Captulo V Comandos en Windows para detalles en cuanto a la barra de herramientas y a los men de comandos. El lmite inferior de la ventana principal contiene una barra de estatus que proporciona varios aspectos informativos respecto del estado actual de LINGO. Tanto la barra de herramientas como la barra de estatus pueden ser suprimidas a travs del uso del comando de LINGO Opciones. La ventana ms pequea interior, etiquetada LINGO Model - LINGO1 es una ventana nueva para modelacin. En la prxima seccin ingresaremos un modelo de ejemplo directamente en esta ventana. 2. Desarrollando un Modelo LINGO

El Problema: Para nuestro modelo ejemplo usaremos un pequeo problema de mezcla de productos. Imaginemos que la Corporacin CompuQuick produce dos modelos de computadoras Estndar y Turbo. CompuQuick puede vender cada modelo Estndar que sea capaz de producir con una contribucin a las utilidades de US$ 100 y cada modelo Turbo con una contribucin de US$ 150. En la fbrica de CompuQuick la lnea de produccin del modelo Estndar puede producir como mximo 100 computadoras al da. Al mismo tiempo, la lnea de produccin del modelo Turbo puede lograr una produccin de 120 computadoras por da. Adems CompuQuick tiene una disponibilidad limitada de mano de obra (H-H) por da que es de 160 H-H. Los computadoras Estndar necesitan 1 H-H mientras los computadoras Turbo son un poco ms intensos en necesidad de mano de obra y requieren 2 H-H.

CAPITULO I

El problema de CompuQuick es determinar la mezcla de modelos Estndar y modelos Turbo que debe producir cada da para maximizar su utilidad total sin exceder los lmites de capacidad de produccin de las lneas ni la disponibilidad de H-H. En general, un modelo de optimizacin consistir de las siguientes tres partes: Funcin Objetivo: La funcin objetivo es una frmula que expresa exactamente qu es lo que usted desea optimizar. En modelos orientados a negocios esto normalmente sern funciones de utilidad que usted desea maximizar o funciones de costo que usted desea minimizar. Los modelos pueden tener como mximo una funcin objetivo. En nuestro ejemplo de CompuQuick la funcin objetivo ser calcular el valor de las utilidades totales de la Corporacin en funcin de la produccin de modelos Estndar y Turbo. Variables: Las Variables son las cantidades que usted tiene bajo su control. Usted debe decidir cules son los mejores valores para estas variables, los valores ptimos. Por sta razn comnmente a estas variables se les denomina Variables de Decisin. El objetivo de optimizacin es encontrar los valores para las variables del modelo que generan el mejor valor para la funcin objetivo, sujeto a cualquier condicin de limitacin que se haya impuesto a las variables. En nuestro ejemplo tendremos dos variables de decisin - una que corresponde al nmero de computadoras Estndar que conviene producir y otra al nmero de computadoras Turbo que deberamos producir. Restricciones: Casi si excepcin, se puede asumir que siempre habr algn lmite para los valores de las variables de un modelo. Al menos un recurso ser limitado (i.e., tiempo, materias primas, presupuesto de su departamento, etc.). Estos lmites se expresan en frmulas en funcin de las variables de decisin del modelo. A stas frmulas se les denomina Restricciones debido a que ellas restringen los valores que las variables pueden tomar. En nuestro ejemplo de CompuQuick tendremos una restriccin por cada lnea de produccin y una restriccin sobre el total de H-H que se usan. Ingresando el modelo Construiremos ahora la funcin objetivo de nuestro ejemplo. Haremos que las variables ESTANDAR y TURBO representen, respectivamente, el nmero de computadoras modelo Estndar y Turbo que produciremos. El objetivo de CompuQuick es maximizar la utilidad total. La utilidad total se calcula como la suma de la contribucin a la utilidad de cada computadora Estndar (US$ 100) multiplicado por el total de computadoras Estndar que se producirn (ESTANDAR), ms la contribucin a la utilidad de cada computadora Turbo multiplicada por el total de computadoras Turbo que se fabricarn (TURBO). Finalmente, le decimos a LINGO que deseamos maximizar una funcin objetivo a travs de colocar el comando " MAX = " precediendo a la frmula de la utilidad total. Por lo tanto nuestra funcin objetivo se escribe en la primera lnea de nuestra ventana del modelo como: MAX = 100 * ESTANDAR + 150 * TURBO; Nota: Cada lnea en LINGO se termina con "punto y coma". Estos smbolos son obligatorios. Su modelo no ser resuelto sin ellos. Para mayor informacin sobre la sintaxis de LINGO, vea el prrafo ms adelante.

INICIALIZANDO 5 Luego debemos ingresar nuestras restricciones en cuanto a las lneas de produccin y mano de obra. El nmero de computadoras Estndar y Turbo que se produzcan deben estar restringidos a la capacidad de produccin de las lneas de 100 y 120 computadoras respectivamente. Para hacer esto ingrese las siguientes dos restricciones exactamente debajo de la funcin objetivo: ESTANDAR <= 100; TURBO <= 120; En palabras, la primera restriccin dice que el nmero de computadoras Estndar que se produzcan (ESTANDAR) debe ser menor o igual que la capacidad de la lnea de produccin correspondiente en la fbrica que es 100. En forma similar la segunda restriccin dice que el nmero de computadoras Turbo producidos diariamente (TURBO) debe ser menor o igual que la capacidad de la lnea que es 120. Nota: Debido a que la mayora de las computadoras no tienen una tecla LINGO ha adoptado la convencin de utilizar los caracteres <= para denotar esta condicin. Como una forma alternativa usted puede ingresar simplemente slo el smbolo < para denotar la condicin menor o igual que. Similarmente >= o bien > denotar la condicin mayor o igual que. La restriccin final relativa a la mano de obra puede expresarse como: ESTANDAR + 2 * TURBO <= 160; Especficamente, el nmero total de H-H utilizadas (ESTANDAR + 2 * TURBO) debe ser menor o igual que la cantidad de mano de obra disponible que es 160 H-H. Despus de ingresar lo anterior e ingresar comentarios que mejoren el entendimiento del contexto del problema su ventana del modelo debe lucir como se muestra:

Sintaxis General de LINGO Una expresin o frmula puede dividirse en tantas lneas como usted quiera, pero la expresin debe terminar con punto y coma. Por ejemplo nosotros podramos haber usado dos lneas en vez de slo una para escribir la funcin objetivo como: MAX = 100 * ESTANDAR + 150 * TURBO;

CAPITULO I

Hemos ingresado tambin algunos comentarios para mejorar el entendimiento del modelo. Los comentarios deben comenzar con un signo de exclamacin (!) y terminar con punto y coma (;) Todo el texto entre el signo de exclamacin y el punto y coma es ignorado por LINGO. Los comentarios pueden ocupar ms de una lnea y pueden compartir una lnea con otras expresiones de LINGO. Por ejemplo: X = 1.5 * Y + Z / 2 * Y; !Este es un comentario; X = 1.5 * !Este es un comentario en el medio de una restriccin; Y + Z / 2 * Y; Usted puede haberse dado cuenta que hemos utilizado letras maysculas para nuestros nombres de variables. Esto no es un requisito. LINGO no distingue entre letras minsculas y maysculas en nombres de variables. Por lo tanto los siguientes nombres de variables deben ser consideradas como equivalentes: TURBO Turbo turbo Al construir nombres de variables en LINGO, todos los nombres deben comenzar con un CARACTER ALFABETICO (A-Z). Los caracteres siguientes pueden ser indistintamente alfabticos, numricos (0-9) o la lnea de subrayado ( _ ). Los nombres pueden tener un largo mximo de 32 caracteres. Un aspecto final que puede usted haber notado, es que el editor de LINGO est permanentemente monitoreando la sintaxis de LINGO. En otras palabras, cuando encuentra palabras claves de LINGO las despliega en color azul; los comentarios se despliegan en verde y todo otro texto se despliega en negro. La concordancia de parntesis tambin se destaca, en este caso en rojo, cuando usted coloca el cursor inmediatamente despus de un parntesis. Usted encontrar ste aspecto muy til para ayudarle a seguir errores de sintaxis en sus modelos. 3. Resolviendo el Modelo

a) Errores de Sintaxis Su modelo ha sido ya ingresado y est listo para ser resuelto. Para comenzar a solucionar el modelo seleccione el comando Solve en el men LINGO o presione el botn en la barra de herramientas en la parte alta de la ventana principal. LINGO comenzar compilando el modelo. Esto significa que LINGO comprobar si el modelo cumple con todos los requerimientos de sintaxis. Si el modelo no pasa estas pruebas usted ser informado por un mensaje de error. En el modelo a continuacin, por ejemplo, se ha olvidado utilizar los smbolos de multiplicacin, en este caso usted recibir un mensaje de error como el que se indica:

INICIALIZANDO 7

LINGO le hace saber que hay un error de sintaxis en su modelo, lista el nmero de la lnea en la cual est y apunta con una punta de flecha al lugar donde ocurre. Para mayor informacin en cuanto a cdigos de error vea el Apndice B Mensajes de Error. b) Ventana de Estado de Solucin Si no hay errores de formulacin en la etapa de compilacin, LINGO llamar a la sub rutina interna de clculo apropiada para comenzar a buscar la solucin ptima para su modelo. Cuando la rutina de solucin comienza se despliega en su pantalla una Ventana del Estado de la Solucin como la siguiente:

CAPITULO I

La ventana del Estado de Solucin es til para monitorear el progreso de la solucin y las dimensiones de su modelo. El marco "Variables" muestra el nmero total de variables en el modelo y de ellas el nmero de variables que son no lineales. Una variable es considerada no lineal si entra en una relacin no lineal en cualquiera de las restricciones del modelo. Por ejemplo la restriccin: X + Y = 100; Sera considerada lineal porque el grfico de esta funcin sera una lnea recta. Por otro lado, la funcin no lineal: X * Y = 100; Es cuadrtica y su grfico es una lnea curva. Si estuvisemos resolviendo un modelo con esta restriccin no lineal, la contabilizacin de variables no lineales indicara 2 para representar el hecho de que dos variables, X e Y, aparecen con una relacin no lineal en esta restriccin. Como otro ejemplo considere la restriccin: X * X + Y = 100; En este caso X aparece no lineal mientras Y aparece como variable lineal. Esta restriccin no causar que Y sea contabilizada como una de las variables no lineales. Vea el Captulo XIII sobre Modelacin Matemtica para mayor informacin sobre las diferencias entre ecuaciones lineales y no lineales. El marco "Variables" le indica asimismo el conteo del nmero total de variables enteras que hay en el modelo. En general, mientras ms variables no lineales haya y mientras ms variables enteras haya en el modelo, ms difcil ser encontrar una solucin ptima en una cantidad de tiempo razonable. Los ms rpidos de solucionar son los modelos lineales puros, sin variables enteras. Para mayores detalles en cuanto al uso de variables enteras refirase al Captulo III Usando Funciones de Dominio de Variables. El conteo de variables no incluye aquellas variables que LINGO determina tienen un valor fijo. Por ejemplo, considere las siguientes restricciones: X = 1; X + Y = 3; De la primera restriccin LINGO determina que X tiene un valor fijo de 1. Usando esta informacin en la restriccin 2 LINGO determina que Y tiene un valor fijo de 2. X e Y sern luego sustituidas en el modelo y no contribuirn en la contabilizacin del total de variables. El marco "Constraints" muestra el total de restricciones y el nmero de stas que son no lineales. Una restriccin es considerada como no lineal si una o ms variables tienen relaciones no lineales en esa restriccin. LINGO busca en su modelo restricciones que sean fijas. Una restriccin es considerada fija si todas las variables en ella son fijas. Las restricciones fijas son sustituidas y sacadas del modelo por lo que no contribuyen en la contabilizacin del total de restricciones. El marco "Nonzeros" muestra el nmero total de coeficientes distintos de cero en el modelo y de stos cuantos estn asociados a variables no lineales. En una restriccin especfica aparece slo un grupo pequeo de variables del total de variables del modelo. El coeficiente implcito para todas las variables que no aparecen es cero, mientras que los coeficientes de las variables que si aparecen son "nonzeros". Por lo tanto se puede interpretar el nmero total de

INICIALIZANDO 9 coeficientes distintos de cero como la contabilizacin del nmero de veces que las variables aparecen en todas las restricciones. El nmero de coeficientes distintos de cero, no lineales, se puede interpretar como el nmero de veces que las variables no lineales aparecen en todas las restricciones. El marco "Generator Memory Used" indica la cantidad de memoria que el generador de modelo de LINGO est actualmente usando de su memoria compartida. Usted puede cambiar el tamao de la asignacin de memoria al generador de modelo usando el comando "Options" de LINGO. (Vea el Captulo V Comandos de Windows). El marco "Elapsed Runtime" muestra el total de tiempo usado hasta el momento para generar y resolver el modelo. El marco "Optimizer Status" muestra el estado actual de optimizacin y la descripcin de cada campo aparece en la siguiente tabla: Campo State Descripcin Indica el Estado actual de solucin. Los estados posibles son: "Global Optimum" (Optimo global), "Local Optimum" (Optimo local), "Feasible" (Factible), "Infeasible" (No factible), "Unbounded" (No acotado), "Interrupted" (Interrumpida) y "Undetermined" (Indeterminada) Valor actual de la Funcin Objetivo Cantidad en la que las restricciones que no se cumplen estn sobrepasadas. Nmero de iteraciones ocupadas para llegar a la solucin actual Nmero de ramas en el mtodo del rbol de ramificacin y acotamiento (Slo para modelos de programacin entera) Valor de la Funcin Objetivo para la mejor solucin entera encontrada (Slo para modelos de programacin entera) Lmite terico del valor de la de la Funcin Objetivo para modelos de programacin entera

Objective Infeasibility Iterations Branches Best IP IP Bound

Campo "State" Cuando LINGO comienza a resolver su problema, el estado inicial de la solucin actual ser "indeterminada". Esto se debe a que "Solver" no ha tenido an la oportunidad de generar una solucin para su problema. Una vez que "Solver" comienza las iteraciones el estado avanzar a la condicin "no factible". En el estado no factible LINGO ha generado soluciones tentativas, pero ninguna que satisfaga todas las restricciones del modelo. Asumiendo que existe una solucin factible "Solver" luego avanzar al estado "Factible". En el estado factible LINGO ha encontrado una solucin que satisface todas las restricciones del modelo, pero an no est satisfecho de haber encontrado la mejor solucin para su modelo.

10 CAPITULO I Una vez que "Solver" ya no puede encontrar mejores soluciones para su modelo, terminar ya sea en el estado "Optimo Global" o bien en el "Optimo Local". Si su modelo no tiene restricciones no lineales, cualquier solucin ptima local ser tambin ptima global. Por lo tanto, todo modelo lineal optimizado terminar en el estado "Optimo Global". Si, por otro lado, su modelo tiene una o ms restricciones no lineales, entonces cualquier solucin ptima local puede no ser la mejor solucin a su modelo. Podra haber otro "peak" que es mejor que el actual pero el procedimiento de bsqueda de ptimos locales de "Solver" es incapaz de ver por sobre el "peak" actual. Por lo tanto, en modelos no lineales, LINGO puede terminar solamente en el estado de ptimo local. LINGO podra de hecho llegar a un ptimo global, pero dada la naturaleza y caractersticas de los problemas no lineales, LINGO no puede asegurar que haya lo haya encontrado. Dada esta realidad, es siempre preferible formular un modelo usando slo restricciones lineales siempre que ello sea posible. Para mayores detalles en los conceptos de puntos de ptimo global vs ptimo local, refirase al Captulo XIII Modelos Matemticos. Si un modelo termina en el estado "No Acotado", significa que LINGO puede mejorar la funcin objetivo sin tener un lmite. En la vida real esto correspondera a una situacin en la que usted podra generar utilidades infinitas. Debido a que esa situacin es por decir lo menos "extraa", sino imposible, lo que realmente ocurre es que usted o bien ha omitido o ha planteado errneamente en su modelo, alguna restriccin del sistema. Finalmente, el estado "Interrumpida" ocurrir cuando usted prematuramente interrumpa el trabajo de LINGO antes de que haya encontrado la solucin final para su modelo. Los mecanismos para interrumpir "Solver" se discuten mas abajo. Campo "Objective" Este campo da el valor de la funcin objetivo para la solucin actual. Si su modelo no tiene una funcin objetivo, entonces aparecer "N/A" (No Aplica) en este campo. Campo "Infeasibility" Este campo indica la cantidad en la que las restricciones que no se cumplen estn sobrepasadas. Tome en cuenta que en este caso no se considera el calcular la cantidad en que puedan estar sobrepasados los lmites de variables. Por lo tanto, es posible que este campo sea cero a pesar que la solucin no sea factible debido a que se sobrepasa el lmite de valor de alguna variable. Para determinar si LINGO ha encontrado una solucin factible refirase a lo discutido en el campo "State" ms arriba. Campo "Iterations" El campo iteraciones muestra la contabilizacin del nmero de iteraciones efectuadas hasta el momento por LINGO. La operacin matemtica fundamental desarrollada por LINGO se denomina "Iteracin". Una iteracin implica encontrar una variable, actualmente en valor cero, que sera atractivo introducir en la solucin con un valor distinto de cero. Esta variable es entonces introducida en la solucin a valores sucesivamente mayores, hasta que ya sea una restriccin est cercana a ser no factible u otra variable est siendo llevada a cero. En este punto el proceso de iteracin comienza nuevamente. En general, mientras mas grande sea el modelo mayor nmero de iteraciones requerir para ser resuelto y cada iteracin requerir mas tiempo para ser completada.

INICIALIZANDO 11 Campo "Branches" LINGO utiliza la estrategia denominada "Algoritmo de Bifurcacin y Acotamiento" para resolver problemas de programacin entera. Este algoritmo es un mtodo sistemtico para implcitamente enumerar todas todas las posibles combinaciones de las variables enteras en un modelo. Vea el texto de Hillier y Lieberman (1995) para mayor informacin sobre el algoritmo. El campo "Branches" (ramas) muestra el nmero de ramas que tiene el rbol del algoritmo de bifurcacin y acotamiento usado para solucionar el modelo. Si su modelo no contiene variables enteras, entonces en este campo se indicar "N/A". Si el nmero de ramas tiende a ser muy grande, significa que "Solver" est teniendo problemas para converger a una solucin. En ese caso es conveniente buscar una formulacin alternativa para el modelo que pueda ser resuelta ms rpidamente. Campo "Best IP" El campo Best IP muestra el valor de la funcin objetivo en la mejor solucin entera encontrada. Cuando su modelo contiene variables que estn restringidas a tener slo valores enteros se dice estar en un modelo de programacin entera (IP). (Para mayor informacin sobre como forzar a variables a tener slo valores enteros, refirase a las funciones @BIN y @GIN en el Captulo III Usando Funciones de Dominio de Variables. El uso de variables enteras puede aumentar en gran medida el tiempo necesario para resolver un problema, pero son necesarias y tiles en muchas reas de aplicacin. Si su modelo no contiene variables enteras se desplegar en este campo "N/A". Campo "IP Bound" Mientras LINGO enumera las posibles combinaciones de soluciones enteras, es capaz de deducir un lmite para el mejor valor posible que la funcin objetivo puede alcanzar. El campo IP Bound indica el valor para este lmite. En la mayora de los casos este lmite se estrechar cada vez ms mientras mas corra "Solver". Adems el valor de la funcin objetivo en la mejor solucin entera, que se indica en el campo "Best IP" tender a acercarse cada vez ms al valor del campo "IP Bound" mientras mas se avance en los clculos. En algn instante estos dos valores estarn muy cerca. Dado que el valor del "Best IP" no podr nunca sobrepasar el del "IP Bound", el hecho de que estos dos valores estn muy cercanos, indica que la mejor solucin actual de LINGO es ya sea la solucin ptima o una muy cercana a ella. En tal instante el usuario puede decidir interrumpir el trabajo de "Solver" y aceptar la mejor solucin hasta ese momento encontrada, a objeto de ahorrar tiempo adicional de computacin. La ventana de Estado de Solucin provee tambin el botn de interrupcin de "Solver". Interrumpir "Solver" provoca que LINGO detenga los clculos en la prxima iteracin. En la mayora de los casos LINGO ser capaz de restablecer y mostrar la mejor solucin encontrada hasta el momento. La nica excepcin es en el caso de modelos de programacin lineal sin variables enteras. En ese caso al interrumpir ""Solver" la solucin que se devolver no tendr significado alguno y debe ser ignorada. Esto no es un gran obstculo puesto que los programas lineales normalmente se resuelven rpidamente por lo que se disminuye la necesidad de interrumpir los clculos.

12 CAPITULO I Nota: Usted debe ser cuidadoso en la interpretacin de las soluciones luego de haber interrumpido "Solver". Estas soluciones pueden 1) Ser definitivamente no ptimas, 2) Pueden no ser factibles para todas las restricciones y 3) No tener utilidad alguna si el modelo es de programacin lineal sin variables enteras. Junto al botn de interrupcin de "Solver" existe otro botn etiquetado "Close". Pinchar este botn har que la ventana de Estado de Solucin se cierre. Esta ventana puede ser reabierta en cualquier momento seleccionando el comando "Status window" en el men Windows. En la base de la ventana de Estado de Solucin usted encontrar un campo de "Update Interval". LINGO actualizar la informacin en la ventana de Estado de Solucin cada n segundos, donde n es el valor mostrado en el campo "Update Interval". Usted puede programas este valor al que usted desee. Sin embargo el programarlo en cero provocar tiempos de solucin mucho mas largos- LINGO gastar ms tiempo actualizando los valores en la ventana que resolviendo el modelo. En problemas mas grandes, LINGO puede que no sea capaz de actualizar la informacin de la ventana a intervalos regulares. Por lo tanto, no se preocupe si en algunas oportunidades usted debe esperar ms de lo que est indicado en el campo "Update Interval". c) El Reporte de Solucin Cuando LINGO ha terminado de resolver nuestro ejemplo de CompuQuick, se crear en su pantalla una nueva ventana "Reporte de Solucin" conteniendo los detalles de la solucin de su modelo. El reporte de solucin debe aparecer como lo siguiente:

Esta solucin nos indica que CompuQuick debera construir diariamente 100 computadoras Estndar y 30 Turbo para lograr una utilidad diaria total de US$ 14500. Refirase a la seccin "Examinando la Solucin" mas abajo para detalles adicionales en los diferentes campos de este reporte. 4. Imprimiendo su Trabajo en Windows En las versiones Windows de LINGO use el comando "Print" en el men "File" para imprimir la ventana activa (la que est mas adelante) o pinche el botn correspondiente en la barra de

INICIALIZANDO 13 herramientas. Usted puede imprimir cualquier ventana, incluyendo la del modelo y la de reporte de solucin. Si usted desea imprimir slo una parte de la ventana, use los comandos "Cut" y "Paste" en el men "Edit" para colocar el texto deseado en una nueva ventana antes de imprimir. Puede usted tambin acceder a los comandos "Cut", "Paste" y "New" pinchando los botones correspondientes en la barra de herramientas. 5. Guardando su Trabajo en Windows Para guardar su modelo en un archivo en disco use el comando "Save" en el men "File" o presione el botn correspondiente de la barra de herramientas. A menos que usted especifique algo diferente, LINGO automticamente otorgar la extensin .LG4 a su nombre de archivo. D. Examinando la Solucin

En primer lugar: el reporte de solucin nos indica que LINGO ocup 2 iteraciones para resolver el modelo. Segundo: la mxima utilidad alcanzable es de US$ 14500. Tercero: las cantidades a producir de las computadoras Estndar y Turbo son 100 y 30 respectivamente. Lo que es interesante de notar es que fabricaremos menos computadoras de aquellas que tienen una relativa mayor utilidad, el modelo Turbo, debido a su uso mas intensivo de nuestra limitada disponibilidad de mano de obra. Las columnas "Reduced Costs", "Slack or Surplus" y "Dual Price" se explican a continuacin. 1. Costos Reducidos En un reporte de solucin de LINGO, usted encontrar una cantidad que se denomina "Reduced Costs" asociada a cada variable. Hay dos interpretaciones vlidas, equivalentes del costo reducido. Primero: usted puede interpretar el costo reducido de una variable como la cantidad en que debera mejorar el coeficiente de una variable en la funcin objetivo, antes de que llegue a ser rentable dar a la variable en cuestin, un valor positivo en la solucin ptima. Por ejemplo: si una variable tiene un costo reducido de 10, el coeficiente de esa variable en la funcin objetivo debera aumentar en 10 unidades en una problema de maximizacin, o disminuir en 10 unidades en un problema de minimizacin, para que sea una alternativa atractiva que la variable entre a la base de solucin. Una variable ya positiva en la solucin ptima, como es el caso de ESTANDAR y TURBO en nuestro ejemplo, tienen automticamente un costo reducido cero. Segundo: el costo reducido de una variable puede ser interpretado como la cantidad de multa que usted debera pagar para introducir una unidad de esa variable en la solucin. Nuevamente, si usted tiene una variable con un costo reducido de 10, usted tendra que pagar una multa de 10 unidades para introducir la variable en la base de solucin. En otras palabras, la funcin objetivo disminuira en 10 unidades en un modelo de maximizacin o aumentara en 10 unidades en un modelo de minimizacin. Los costos reducidos son vlidos slo en un rango de valores. Para mayor informacin en la determinacin del rango de validez de un costo reducido vea el comando "Range" del men LINGO en el Captulo V Comandos de Windows.

14 CAPITULO I 2. Holguras La columna "Slack or Surplus" en un reporte de solucin de LINGO le dice cun cerca esta usted de satisfacer una restriccin como una igualdad. Esta cantidad, en una restriccin que representa una limitacin, o sea del tipo menor o igual que (), es interpretada generalmente como una carencia (Slack), lo que falta para llegar a la igualdad. En una restriccin que representa un requerimiento, o sea del tipo mayor o igual que (), esta cantidad se denomina un exceso (Surplus) en cuanto se excede la igualdad. Si la restriccin es satisfecha exactamente como una igualdad, el valor de la holgura ser cero y la restriccin ser catalogada como Restriccin Activa. Si una restriccin es violentada, como ocurre en una solucin no factible, el valor de su holgura ser negativo. Saber esto puede ayudarle a encontrar las restricciones violentadas en un modelo no factible- un modelo para el cual no existe un set de valores para las variables de decisin, que simultneamente satisfaga todas las restricciones. Restricciones no limitantes, restricciones con una holgura mayor que cero, tendrn un valor positivo distinto de cero en esta columna. En nuestro ejemplo de CompuQuick note que la fila tres (TURBO <=120) tiene una holgura de 90. Debido a que el valor ptimo de TURBO es 30, a esta fila le faltan 90 unidades para que se cumpla con la igualdad. 3. Precios Duales El reporte de solucin de LINGO tambin entrega una cantidad denominada "Dual Price" asociada a cada restriccin. Usted puede interpretar el precio dual de una restriccin como la cantidad en que mejorara el valor ptimo de la funcin objetivo, si el trmino libre o valor constante de la restriccin fuese aumentado en una unidad. Por ejemplo: en la solucin de CompuQuick el precio dual de 75 en la fila 4, significa que el aumentar una unidad ms de mano de obra provocar que la funcin objetivo mejore en 75 unidades, a un valor de 14575. Ntese que "mejorara" es un trmino relativo. En un problema de maximizacin mejorar significa que el valor de la funcin objetivo aumentar. Sin embargo, en un problema de minimizacin, el valor de la funcin objetivo debera disminuir si usted aumenta en una unidad el trmino libre de una restriccin que tiene un precio dual positivo. Los precios duales se denominan tambin Precios Sombra, porque le indican cuanto estara usted dispuesto a pagar por cada unidad adicional de un recurso especfico. Basado en nuestro anlisis, CompuQuick estra dispuesto a pagar hasta US$ 75 por cada hora adicional de mano de obra. Al igual que en los costos reducidos, los precios duales son vlidos slo para un rango de valores del trmino libre de la restriccin. Refirase al comando "Range" del men LINGO en el Captulo V Comandos de Windows, para mayor informacin en la determinacin del rango de validez de un precio dual.

INICIALIZANDO 15 E. Usando el Lenguaje de Modelacin

Uno de los aspectos ms poderosos de LINGO es su lenguaje matemtico de modelacin. El lenguaje de modelacin de LINGO le deja expresar su problema de una manera natural que es muy similar a la notacin matemtica estndar. En vez de ingresar cada trmino de cada restriccin en forma explcita, usted puede expresar una serie completa de restricciones similares en una expresin compacta, nica. Esto permite trabajar con modelos ms fciles de mantener y acrecentar. Otra caracterstica conveniente del lenguaje de modelacin de LINGO es la seccin de datos. La seccin de datos le permite aislar los datos del modelo de la formulacin misma. En efecto, LINGO puede incluso leer datos desde una hoja de clculo separada, una base de datos o un archivo de texto. Con datos independientes del modelo es mucho ms fcil realizar cambios y hay menos probabilidad de cometer errores cuando los haga. El modelo simple de CompuQuick antes discutido usa variables escalares. Cada variable es listada explcitamente por su nombre (i.e. ESTANDAR y TURBO) y cada restriccin est formulada explcitamente (i.e. TURBO <= 100). En la mayora de modelos ms grandes usted encontrar la necesidad de trabajar con un grupo de varias restricciones y variables muy similares. Utilizando la aproximacin de modelacin escalar que hemos presentado hasta este instante, usted necesitar abordar la tarea repetitiva de tipear cada trmino de cada restriccin. Afortunadamente, la habilidad de LINGO de manejar grupos de objetos le permite realizar esta operacin en forma mucho ms eficiente. La siguiente seccin es un ejemplo de cmo usar sets para resolver un problema de transporte. Despus de revisar este ejemplo debera quedar claro que acoplar la potencialidad de los sets con el lenguaje de modelacin de LINGO, le permite construir modelos ms grandes, en una fraccin del tiempo requerido para hacerlo con una aproximacin a modelacin escalar. (Vea el Captulo II Utilizando Sets para una descripcin detallada de los sets). 1. Desarrollando un Modelo de Transporte Basado en Sets

El Problema Para nuestro ejemplo suponga que la compaa Wireless Phone (WP) tiene seis bodegas que abastecen a ocho vendedores con telfonos inalmbricos. Cada bodega tiene una disponibilidad de telfonos que no puede ser excedida y cada vendedor una demanda de telfonos que debe ser satisfecha. WP desea determinar cuntos telfonos despachar desde cada bodega a cada vendedor para minimizar el costo total de transporte. Este es un problema clsico de optimizacin referido a la problemtica de transporte. El siguiente diagrama ilustra el problema:

16 CAPITULO I

B1

B2

B3

B4

B5

B6

V1

V2

V3

V4

V5

V6

V7

V8

Ya que cada bodega puede despachar a cada vendedor, hay un total de 48 posibilidades de despacho o arcos. Se necesitar una variable por cada arco para representar la cantidad de telfonos despachada a travs de ese arco. Los siguientes datos estn adems disponibles: Vendedor Bodega 1 2 3 4 5 6 Telfonos Disponibles 60 55 51 43 41 52 1 2 3 4 5 6 7 8 Datos de demanda V1 6 4 5 7 2 5 V2 2 9 2 6 3 5 V3 6 5 1 7 9 2 V4 7 3 9 3 5 2 V5 4 8 7 9 7 8 V6 2 5 4 2 2 1 V7 5 8 3 7 6 4 V8 9 2 3 1 5 3 Demanda por Telfonos 35 37 22 32 41 32 43 38

Datos de capacidad de suministro

B1 B2 B3 B4 B5 B6

Costos de transporte por cada telfono (US$) La Funcin Objetivo El primer paso en la formulacin del modelo ser construir la funcin objetivo. Como fue ya mencionado, WP desea minimizar el costo total de transporte. Haremos que DESPACHOSij sea el nmero de telfonos transportados desde la bodega i al vendedor j. En ese caso, si

INICIALIZANDO 17 nosotros quisiramos escribir explcitamente la funcin objetivo usando variables escalares, tendramos la siguiente expresin:
MIN = 6*DESPACHOS11 + 2*DESPACHOS12 + 6*DESPACHOS13 + 7*DESPACHOS14 + 4*DESPACHOS15 + .. + 8 DESPACHOS65 + DESPACHOS66 + 4*DESPACHOS67 + 3*DESPACHOS68;

Por ser breves hemos incluido slo 9 de los 48 trminos que tiene la Funcin Objetivo. Como se puede apreciar, ingresar tal enorme frmula sera tedioso y propenso a errores. Extrapole esto a un caso ms realista donde los vendedores podran ser miles y resulta evidente que la modelacin basada en variables escalares es a lo menos problemtica. Si usted est familiarizado con la notacin matemtica usted puede expresar esta misma frmula de una manera mucho ms compacta, como sigue:

MINIMIZAR ij COSTOij * DESPACHOSij


De una manera similar, el lenguaje de modelacin de LINGO le permite expresar la Funcin Objetivo en una forma que es: corta, fcil de tipear y fcil de entender. La expresin equivalente de LINGO es: MIN @SUM (ARCOS (I,J) : COSTO (I,J) * DESPACHOS (I,J)); En palabras, esto dice que se debe minimizar la suma del costo de transporte multiplicado por la cantidad de telfonos despachados para todas las combinaciones (ARCOS) entre bodegas y vendedores. La siguiente tabla compara la notacin matemtica respecto de la sintaxis de LINGO para la Funcin Objetivo. Notacin Matemtica MINIMIZAR ij COSTOij * DESPACHOSij Sintaxis de LINGO MIN @SUM (ARCOS (I,J) : COSTO (I,J) * DESPACHOS (I,J));

Las Restricciones Con la Funcin Objetivo en su lugar, el siguiente paso es formular las restricciones. Hay dos sets de restricciones en este modelo. El primer set garantiza que cada vendedor reciba el nmero de telfonos que requiere. Nos referiremos a este primer set de restricciones como "restricciones de demanda". El segundo set de restricciones, denominado "restricciones de

18 CAPITULO I capacidad de suministro u oferta", asegura que cada bodega no despache ms telfonos que los que tiene efectivamente en inventario. Partiendo con la restriccin de demanda del vendedor 1, necesitamos calcular la suma de los embarques desde todas las bodegas hacia el vendedor 1 y hacerla igual a su demanda de 35 telfonos. Por lo tanto si usramos notacin escalar la expresin matemtica sera: DESPACHOS11 + DESPACHOS 21 + DESPACHOS31 + DESPACHOS41 + DESPACHOS51 + DESPACHOS61 = 35; Usted necesitar tipear otras siete restricciones similares para cubrir la demanda de los ocho vendedores. Nuevamente, como puede apreciarse, esto sera tedioso y propenso a errores. Sin embargo y tal como lo hicimos con la Funcin Objetivo, podemos usar el lenguaje de modelacin de LINGO basado en sets para simplificar nuestra tarea. Usando notacin matemtica las ocho restricciones pueden expresarse en una sola frmula: i DESPACHOS ij = DEMANDA j , j La expresin de modelacin en LINGO es la siguiente:
@FOR (VENDEDORES (J) : @SUM ( BODEGAS (I) : DESPACHOS (I,J)) = DEMANDA (J));

Esta expresin de LINGO reemplaza las ocho restricciones de demanda. En palabras esto dice que para todos los vendedores la suma de los telfonos que se despachen desde las bodegas a ese vendedor, debe ser igual a la correspondiente demanda del vendedor. La siguiente tabla comparativa muestra lo parecidas que son las dos ltimas expresiones. Notacin Matemtica j j DESPACHOSij = DEMANDAj Sintaxis de LINGO @FOR (VENDEDORES (J) : @SUM ( BODEGAS (I) : DESPACHOS (I,J) = DEMANDA (J));

Ahora continuaremos construyendo las restricciones de capacidad de suministro. En notacin matemtica estndar, las seis restricciones de oferta se expresaran como: j DESPACHOS ij OFERTAi , i La expresin equivalente en el lenguaje de modelacin de LINGO sera:
@FOR (BODEGAS (I) : @SUM (VENDEDORES (J) : DESPACHOS (I,J)) <= OFERTA (I));

INICIALIZANDO 19 En palabras esto indica que para cada miembro del set "Bodegas", la suma de los telfonos despachados a los vendedores desde esa bodega, debe ser menor o igual a la capacidad de suministro u oferta de esa bodega. Colocando junto todo lo realizado hasta el momento se obtiene el siguiente modelo completo:
MODEL: MIN = @SUM (ARCOS (I,J) : COSTOS (I,J) * DESPACHOS (I,J)); @FOR (VENDEDORES (J) : @SUM ( BODEGAS (I) : DESPACHOS (I,J)) = DEMANDA (J)); @FOR (BODEGAS (I) : @SUM (VENDEDORES (J) : DESPACHOS (I,J)) <= OFERTA (I)); END

Modelo: WIDGETS Sin embargo, todava necesitamos definir los datos del modelo, en lo que LINGO denomina "Seccin de Sets" y la "Seccin de Data". Estas secciones se describen en detalle mas abajo. Definiendo los Sets Cada vez que usted est modelando un sistema de la vida real, normalmente encontrar que hay uno o ms sets de objetos relacionados. Ejemplos caractersticos son Fbricas, clientes, vehculos y empleados. Normalmente si una restriccin es aplicable a un miembro de un set, entonces ser aplicable a cualquiera y cada uno de los restantes miembros del set. Este simple concepto es el corazn del lenguaje de modelacin de LINGO. LINGO le permite definir los sets de objetos relacionados en la seccin de SETS. Esta seccin comienza con la palabra clave SETS: en una lnea propia y termina con ENDSETS tambin en una lnea propia. Una vez que los miembros de los sets estn definidos, LINGO tiene un grupo de funciones que relacionan los sets. (i.e. @FOR), que aplica operaciones a todos los miembros de un set utilizando una instruccin nica. Vea el Captulo II Utilizando Sets para mayor informacin. En el caso de nuestro modelo de WP, hemos construido los siguientes Sets: BODEGAS VENDEDORES y ARCOS de transporte desde cada bodega a cada vendedor. Estos tres sets se definen en la seccin sets del modelo como se indica a continuacin:
SETS : BODEGAS/ B1 B2 B3 B4 B5 B6 / : OFERTA; VENDEDORES / V1 V2 V3 V4 V5 V6 V7 V8/ : DEMANDA; ARCOS (BODEGAS, VENDEDORES) : COSTOS, DESPACHOS; ENDSETS

La segunda lnea dice que el set BODEGAS tiene los miembros B1, B2, B3, B4, B5 y B6, cada uno con un atributo llamado OFERTA. Los ocho vendedores se definen en forma similar en la tercera lnea, cada uno con un atributo llamado DEMANDA.

20 CAPITULO I El ltimo set denominado ARCOS representa los 48 arcos en la red de transporte. Cada arco tiene un asociado un COSTO y una cantidad de telfonos transportados a travs de l (DESPACHOS). La sintaxis utilizada para definir este set difiere de la ocupada en los dos sets previos. Al especificar: ARCOS (BODEGAS, VENDEDORES) le estamos diciendo a LINGO que el set ARCOS se deriva de los sets BODEGAS y VENDEDORES. En este caso LINGO genera cada par ordenado (bodega-vendedor). Cada uno de estos 48 pares ordenados se transforma en un miembro del set ARCOS. Para clarificar lo anterior hemos listado una seleccin de miembros del set ARCOS en la siguiente tabla: Indice del Miembro 1 2 3 47 48 Arco de Transporte B1 V1 B1 V2 B1 V3 B6 V7 B6 V8

Podramos haber ingresado explcitamente cada miembro de ARCOS en la seccin Sets, pero LINGO nos ahorra considerable trabajo al generar los miembros del set por nosotros. Ingresando los Datos LINGO permite al usuario aislar los datos en la Seccin Datos del modelo. En nuestro ejemplo de Wireless Phone tenemos la siguiente seccin de datos:
DATA : OFERTA = 60 55 51 43 41 52; DEMANDA = 35 37 22 32 41 32 43 38; COSTOS = 62674259 49538582 52197433 76739271 23957265 5 5 2 2 8 1 4 3; ENDDATA

La seccin de datos comienza con la palabra clave DATA : en una lnea propia y termina con la palabra ENDSETS tambin en una lnea propia. Tanto el atributo de OFERTA del set BODEGAS como el de DEMANDA del set VENDEDORES se inicializan o leen de manera directa. El atributo COSTOS del set ARCOS que es bidimensional es sin embargo un tanto mas complejo. Cuando LINGO inicializa la lectura de un arreglo multidimensional en una seccin de datos, incremente primero el contador externo (j). Por lo tanto en este ejemplo en particular se leer primero COSTOS (B1,V1) = 6, luego COSTOS (B1,V2) = 2, hasta COSTOS (B1,V8) = 9. Posteriormente se continuar con la lectura de COSTOS (B2,V1) = 4 y as sucesivamente.

INICIALIZANDO 21 En este ejemplo particular hemos colocado los datos directamente en el interior de la seccin del modelo. LINGO tiene tambin la habilidad de importar datos desde fuentes externas. Ms especficamente, un modelo de LINGO puede importar datos desde archivos externos de texto o planillas de clculo, establecer enlaces OLE hacia Excel y/o crear enlaces ODBC hacia las bases de datos mas populares. Refirase a los Captulos VII hasta el X para informacin sobre enlaces hacia datos externos disponibles. Teniendo datos independientes del modelo es mucho ms fcil cambiarlos y hay menos riesgo de cometer errores al hacerlo. Esto puede ser muy til para resolver un modelo en el que se cambia frecuentemente los datos. Colocando junto la seccin de datos, la seccin de Sets, la Funcin Objetivo y las Restricciones, el modelo debe lucir como se indica:

Ntese que hemos agregado comentarios para mejorar el entendimiento del modelo y cada una de sus secciones. El modelo se llama WIDGETS y puede encontrarse en el subdirectorio "Samples" del directorio principal de LINGO. 2. Solucionando el Modelo

Resolvamos ahora el modelo para determinar la cantidad ptima de telfonos que se debe despachar desde cada bodega a cada vendedor. Seleccione en el men LINGO el comando Solve o presione el botn correspondiente en la barra de herramientas

22 CAPITULO I

Nota: Cada vez que crea que la cantidad de informacin de salida que entrega LINGO es demasiada para sus requerimientos usted puede elegir en el men LINGO el comando Options y seleccionar en la pestaa Interface la casilla Terse output. LINGO desplegar entonces en la ventana de reporte de solucin, slo el nmero de iteraciones realizadas y el valor ptimo de la Funcin Objetivo. Para obtener una respuesta que contenga slo los valores distintos de cero para los DESPACHOS, se selecciona en el men LINGO el comando Solution que da acceso a la siguiente ventana:

Presione en la flecha del campo Attribute or Row Name y seleccione DESPACHOS entre la lista de nombres que se le presenta. Para suprimir la impresin de variables con valor cero haga click en la casilla Nonzeros Only. Una vez hecho esto la ventana debe lucir como sigue:

INICIALIZANDO 23 Luego haga click en el botn OK y se le presentar el siguiente reporte de solucin que contiene todos los valores distintos de cero para la cantidad ptima de telfonos que se debe despachar desde cada bodega a cada vendedor.

Si est utilizando LINGO en una plataforma distinta a Windows, usted puede generar el mismo reporte utilizando el comando "Nonzero Volume". 3. Resumen

Esta seccin ha comenzado a demostrar las virtudes del lenguaje de modelacin basado en sets de LINGO. Eligiendo una aproximacin a modelacin basada en sets, usted encontrar que los modelos son ms fciles de construir, de entender y de mantener. La modelacin basada en sets toma un poco mas de trabajo para asimilarla, pero sus beneficios sobrepasan el esfuerzo extra necesitado para aprenderla. Profundizaremos ms en detalle la modelacin basada en sets en el prximo captulo "Utilizando Sets". F. Capacidades Adicionales del Lenguaje de Modelacin

1. Nombres de Restricciones LINGO le da la posibilidad de darle un nombre a las restricciones en su modelo. Esta es una prctica conveniente por dos razones: Primero, los nombres de las restricciones se utilizan en los reportes de solucin, hacindolas ms fciles de interpretar. Segundo, muchos de los mensajes de error de LINGO se refieren a una restriccin especfica por su nombre. Si usted no ha dado nombres a sus restricciones el descubrir la fuente de dichos errores puede llegar a ser, a lo menos, difcil.

24 CAPITULO I

Nota: LINGO no requiere que usted de nombre a sus restricciones. Sin embargo, si usted no lo hace, LINGO utiliza por defecto un nombre que corresponde al ndice interno de la restriccin. El ndice interno tiene un poco que ver con el orden en el que usted defini sus restricciones, por lo que se dificulta el trabajo de interpretar los resultados y los mensajes de error. Debido a ello es altamente recomendado que siempre utilice nombres para sus restricciones en sus modelos. Dar nombre a una restriccin es bastante simple. Todo lo que necesita hacer es colocar el nombre entre parntesis cuadrados al comienzo de la restriccin. El nombre debe obedecer los requerimientos estndar para un nombre en LINGO. Ms especficamente, todo nombre debe comenzar con un carcter alfabtico (A - Z). Los caracteres siguientes pueden ser alfabticos, numricos (0 - 9) o bien lnea de subrayado. Los nombres pueden tener hasta 32 caracteres de largo. Algunos ejemplos de nombres de restricciones se indican a continuacin: Ejemplo 1: [FUNCION_OBJETIVO] MIN = X; Asigna el nombre FUNCION_OBJETIVO a la lnea del objetivo del modelo.

Ejemplo 2:
@FOR (VENDEDORES (J) : [RESTRICCIONES_DE_DEMANDA] @SUM ( BODEGAS (I) : DESPACHOS (I,J)) = DEMANDA (J));

Asigna el nombre RESTRICCIONES_DE_DEMANDA a las restricciones de demanda de un modelo de transporte. Para ilustrar an mejor el uso de nombres en las restricciones, se ha actualizado el modelo utilizado en la seccin anterior donde se muestran los nombres en letra negrita.

INICIALIZANDO 25 La seccin de lneas de restriccin del reporte de solucin, es ahora mucho ms fcil de interpretar.

Note que cada fila tiene ahora un nombre en vez de un simple nmero ndice. Adems, si la restriccin es generada a travs de un set utilizando la funcin @FOR, LINGO agrega una cualidad al nombre de cada restriccin anexndole el correspondiente nombre del miembro del set, entre parntesis. Ejemplo: RESTRICCION_DE_DEMANDA ( V1) debe interpretarse como la restriccin de la demanda que se debe satisfacer al vendedor uno. 2. Ttulo del Modelo Usted puede insertar un ttulo para el modelo en cualquier parte donde normalmente se ingresa una restriccin. Si se incluye el Ttulo, ste aparecer impreso al comienzo del reporte de solucin. El ttulo se usa tambin como argumento por defecto en la funcin @ODBC. (Ver Captulo X "Interactuando con Bases de Datos"). El ttulo del modelo debe comenzar con la palabra clave TITLE: y terminar con punto y coma. Todo el texto entre la palabra TITLE y el punto y coma se tomar como el ttulo del modelo. A continuacin hemos agregado un ttulo al comienzo del modelo del ejemplo WIDGETS. MODEL : TITLE WIDGETS; ! Un problema de transporte de 6 bodegas y 8 vendedores; SETS : BODEGAS/ B1 B2 B3 B4 B5 B6 / : OFERTA; VENDEDORES / V1 V2 V3 V4 V5 V6 V7 V8/ : DEMANDA; ARCOS (BODEGAS, VENDEDORES) : COSTOS, DESPACHOS; -----

26 CAPITULO I Note que cuando se despliega el reporte de solucin, el ttulo aparece en la parte superior.

G.

Dimensiones Mximas de Problemas

Algunas de las versiones de LINGO limitan una o ms de las siguientes propiedades: nmero total de variables, cantidad de variables enteras, cantidad de variables no lineales y cantidad de restricciones. El lmite en la cantidad total de variables es sobre el nmero total de variables optimizables que hay en su modelo, en otras palabras, las variables que LINGO no ha sido capaz de descubrir que tengan un valor fijo especfico. El lmite de cantidad de variables enteras aplica sobre el nmero total de variables optimizables restringidas a tener valores enteros a travs de las funciones @BIN o bien @GIN. El lmite al nmero de variables no lineales aplica sobre el nmero de variables optimizables que aparecen con relaciones no lineales en las restricciones del modelo. Por ejemplo en la expresin X + Y, ambas variables, X e Y aparecen con relacin lineal, sin embrago en la expresin X^2 + Y, X aparece no lineal mientras Y aparece lineal. Por lo tanto X aparecer en la contabilizacin de variables no lineales. En algunos casos, la posibilidad de incluir variables no lineales est disponible slo si usted ha adquirido la Opcin "No Lineal" con su sistema LINGO. El lmite al nmero de restricciones se refiere al nmero de frmulas en el modelo que contienen una o ms variables optimizables. Tenga en consideracin que una lnea sencilla con la funcin @FOR, puede generar muchas restricciones. El tamao mximo del modelo que pueda manejar su sistema depende de la versin que usted tenga. Los lmites actuales para las diferentes versiones disponibles son: Versin Demo/ Web Solver Suite Super Hyper Industrial Extended Variables Totales 300 500 2000 8000 32000 Ilimitada Variables enteras 30 50 200 800 3200 Ilimitada Variables no Lineales 30 50 200 800 3200 Ilimitada Restricciones 150 250 1000 4000 16000 Ilimitada

INICIALIZANDO 27 Usted puede determinar los lmites de su versin seleccionando el comando About LINGO en el men HELP en Windows, o bien, tipeando HELP en la lnea de ingreso de comandos en otras plataformas. Si usted determina que necesita una versin ms grande de LINGO, existen actualizaciones disponibles a travs de LINDO Systems. Por favor no vacile en contactarnos por precios y disponibilidades. Nota 1: Los lmites para diferentes versiones de LINGO estn sujetos a cambios. Revise nuestra pgina WEB http://www.lindo.com para conocer los lmites actuales. Nota 2: En algunas versiones de LINGO, el lmite de variables no lineales ser cero si usted no ha comprado la opcin no lineal con su copia de LINGO. H. Como Contactar LINDO Systems

LINDO SYSTEMS puede ser contactado a travs de las siguientes direcciones y telfonos: LINDO Systems Inc. 1415 North Dayton Street Chicago, IL, 60622 Tel: Fax: e-mail: web: 312-988-7422 312-988-9065 info@lindo.com http://www.lindo.com

Para ventas e informacin de productos, por favor contctenos en: Tel: e-mail: 1-800-441-2378 o sales@lindo.com 312-988-7422

Para soporte tcnico preferimos que nos enve su modelo y las preguntas por correo electrnico a: tech@lindo.com. Puede usted tambin hablar con el personal de soporte tcnico al telfono 312-988-9421. Nuestro personal de soporte tcnico le puede ayudar con preguntas relacionadas con la instalacin y operacin de LINGO. Si usted tiene preguntas sencillas sobre modelacin, generalmente podremos ayudarle a seguir en la direccin correcta. Si usted tiene preguntas de modelacin mas extensas, podemos recomendarle consultores externos versados especficamente en modelacin matemtica en general, que pueden ayudarle en sus esfuerzos de modelacin.

S-ar putea să vă placă și