manual lindo
TRANSCRIPT
-
5/27/2018 Manual Lindo
1/3
Manual de LINDO
Un escueto prontuario
Miguel Mata Perez
Version 0.2, 27 de diciembre de 2013
LINDO es un intuitivo programa para resolver proble-mas de optimizacion matematica, en particular de progra-macion lineal (continuos, enteros y binarios). El nombre deLINDO es un acronimo de Linear, INteractive, and Dis-crete Optimizer. El presente pretende ser un escueto man-ual de LINDO, por lo cual aborda lo m as general de este
programa sin detenerse en detalles.
El programa LINDO puede conseguirse desde su paginaoficial,http://www.lindo.com/donde se puede descargaruna version de prueba limitada a 300 variables continuas,30 variables discretas (enteras o binarias) y 150 restric-ciones. Ideal para estudiantes.
Iniciemos con nuestro manual. Supongamos que tenemosel siguiente problema de programacion lineal:
max z= 3x1+ x2
s.a: x1+ 3x2 6
x1 x2 4
x1, x2 0
En LINDO podemos escribirlo con el siguiente codigo:
MAX 3X1 + X2
S.T.
X 1 + 3 X 2 < 6
X 1 - X 2 < 4
Con base en este primer ejemplo, podemos mencionar lassiguientes caractersticas.
1. Sensibilidad a mayusculas: LINDO es insensiblea mayusculas y minusculas, por lo cual escribir la
*El presente material es libre y puede ser usado, distribuido ycomunicado bajo las unicas condiciones de atribucion(dar credito ycitar apropiadamente) y no comercializacion(no lucrar u obtenerbeneficio alguno de su uso). Cualquier asunto relacionado con estematerial, puede ponerse en contacto con el autor en la direcci on decorreo electronico proporcionada.
funcion objetivo de la forma MAX 3X1 + X2 es completamente equivalente a Max 3X1 + X2 o a m3x1 + x2 . En este manual, por claridad utilizaremmayusculas en general.
2. Max o mn: Respecto al sentido de la optimizacio
la palabra clave con que inicia la funcion objetivo MAX para maximizar y MIN para minimizar.
3. Sujeto a: La palabra clave S.T. en el segunrenglon proviene de subject to (sujeto a, en ingles)desuch that(tal que, en ingles). Tambien puede usarST , SUBJECT TO o SUCH THAT .
4. Desigualdades: Para LINDO, las desigualdadsiempre incluyen la igualdad, por lo cual escribir simplemente < en el codigo es equivalente al operadmatematico , pero si se prefiere, LINDO tambien amite < . Por ejemp
X , Y12 , DEM.MX o VAR X son validas mientras q2INICIA , DEMASIADOLARGO , UN-GION y EUREKA! lo son.
7. Ttulo: A cada modelo puede anadirse un ttulo mdiante la palabra clave TITLE al inicio del codigo.
8. Nombres en restricciones:En LINDO cada restrcion puede tener un nombre, el cual debe escribiral inicio de la restriccion y concluir con un cierre parentesis ( ) ).
1
http://-/?-http://www.lindo.com/http://www.lindo.com/http://-/?- -
5/27/2018 Manual Lindo
2/3
Manual de LINDO M. Mata
9. Fin:Aunque en el ejemplo presentado no fue incluido,en ocasiones sera necesario indicar a LINDO que elmodelo ha concluido mediante la palabra clave END alfinalizar las restricciones.
10. Comentarios: El signo de cierre de exclamacion ( ! )es interpretado como el inicio de un comentario, el cualdebera ser ignorado por el optimizador. Dicho signopuede iniciar o no un renglon, por lo que solo el textoque se encuentre a la derecha sera considerado comocomentario.
Con estas nuevas caractersticas, nuestro primer ejemplopuede quedar de la siguiente manera:
TITLE Ejemplo 2 - Un problema de produccion
MAX 3X1 + X2 ! Maximizar ganancias
S.T.
CAP) X1 + 3X2 < 6 ! Capacidad
DEM1) X1 - X2 < 4 ! Demanda del producto 1
! Las variables deben ser no negativas
END
Observe que hemos agregado un ttulo descriptivo delmodelo y que hemos nombrado las restricciones CAP yDEM1 , ademas de que hemos colocado algunos comentar-ios.
Ahora conviene comentar un par de puntos tecnicos adi-cionales:
11. Operadores: LINDO solo reconoce cinco operadoresmatematicos: + - > < y = .
12. Estructura de las restricciones: En cada restric-cion las variables deben aparecer a la izquierda deloperador de comparacion ( > = < ) y a la derecha solodebe aparecer una constante. Por ejemplo, la restric-cion X < Y sera rechazada por el optimizador, por loque debera reescribirse como X - Y < 0 (o tambienY - X > 0 ).
Por ultimo, dado que para lindo las variables siempre sonno negativas, conviene saber como modificar este compor-
tamiento por defecto. Las siguientes instrucciones debenescribirse despues del END .
13. Variables sin restriccion de signo: La palabraclave FREE permite a la variable indicada tenercualquier valor entre y , es decir, FREE X1 esel equivalente de x1 R.
14. Variables enteras: La palabra clave GIN indica alprograma que la variable debe tener un valor entero,es decir, GIN Y1 es el equivalente a y1 Z, y1 0.
15. Variables binarias: La palabra clave INT indial programa que la variable elegida debe tener uvalor binario, es decir, INT X2 es el equivalentex2 {0, 1}.
16. Cotas:Las palabras clave SLB y SUB indican que lvariables seleccionadas tienen una cota inferior o suprior, respectivamente, el cual tambien debe ser indicdo. Por ejemplo, SLB Y4 3 indica al programa quevariable Y4 no debe tomar un valor menor a 3. Similarmente, SUB Y5 12 indica que la variable Y5 debe tomar un valor mayor a 12.
Los anteriores atributos pueden combinarse en una mma variable para emplearse como en el siguiente ejemplo
mn z=x1+ x2+ 2x3
s.a: x1+ 2x2+ 2x3 6 (R
x1+ x3 9 (R
x1 x2+ 2x3 (R
2 x1 7
x2 0 (variable no positiva)
3 x1 5
TITLE Ejemplo 3 - Variables con atributos
MIN X1 + X2 + 2X3
S.T.
R1) X1 + 2X2 + 2X3 > 6
R2) X1 + X3 > 9
R3) X1 - X2 - 2X3 > 0 ! Despejando
! Las restricciones logicas en seguida
END
! 2 < = X 1 < = 7
SLB X1 2
SUB X1 7
! X2 no positiva
FREE X2
SUB X2 0
! - 3 < = X 3 < = 5
FREE X3 ! Para que pueda tomar valores negativos
SLB X3 -3SUB X3 5
-
5/27/2018 Manual Lindo
3/3