Anda di halaman 1dari 14

2012

UNMSM-FISI

MANUAL DE USUARIO DEL SOFTWARE PARA PROGRAMACIN LINEAL LINDO VERSIN 6.1

Ingeniera de Software

Daneri Beltrn, Stephany

Introduccin

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.

Instalacin y funcionamiento bsico


Descargue el software de la pgina oficial de Lindo (http://www.lindo.com). Se le permite descargar un trial. Puede elegir entre distintas versiones, tales como la 5.0, 6.0, 6.1, 7.0. Todas compatibles con Windows Xp y 7. Esta versin corresponde al Lindo Classics. Luego, al dar doble clic al instalador, le da siguiente hasta que aparezca la opcin Finalizar. Por lo general, el programa tiene la opcin seleccionada de iniciar la aplicacin apenas termine la instalacin del mismo. Una vez que se abre la aplicacin por primera vez, la ventana aparecer as:

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 Solve o Resolucin

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

Palabras clave y sintaxis

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:

! : Con el signo de admiracin se pueden realizar comentarios, al momento de la


compilacin la lnea que tiene el smbolo mencionado adelante no tomar en cuenta lo que est escrito ah. Es obligatorio que la lnea comience con ! si se desea hacer comentarios. Max/Min: Se usa para sealar qu tipo de problema tenemos que solucionar, si es de maximizacin o de minimizacin. Se pone antes de poner la funcin objetivo. Subject to/ st: sujeto a, recordemos que esta expresin se coloca siempre justo despus de mostrar la funcin objetivo. >, <, =, <=, >= : Signos de restriccin, funcionan tal y como los conocemos en todos lados. FREE: Modificador de una variable, por lo general, en Lindo siempre se asumen las condiciones de no negatividad, pero si estamos ante un problema en el campo de economa y necesitamos dejar de lado esas restricciones escribimos FREE antes de la variable. GIN: Modificador de una variable; existen casos, en el que la solucin de un problema es hacer, por ejemplo, 14.48 mesas, pero nosotros sabemos que eso es imposible as que tenemos que ver que es lo ms ptimo si fabricar 14 o 15 sillas dependiendo el caso. Se coloca antes de la variable. INT: Modificador de una variable, se hace uso de ella cuando queremos que la variable sea binaria, sus valores quedan restringidos a 0 1. Y, esto es lo necesario para manipular Lingo, ya que su sintaxis es muy simple y casi igual a cuando es uno quien resuelve el problema manualmente.

Cmo introducir un problema en la herra mienta Lindo?


En el curso, hemos visto como se debe plantear correctamente un problema de programacin lineal, y como ejemplo, tomaremos este problema (que hemos desarrollado en una prctica) para hacer la demostracin de cmo funciona la aplicacin: Problema de corte: Una empresa provee lminas metlicas, las mismas que se proveen en rollos. Se hace un pedido de 8000 rollos de 30 pulgadas de ancho, 500 rollos de 45 pulgadas de ancho y 1000 de 56 de ancho. Si solo se tienen rollos de 108 pulgadas de ancho, Cmo se debe cortar los rollos para surtir el pedido con el mnimo desperdicio? Nosotros hemos hecho manualmente el planteamiento, el cual es el siguiente: Tipos de Corte Rollos y sus pulgadas Desperdicio1

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.

Ventana de resultados o (ventana de reporte reports window):

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:

Si hay soluciones infinitas, entonces aparecer una imagen similar a la siguiente:

Parmetros de la solucin:

Presionando el botn manera grfica.

podemos mostrar los valores que las variables deberan tener en

Nos va a salir un men como el siguiente:

Y el resultado ser:

Presionando el botn

podemos ver grficamente el planteamiento del problema.

Veremos un men como el siguiente

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.

Y esta sera la imagen que resume todo nuestro trabajo:

Anda mungkin juga menyukai