Professional Documents
Culture Documents
Lindo es un software que sirve para construir y resolver modelos de programacin lineal, no lineal, estocsticos de manera fcil y eficiente. En esta oportunidad, veremos cmo usar este software y cmo soluciona los problemas que estbamos acostumbrados a resolver manualmente. Para realizar este tutorial hemos decidido primero abordar como es la instalacin, la funcin de los botones de la interfaz grfica del software, las palabras claves y sintaxis, cmo introducir un problema en el software y la interpretacin de los resultados. Para realizar dicha explicacin, vamos a abordar un problema y lo iremos explicando paso a paso. Cabe resaltar, que, al ser alumnos de la Facultad de Ingeniera de Sistemas e Informtica, asumimos que el lector de nuestro manual est vinculado a nuestra rama y para que se familiarice rpidamente con el tema haremos uso de analogas relativas a los lenguajes de programacin. Finalmente, esperamos que este manual logre ilustrar al lector sobre como manipular esta herramienta.
En el espacio en fondo blanco vamos a poner la sintaxis para plantear algn problema que queramos resolver. Podemos guardar el problema y su solucin; el archivo resultante tendr la extensin ltx (es decir, *.ltx) Veamos las funciones bsicas de los botones ms importantes y como se encuentran separados en mens:
Men Archivo
Men Edicin
Men Reporte
Men Ventanas
Men Archivo: Los iconos son muy conocidos, en orden: Nueva hoja, abrir modelo ya existente de Lindo, ver archivos modelo (ejemplos) de Lingo, Guardar, Imprimir ventana activa. Men Edicin: En orden: Cortar, copiar, pegar (texto), buscar/reemplazar (icono imagen de linterna), configurar Lindo (cuadrado blanco con dos aspas atravesndola), ir a lnea de la ventana activa (icono de una hoja con una lnea roja), lista de smbolos reservados en el programa y los nombres de las variables del programa (icono con dos sigmas roja y azul respectivamente) y, por ltimo; limpiar todo, que borra todo el texto que se encuentra en la ventana activa (icono con forma de borrador de un lpiz amarillo). Men Solve o Resolucin: En orden: El icono en forma de tiro al blanco simboliza al botn Resolver problema y el otro botn (con icono de mltiples ventanas blancas) compila la solucin de la ventana activa. Men Reporte En orden: Botn Solucin (con icono de una hoja y con texto X=), muestra la solucin ptima para el problema planteado en la ventana activa. Botn Parmetros del reporte (icono de una lupa y un grfico), nos muestra grficos con respecto a los valores de las variables con las que estamos trabajando. Botn NonZero Picture (icono de un cuadro de un paisaje), nos muestra grficamente como es el planteamiento del problema. Men Ventanas Botn Send To Back (icono que muestra dos ventanas y una flecha doble): Cambia la ventana activa actual por la siguiente. Botn Ventanas en mosaico (icono con 4ventanas encuadradas), coloca las ventanas en la forma en que muestra su icono. Botn Cierra Ventanas (icono con un signo de cancelado) El ltimo men hace referencia a las opciones de ayuda
Cuando programamos en lenguaje Java o C/C++, nosotros sabemos cmo hacer un comentario para el mayor entendimiento del programa, cules eran las palabras reservadas, dependiendo del lenguaje de programacin, la longitud mxima que puede tener el nombre de una variable, etc. Lindo no es ajeno a esa realidad. Si lo miramos bien, es como si estuviramos programando en otro lenguaje; adems, Lindo compila las instrucciones que le damos y como respuesta a la correcta compilacin del mismo nos lanza la respuesta. Entonces, entendiendo esto veamos cuales son las palabras reservadas:
Sean: X1: nmero de cortes del tipo 1 X2: nmero de cortes del tipo 2 X3: nmero de cortes del tipo 3 X4: nmero de cortes del tipo 4 X5: nmero de cortes del tipo 5 Cmo lo que buscamos es minimizar, entonces nuestra funcin objetivo sera: Min 18x1+18x2+7x3+3x4+22x5 Sujeto a: 3x1+2x4+x5=800 2x2+x3+x4=500 x3+x5=1000 Este planteamiento lo vamos a trabajar en Lindo
Como podemos ver el planteamiento y la sintaxis que se tiene que usar en el programa es muy similar. Para resolver el problema presionamos el botn Al ejecutarse el anlisis, vamos a ver lo siguiente:
Nos han salido dos ventanas; una que nos muestra la solucin del problema planteado y la otra que nos pregunta si deseamos realizar un anlisis de sensibilidad al problema. Respondemos en esta ocasin que s, y el anlisis ya ha sido completado. La ventana del LINDO Solver Status, nos muestra informacin concerniente al proceso de resolucin del problema.
Los resultados mostrados indican que el problema ha logrado encontrar el ptimo, que el proceso ha tenido 2 iteraciones y que la funcin objetivo es 16300. Recordemos que Lindo, asume por defecto las condiciones de no negatividad.
Con el botn podemos ver la ventana de resultados y si lo volvemos a presionar veremos la ventana en la que hemos planteado el problema.
Analicemos el reporte: Nos dice en la lnea 1) que la solucin ptima para el problema fue encontrado en la tercera iteracin. Luego que el valor de la funcin objetivo es 16300
La columna de variables nos muestran los nombres asignados a las mismas. La columna de valor nos indica cuales deben ser los valores de cada variable para poder obtener la solucin ptima. La columna Reduced Cost es el zj cj de cada variable en la tabla del simplex.
Fila 2), 3) y 4) hacen referencia a las indicadas en la Imagen Nro. 1. La columna Slack Or Surplus: Mide lo que queda del recurso en la restriccin y, por tanto, es el valor de la variable de holgura asociada a esa restriccin. La columna Dual Prices: Precio sombra o valor de la variable dual. Es, por tanto, el zj de la variable de holgura correspondiente a esa restriccin.
Podemos apreciar en Current Coef. cul es coeficiente actual de cada variable en la funcin objetivo. Columna Allowable increase, cantidad en la que se puedo incrementar el coeficiente sin que cambie la base. Columna Allowable decrease, cantidad en la que se puedo incrementar el coeficiente sin que cambie la base.
La columna Current Rhs: Valor del recurso en la restriccin 2, 3 y 4 respectivamente. La columna Allowable Increase: Cantidad en la que puedo incrementar el coeficiente sin que cambie la base. La columna Allowable Decrease: Cantidad en la que puedo reducir el coeficiente sin que cambie la base.
Notas:
Si el problema planteado en el software no posee soluciones factibles aparecer una imagen similar a la aqu mostrada:
Parmetros de la solucin:
Y el resultado ser:
Presionando el botn
Su resultado ser:
Si vemos de cerca la primera fila del cuadro hace referencia a la funcin objetivo. La 2da, 3era y 4ta a las tres restricciones a las que el problema est sujeto.