P. 1
Manual Usuario Software Lindo-programación lineal

Manual Usuario Software Lindo-programación lineal

3.0

|Views: 7.905|Likes:
Universidad Nacional Mayor de San Marcos, Lima Perú
Universidad Nacional Mayor de San Marcos, Lima Perú

More info:

Published by: Stephany Daneri Beltran on May 23, 2012
Copyright:Traditional Copyright: All rights reserved

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
See more
See less

11/26/2015

2012

UNMSM-FISI
MANUAL DE USUARIO DEL SOFTWARE
PARA PROGRAMACIÓN LINEAL LINDO
VERSIÓN 6.1
Ingeniería de Software

Daneri Beltrán, Stephany











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í:



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:

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ú Archivo
Menú Edición
Menú Solve
o Resolución
Menú
Ventanas
Menú
Reporte
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


B o t ó n S e n d T o B a c k ( i c o n o q u e m u e s t r a
d o s v e n t a n a s y u n a f l e c h a d o b l e ) : C a m b i a
l a v e n t a n a a c t i v a a c t u a l p o r l a s i g u i e n t e .

B o t ó n V e n t a n a s e n m o s a i c o ( i c o n o c o n 4
v e n t a n a s e n c u a d r a d a s ) , c o l o c a l a s v e n t a n a s
e n l a f o r ma e n q u e m u e s t r a s u i c o n o .

B o t ó n C i e r r a V e n t a n a s ( i c o n o c o n u n
s i g n o d e c a n c e l a d o )



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

























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 l a
v a r i a b l e s e a b i n a r i a , s u s v a l o r e s q u e d a n
r e s t r i n g i d o s 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.

¿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 manualmente el planteamiento, el cual es el siguiente:

Tipos de Corte Rollos y sus pulgadas Desperdicio
1 30-30-30 18
2 45-45 18
3 56-45 7
4 30-30-45 3
5 56-30 22


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

Imagen Nro. 1


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:
Imagen Nro. 2















Fila 1)
Fila 2)
Fila 3)
Fila 4)



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.


Imagen Nro. 3






















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.












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


Imagen Nro. 4































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.

Interpretación del Cuadro Nro. 1







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.
Interpretación del Cuadro Nro. 2






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.
Interpretación del Cuadro Nro. 3

Análisis de sensibilidad de costes:







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


Interpretación del Cuadro Nro. 4








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.


Notas:

Si el problema planteado en el software no posee soluciones factibles aparecerá una
imagen similar a la aquí mostrada:

Imagen Nro. 5










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

Imagen Nro. 6











Parámetros de la solución:

Presionando el botón podemos mostrar los valores que las variables deberían
tener en manera gráfica.

Nos va a salir un menú como el siguiente:
Imagen Nro. 7


















Y el resultado será:
Imagen Nro. 8





















Presionando el botón podemos ver gráficamente el planteamiento del problema.

Veremos un menú como el siguiente:

Imagen Nro. 9











Su resultado será:
Imagen Nro. 10














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.







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

































Bibliografı́a
http://www.lindo.com
Página oficial de LINDO SYSTEMS INC.

http://www.slideshare.net/hectorabn/ejercicios-de-programacion-lineal-lindo-teoria-de-
decisiones

http://www.cyta.com.ar/biblioteca/bddoc/bdlibros/analisis_sensibilidad/analisis_sensibil
idad_.htm

http://operativa.tripod.com/lindo/lindo.html

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->