You are on page 1of 16

2012

MANUAL DE USUARIO DEL SOFTWARE


UNMSM-FISI

PARA PROGRAMACIN LINEAL LINDO


VERSIN 6.1

Ingeniera de Software
Daneri Beltrn, Stephany

Introduccio n

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.

Instalacio n y funcionamiento ba sico

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

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
B o t n Se n d
T o
B a c k (ic o n o q ue
m u estra
d os ve nta nas y u na flech a d o ble): Ca m b i a
la ve nta na acti v a act ual p o r la si g uie nte.
B o t n
V e nta nas en m os aic o (ic o n o co n 4
v e nta n as en c u a d r a d as), co l o c a las ve nta n as
e n la f or m a e n q u e m u estra su ic o n o.
B o t n
Cierra
V e nta nas
si g n o de ca n cela d o)

(ic o n o

El ltimo men hace referencia a las opciones de ayuda.

co n

u n

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 l a
v a ri a bl e sea bi n ari a, s us v a l o res q u e d a n
restri n gi d os 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.

Co mo introducir un problema en la
herramienta 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 manualmente el planteamiento, el cual es el siguiente:
Tipos de Corte
1
2
3
4
5

Rollos y sus pulgadas


30-30-30
45-45
56-45
30-30-45
56-30

Desperdicio
18
18
7
3
22

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

Imagen Nro. 1

Fila 1)

Fila 2)

Fila 3)

Fila 4)

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:

Imagen Nro. 2

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.

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

Imagen Nro. 4

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.

Interpretacin 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 solucin ptima.
La columna Reduced Cost es el zj cj de cada variable en la tabla del simplex.

Interpretacin 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 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.

Interpretacin del Cuadro Nro. 3


Anlisis de sensibilidad de costes:

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

Interpretacin del Cuadro Nro. 4

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:

Imagen Nro. 5

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

Imagen Nro. 6

Parmetros de la solucin:
Presionando el botn
tener en manera grfica.

podemos mostrar los valores que las variables deberan

Nos va a salir un men como el siguiente:

Imagen Nro. 7

Y el resultado ser:

Imagen Nro. 8

Presionando el botn

podemos ver grficamente 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 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:

Bibliografa

http://www.lindo.com
Pgina oficial de LINDO SYSTEMS INC.

http://www.slideshare.net/hectorabn/ejercicios-de-programacion-lineal-lindo-teoria-dedecisiones
http://www.cyta.com.ar/biblioteca/bddoc/bdlibros/analisis_sensibilidad/analisis_sensibil
idad_.htm
http://operativa.tripod.com/lindo/lindo.html