Lingo
1
Breve descripción del programa LINDO
Introducción
Los ejemplos de esta guía se realizaron con el software LINDO (Linear Interactive and Discrete Optimizer) 6.1, que permite resolver modelos de Programación Lineal Continua y/o Entera y hacer el correspondiente análisis de sensibilidad. En el sitio http://www.lindo.com puede bajarse una versión académica quepermite modelos de hasta 300 variables (a lo sumo 30 enteras) y 150 restricciones.
Ingreso de un modelo simple
Vamos a ingresar el modelo de la figura en LINDO: 4 X + 3 Y ≤ 10 3 X + 5 Y ≤ 12 Z=2X + 3Y Máx. El modelo debe comenzar por la función objetivo precedida de MAX o MIN según se la quiera maximizar o minimizar respectivamente. Puede constar de una o más líneas y se separa del resto del modelomediante la expresión SUBJECT TO (puede abreviarse como ST) que indica que la función objetivo esta “sujeta a” las restricciones que se indicarán a continuación.
MAX 2X + 3Y ST
Seguidamente se ingresan las restricciones (aunque pueden estar separadas por espacios, se suelen ingresar en líneas separadas para mejorar la legibilidad). El modelo finaliza con la expresión END.
!Restricciones MP)4X + 3Y < 10 MO) 3X + 5Y < 12 END
Las reglas que tuvimos en cuenta al hacer este trabajo son: Cada término, en cualquier restricción (o en la función objetivo), contiene: [+|–] [coef.] [nombre_variable], siempre en ese orden (no necesariamente separados por blancos). El signo más (+) también es opcional, así como el coeficiente, si fuera 1. El nombre de la variable debe comenzar con una letra ypuede contener hasta 8 caracteres alfanuméricos. Todos los términos variables deben ir a la izquierda de la inecuación y cada término independiente a la derecha. Si el modelo no estuviera formulado de esta manera, se deberá operar y pasar de términos hasta llegar a la misma. Como no se pueden utilizar desigualdades estrictas LINDO admite el uso de estos signos en vez de los que incluyen igualdad(“” a “≥”). Las ecuaciones se pueden rotular con un nombre que debe seguir las reglas usadas para denominar las variables. Luego del mismo se incluye un paréntesis de cierre. Esto simplifica notablemente la comprensión de los reportes.
2
Modelos y Optimización I
Pueden incluirse comentarios para mejorar la legibilidad del modelo anteponiendo un signo de admiración (cierre) a los mismospara que LINDO lo ignore al compilar el modelo. Aquí tenemos el modelo terminado:
MAX 2X + 3Y ST !Restricciones MP) 4X + 3Y < 10 MO) 3X + 5Y < 12 END
El resultado de la corrida
Una vez completado el modelo se compila mediante la opción Compile Model del menú Solve y se ejecuta con la opción Solve del mismo menú. Puede omitirse el paso de la compilación (Solve compila automáticamente en caso deser necesario) aunque el mismo evita la mayoría de los “cuelgues” en los últimos sistemas Windows.
Al resolver el modelo el programa abre un cuadro con el estado de la solución y algunos datos acerca de la misma. Los posibles estados (status) son: Infeasible: el modelo es incompatible (no tiene solución válida). Previamente se presenta un cuadro que explica la situación (NO FEASIBLESOLUTION…). Unbounded: el modelo es un poliedro abierto (el funcional no está restringido). Previamente se presenta un cuadro que explica la situación (UNBOUNDED SOLUTION …). Optimal: se llegó a una solución óptima. Se presenta la posibilidad de realizar un análisis de sensibilidad del rango de variación de los coeficientes de la función objetivo y los términos independientes de las restricciones. En todoslos casos, una vez que se cierran los cuadros emergentes se podrá ver el reporte de la corrida que se muestra a continuación.
Modelos y Optimización I LP OPTIMUM FOUND AT STEP 2
3
OBJECTIVE FUNCTION VALUE 1) VARIABLE X Y ROW MP) MO) 7.454545 VALUE 1.272727 1.636364 SLACK OR SURPLUS 0.000000 0.000000 2 REDUCED COST 0.000000 0.000000 DUAL PRICES 0.090909 0.545455
NO. ITERATIONS=...
Regístrate para leer el documento completo.