manual lindo

14

Click here to load reader

Upload: hola-soy-yo

Post on 23-Jul-2015

188 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Manual Lindo

2012

UNMSM-FISI

Ingeniería de Software

Daneri Beltrán, Stephany

MANUAL DE USUARIO DEL SOFTWARE

PARA PROGRAMACIÓN LINEAL LINDO

VERSIÓN 6.1

Page 2: Manual Lindo

Introducción

Lindo es un software que sirve para construir y resolver modelos de programación

lineal, no lineal, estocásticos de manera fácil y eficiente. En esta oportunidad, veremos cómo usar

este software y cómo soluciona los problemas que estábamos acostumbrados a resolver

manualmente.

Para realizar este tutorial hemos decidido primero abordar como es la instalación, la

función de los botones de la interfaz gráfica del software, las palabras claves y

sintaxis, cómo introducir un problema en el software y la interpretación de los resultados.

Para realizar dicha explicación, vamos a abordar un problema y lo iremos

explicando paso a paso. Cabe resaltar, que, al ser alumnos de la Facultad de

Ingeniería de Sistemas e Informática, asumimos que el lector de nuestro manual está

vinculado a nuestra rama y para que se familiarice rápidamente con el tema haremos

uso de analogías relativas a los lenguajes de programación.

Finalmente, esperamos que este manual logre ilustrar al lector sobre como manipular

esta herramienta.

Instalación y funcionamiento básico

Descargue el software de la página 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 versión corresponde al Lindo Classics.

Luego, al dar doble clic al instalador, le da siguiente hasta que aparezca la opción Finalizar. Por

lo general, el programa tiene la opción seleccionada de iniciar la aplicación apenas

termine la instalación del mismo.

Una vez que se abre la aplicación por primera vez, la ventana aparecerá así:

Page 3: Manual Lindo

En el espacio en fondo blanco vamos a poner la sintaxis para plantear algún

problema que queramos resolver. Podemos guardar el problema y su solución; el

archivo resultante tendrá la extensión ltx (es decir, *.ltx)

Veamos las funciones básicas de los botones más importantes y como se encuentran separados en

menús:

Menú Archivo

Menú Edición

Menú

Reporte

Menú Solve

o Resolución

Menú

Ventanas

Page 4: Manual Lindo

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ú Edición:

En orden:

Cortar, copiar, pegar (texto), buscar/reemplazar (icono imagen de linterna),

configurar Lindo (cuadrado blanco con dos aspas atravesándola), ir a línea de la

ventana activa (icono de una hoja con una línea roja), lista de símbolos 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 lápiz amarillo).

Menú Solve o Resolución:

En orden:

El icono en forma de tiro al blanco simboliza al botón Resolver problema y el otro botón (con

icono de múltiples ventanas blancas) compila la solución de la ventana activa.

Menú Reporte

En orden:

Botón Solución (con icono de una hoja y con texto “X=”), muestra la solución

óptima para el problema planteado en la ventana activa.

Botón Parámetros del reporte (icono de una lupa y un gráfico), nos muestra gráficos

con respecto a los valores de las variables con las que estamos trabajando.

Botón NonZero Picture (icono de un cuadro de un paisaje), nos muestra gráficamente como es el

planteamiento del problema.

Menú Ventanas

Botón Send To Back (icono que muestra dos ventanas y una flecha doble): Cambia

la ventana activa actual por la siguiente.

Botón Ventanas en mosaico (icono con 4ventanas encuadradas), coloca las ventanas

en la forma en que muestra su icono.

Botón Cierra Ventanas (icono con un signo de cancelado)

El último menú hace referencia a las opciones de ayuda

Page 5: Manual Lindo

Palabras clave y sintaxis

Cuando programamos en lenguaje Java o C/C++, nosotros sabemos cómo hacer un comentario

para el mayor entendimiento del programa, cuáles eran las palabras reservadas,

dependiendo del lenguaje de programación, la longitud máxima que puede tener el nombre de una

variable, etc.

Lindo no es ajeno a esa realidad. Si lo miramos bien, es como si estuviéramos programando en

otro lenguaje; además, Lindo compila las instrucciones que le damos y como respuesta

a la correcta compilación del mismo nos lanza la respuesta.

Entonces, entendiendo esto veamos cuales son las palabras reservadas:

! : Con el signo de admiración se pueden realizar comentarios, al momento de la

compilación la línea que tiene el símbolo mencionado adelante no tomará en cuenta

lo que esté escrito ahí. Es obligatorio que la línea comience con “!” si se desea hacer

comentarios.

Max/Min: Se usa para señalar qué tipo de problema tenemos que solucionar, si es

de maximización o de minimización. Se pone antes de poner la función objetivo.

Subject to/ st: “sujeto a”, recordemos que esta expresión se coloca siempre justo después de

mostrar la función objetivo.

>, <, =, <=, >= : Signos de restricción, 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 economía y

necesitamos dejar de lado esas restricciones escribimos “FREE” antes de la variable.

GIN: Modificador de una variable; existen casos, en el que la solución 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 más ó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.

Page 6: Manual Lindo

¿Cómo introducir un problema en la

herramienta Lindo?

En el curso, hemos visto como se debe plantear correctamente un problema de programación

lineal, y como ejemplo, tomaremos este problema (que hemos desarrollado en una

práctica) para hacer la demostración de cómo funciona la aplicación:

Problema de corte:

Una empresa provee láminas metálicas, 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, ¿Cómo se debe cortar los

rollos para surtir el pedido con el mínimo desperdicio?

Nosotros hemos hecho manualmente el planteamiento, el cual es el siguiente:

Tipos de Corte Rollos y sus pulgadas Desperdicio1

Sean:

X1: número de cortes del tipo 1

X2: número de cortes del tipo 2

X3: número de cortes del tipo 3

X4: número de cortes del tipo 4

X5: número de cortes del tipo 5

Cómo lo que buscamos es minimizar, entonces nuestra función objetivo sería:

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

Page 7: Manual 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 botón

Al ejecutarse el análisis, vamos a ver lo siguiente:

Page 8: Manual Lindo

Nos han salido dos ventanas; una que nos muestra la solución del problema

planteado y la otra que nos pregunta si deseamos realizar un análisis de sensibilidad al problema.

Respondemos en esta ocasión que sí, y el análisis ya ha sido completado.

La ventana del LINDO Solver Status, nos muestra información concerniente al

proceso de resolución del problema.

Los resultados mostrados indican que el problema ha logrado encontrar el óptimo,

que el proceso ha tenido 2 iteraciones y que la función objetivo es 16300.

Recordemos que Lindo, asume por defecto las condiciones de no negatividad.

Con el botón podemos ver la ventana de resultados y si lo volvemos a presionar veremos

la ventana en la que hemos planteado el problema.

Page 9: Manual Lindo

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

Analicemos el reporte:

Nos dice en la línea 1) que la solución óptima para el problema fue encontrado en la

tercera iteración. Luego que el valor de la función 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 solución óptima.

La columna Reduced Cost es el zj – cj de cada variable en la tabla del simplex.

Page 10: Manual Lindo

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 restricción y, por

tanto, es el valor de la variable de holgura asociada a esa restricción.

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 restricción.

Podemos apreciar en Current Coef. cuál es coeficiente actual de cada variable en la

función 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 restricción 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.

Page 11: Manual Lindo

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:

Parámetros de la solución:

Presionando el botón podemos mostrar los valores que las variables deberían tener en

manera gráfica.

Page 12: Manual Lindo

Nos va a salir un menú como el siguiente:

Y el resultado será:

Page 13: Manual Lindo

Presionando el botón podemos ver gráficamente 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 función objetivo.

La 2da, 3era y 4ta a las tres restricciones a las que el problema está sujeto.

Page 14: Manual Lindo

Y esta sería la imagen que resume todo nuestro trabajo: