SlideShare una empresa de Scribd logo
2
Lo más leído
Manual de LINDO
Un escueto prontuario
Miguel Mata Pérez
miguel.matapr@uanl.edu.mx
Versión 0.3, 7 de agosto de 2015
LINDO es un intuitivo programa para resolver proble-
mas de optimización matemática, en particular de progra-
mación lineal (continuos, enteros y binarios). El nombre de
LINDO es un acrónimo de Linear, INteractive, and Discre-
te Optimizer. El presente pretende ser un escueto manual
de LINDO, por lo cual aborda lo más general de este pro-
grama sin detenerse en detalles.
El programa LINDO puede conseguirse desde su página
oficial, http://www.lindo.com/ donde se puede descargar
una versión de prueba limitada a 300 variables continuas,
30 variables discretas (enteras o binarias) y 150 restriccio-
nes. Ideal para estudiantes.
Iniciemos con nuestro manual. Supongamos que tenemos
el siguiente problema de programación lineal:
m´ax z = 3x1 + x2
s.a: x1 + 3x2 ≤ 6
x1 − x2 ≤ 4
x1, x2 ≥ 0
En LINDO podemos escribirlo con el siguiente código:
MAX 3X1 + X2
S.T.
X1 + 3X2 < 6
X1 - X2 < 4
Con base en este primer ejemplo, podemos mencionar las
siguientes características.
1. Insensibilidad a mayúsculas: LINDO es insensible
a mayúsculas y minúsculas, por lo cual escribir la fun-
ción objetivo de la forma MAX 3X1 + X2 es comple-
tamente equivalente a Max 3X1 + X2 o a max 3x1 +
*El presente material es libre y puede ser usado, distribuido y
comunicado bajo las únicas condiciones de atribución (dar crédito y
citar apropiadamente) y no comercialización (no lucrar u obtener
beneficio alguno de su uso). Cualquier asunto relacionado con este
material, puede ponerse en contacto con el autor en la dirección de
correo electrónico proporcionada.
x2 . En este manual, por claridad, utilizaremos mayús-
culas en general.
2. Máx o mín: Respecto al sentido de la optimización,
la palabra clave con que inicia la función objetivo es
MAX para maximizar y MIN para minimizar.
3. «Sujeto a»: La palabra clave S.T. en el segundo
renglón proviene de subject to (sujeto a, en inglés) o
de such that (tal que, en inglés). También puede usarse
ST , SUBJECT TO o SUCH THAT .
4. Desigualdades: Para LINDO, las desigualdades
siempre incluyen la igualdad, por lo cual escribir sim-
plemente < en el código es equivalente al operador
matemático ≤, pero si se prefiere, LINDO también ad-
mite <= . Similarmente para ≥.
5. No negatividad: Para LINDO, por defecto las va-
riables son siempre no negativas, por lo cual no ha
sido necesario especificar en el código las restricciones
lógicas x1, x2 ≥ 0.
Después de lo básico, cuyo uso ha podido apreciarse en
nuestro primer ejemplo, conviene mencionar algunas cosas
útiles adicionales.
6. Nombres de las variables: Los nombres de las varia-
bles deben comenzar con un carácter alfabético (A a la
Z) seguido de hasta siete caracteres más que excluyan
los símbolos ! ) + - = > < . Por ejemplo, X , Y12 ,
DEM.MX o VAR_X son válidas mientras que 2INICIA ,
DEMASIADOLARGO, UN-GION y EUREKA! no lo son.
7. Título: A cada modelo puede añadirse un título me-
diante la palabra clave TITLE al inicio del código.
8. Nombres en restricciones: En LINDO cada restric-
ción puede tener un nombre, el cual debe escribirse al
inicio de la restricción y concluir con un cierre de pa-
réntesis ( ) ).
9. Fin: Aunque en el ejemplo presentado no fue incluido,
en ocasiones será necesario indicar a LINDO que el
1
Manual LINDO
Manual de LINDO M. Mata 2
modelo ha concluido mediante la palabra clave END al
finalizar las restricciones.
10. Comentarios: El signo de cierre de exclamación ( ! )
es interpretado como el inicio de un comentario, el cual
deberá ser ignorado por el optimizador. Dicho signo
puede iniciar o no un renglón, por lo que sólo el texto
que se encuentre a la derecha será considerado como
comentario.
Con estas nuevas características, nuestro primer ejemplo
puede 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 título descriptivo del
modelo y que hemos nombrado las restricciones CAP y
DEM1 , además de que hemos colocado algunos comentarios.
Ahora conviene comentar un par de puntos técnicos adi-
cionales:
11. Operadores: LINDO sólo reconoce cinco operadores
matemáticos: + , - , = , > y < .
12. Estructura de las restricciones: En cada restric-
ción las variables deben aparecer a la izquierda del
operador de comparación ( > = < ) y a la derecha sólo
debe aparecer una constante. Por ejemplo, la restric-
ción X < Y será rechazada por el optimizador, por lo
que debería reescribirse como X - Y < 0 (o también
Y - X > 0 ).
Por último, dado que para lindo las variables siempre son
no negativas, conviene saber cómo modificar este compor-
tamiento por defecto. Las siguientes instrucciones deben
escribirse después del END .
13. Variables sin restricción de signo: La palabra cla-
ve FREE permite a la variable indicada tener cualquier
valor entre −∞ y ∞, es decir, FREE X1 es el equiva-
lente de x1 ∈ R.
14. Variables enteras: La palabra clave GIN indica al
programa que la variable debe tener un valor entero
(no negativo), es decir, GIN Y1 es el equivalente a
y1 ∈ Z, y1 ≥ 0.
15. Variables binarias: La palabra clave INT indica
al programa que la variable elegida debe tener un
valor binario, es decir, INT X2 es el equivalente a
x2 ∈ {0, 1}.
16. Cotas: Las palabras clave SLB y SUB indican que las
variables seleccionadas tienen una cota inferior o su-
perior, respectivamente, el cual también debe ser indi-
cado. Por ejemplo, SLB Y4 3 indica al programa que
la variable Y4 no debe tomar un valor menor a 3. Si-
milarmente, SUB Y5 12 indica que la variable Y5 no
debe tomar un valor mayor a 12.
Los anteriores atributos pueden combinarse en una mis-
ma variable para emplearse como en el siguiente ejemplo:
m´ın z = x1 + x2 + 2x3
s.a: x1 + 2x2 + 2x3 ≥ 6 (R1)
x1 + x3 ≥ 9 (R2)
x1 ≥ x2 + 2x3 (R3)
2 ≤ x1 ≤ 7
x2 ≤ 0 (variable no positiva)
− 3 ≤ x3 ≤ 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 <= X1 <= 7
SLB X1 2
SUB X1 7
! X2 no positiva
FREE X2
SUB X2 0
! -3 <= X3 <= 5
FREE X3 ! Para que pueda tomar valores negativos
SLB X3 -3
SUB X3 5

Más contenido relacionado

PPTX
Pruebas de hipótesis Por mi
PDF
Apuntes de calculo integral fracciones parciales (9) pof. luis castro pérez
PPT
5 teoremas probabilidad
PPS
Prog lineal 64-ejerlibro
PDF
ejercicios-resueltos-integrales-dobles-y-triples-2011
PDF
Ecuaciones Diferenciales - Teoria de Ecuaciones Diferenciales no lineales
PPTX
Dominio y Rango de Funciones Reales
Pruebas de hipótesis Por mi
Apuntes de calculo integral fracciones parciales (9) pof. luis castro pérez
5 teoremas probabilidad
Prog lineal 64-ejerlibro
ejercicios-resueltos-integrales-dobles-y-triples-2011
Ecuaciones Diferenciales - Teoria de Ecuaciones Diferenciales no lineales
Dominio y Rango de Funciones Reales

La actualidad más candente (20)

PDF
Aplicaciones de Ecuaciones Diferenciales
PPTX
Cálculo Actuarial Estatus de Vida Conjunta
DOCX
Ejercicio de probabilidad
DOCX
Ejercicios de prueba de hipotesis
DOCX
Solucionario estadistica descriptiva iv
PPTX
Prueba de hipótesis 2016
PPT
Coeficientes indeterminados
PDF
Fórmulas y factores_de_finanzas
PDF
Distribución exponencial y lognormal
PPTX
P.p. analisis causa raiz
PDF
METODOS NUMERICOS para ingenieria -Chapra
PPTX
ECUACIONES DIFERENCIALES DE VARIABLES SEPARABLES Y
PPTX
Algunas Distribuciones de Probabilidad Discreta
PDF
Funciones Rango y Dominio
PPTX
7 aproximacion de funciones
DOC
Conceptos programacion lineal
 
PPTX
Pruebas de Hipótesis para dos medias y proporciones.estadistica
PPTX
Ecuaciones diferenciales de coeficientes por operador anular
DOC
Probabilidad
PDF
E.D. Examen Final (2017-I)
Aplicaciones de Ecuaciones Diferenciales
Cálculo Actuarial Estatus de Vida Conjunta
Ejercicio de probabilidad
Ejercicios de prueba de hipotesis
Solucionario estadistica descriptiva iv
Prueba de hipótesis 2016
Coeficientes indeterminados
Fórmulas y factores_de_finanzas
Distribución exponencial y lognormal
P.p. analisis causa raiz
METODOS NUMERICOS para ingenieria -Chapra
ECUACIONES DIFERENCIALES DE VARIABLES SEPARABLES Y
Algunas Distribuciones de Probabilidad Discreta
Funciones Rango y Dominio
7 aproximacion de funciones
Conceptos programacion lineal
 
Pruebas de Hipótesis para dos medias y proporciones.estadistica
Ecuaciones diferenciales de coeficientes por operador anular
Probabilidad
E.D. Examen Final (2017-I)
Publicidad

Similar a Manual lindo (1) (20)

PDF
Manejo herramientas optimizacion lineal
PDF
C:\Fakepath\Manejo Herramientas Optimizacion Lineal
DOCX
PDF
Optimización con lingo
PPTX
Programas para programacion lineal
PPTX
Programas para programacion lineal
PDF
Unmsm fisi - resolución de un ppl con lindo - io1 cl08-lindo
PDF
Explicacion resultadoslindo
PPTX
Herramientas de programación lineal
PPTX
Tutorial funciones básicas Matlab
PPTX
Herramientas para programacion lineal
PDF
Tutorial Hp user rpl modo algebraico 1.2
PDF
Tutorial hp user_rpl_modo _algebraicov1.2
PDF
Introscilab
PDF
MN01_-_Introduccion_Matlab.pdf
PDF
Practica1 Matlab Operadores Básicos
PDF
Int prog matlab
PDF
16. Introducción a Matlab autor Julio Benítez Lopez y José Luis Hueso Pagoaga...
PDF
Win qsb2.0
PDF
Matlab
Manejo herramientas optimizacion lineal
C:\Fakepath\Manejo Herramientas Optimizacion Lineal
Optimización con lingo
Programas para programacion lineal
Programas para programacion lineal
Unmsm fisi - resolución de un ppl con lindo - io1 cl08-lindo
Explicacion resultadoslindo
Herramientas de programación lineal
Tutorial funciones básicas Matlab
Herramientas para programacion lineal
Tutorial Hp user rpl modo algebraico 1.2
Tutorial hp user_rpl_modo _algebraicov1.2
Introscilab
MN01_-_Introduccion_Matlab.pdf
Practica1 Matlab Operadores Básicos
Int prog matlab
16. Introducción a Matlab autor Julio Benítez Lopez y José Luis Hueso Pagoaga...
Win qsb2.0
Matlab
Publicidad

Último (20)

PDF
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
PDF
Metodologías Activas con herramientas IAG
DOCX
V UNIDAD - PRIMER GRADO. del mes de agosto
PDF
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
DOCX
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
PDF
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
DOCX
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
PDF
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
DOCX
V UNIDAD - SEGUNDO GRADO. del mes de agosto
PPTX
caso clínico iam clinica y semiología l3.pptx
PDF
COMPLETO__PROYECTO_VIVAN LOS NIÑOS Y SUS DERECHOS_EDUCADORASSOS.pdf
PDF
COMUNICACION EFECTIVA PARA LA EDUCACION .pdf
DOCX
Tarea De El Colegio Coding For Kids 1 y 2
PDF
DI, TEA, TDAH.pdf guía se secuencias didacticas
PDF
ciencias-1.pdf libro cuarto basico niños
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PDF
Híper Mega Repaso Histológico Bloque 3.pdf
PDF
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
PDF
Habitos de Ricos - Juan Diego Gomez Ccesa007.pdf
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
Metodologías Activas con herramientas IAG
V UNIDAD - PRIMER GRADO. del mes de agosto
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
V UNIDAD - SEGUNDO GRADO. del mes de agosto
caso clínico iam clinica y semiología l3.pptx
COMPLETO__PROYECTO_VIVAN LOS NIÑOS Y SUS DERECHOS_EDUCADORASSOS.pdf
COMUNICACION EFECTIVA PARA LA EDUCACION .pdf
Tarea De El Colegio Coding For Kids 1 y 2
DI, TEA, TDAH.pdf guía se secuencias didacticas
ciencias-1.pdf libro cuarto basico niños
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
Híper Mega Repaso Histológico Bloque 3.pdf
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
Habitos de Ricos - Juan Diego Gomez Ccesa007.pdf

Manual lindo (1)

  • 1. Manual de LINDO Un escueto prontuario Miguel Mata Pérez miguel.matapr@uanl.edu.mx Versión 0.3, 7 de agosto de 2015 LINDO es un intuitivo programa para resolver proble- mas de optimización matemática, en particular de progra- mación lineal (continuos, enteros y binarios). El nombre de LINDO es un acrónimo de Linear, INteractive, and Discre- te Optimizer. El presente pretende ser un escueto manual de LINDO, por lo cual aborda lo más general de este pro- grama sin detenerse en detalles. El programa LINDO puede conseguirse desde su página oficial, http://www.lindo.com/ donde se puede descargar una versión de prueba limitada a 300 variables continuas, 30 variables discretas (enteras o binarias) y 150 restriccio- nes. Ideal para estudiantes. Iniciemos con nuestro manual. Supongamos que tenemos el siguiente problema de programación lineal: m´ax z = 3x1 + x2 s.a: x1 + 3x2 ≤ 6 x1 − x2 ≤ 4 x1, x2 ≥ 0 En LINDO podemos escribirlo con el siguiente código: MAX 3X1 + X2 S.T. X1 + 3X2 < 6 X1 - X2 < 4 Con base en este primer ejemplo, podemos mencionar las siguientes características. 1. Insensibilidad a mayúsculas: LINDO es insensible a mayúsculas y minúsculas, por lo cual escribir la fun- ción objetivo de la forma MAX 3X1 + X2 es comple- tamente equivalente a Max 3X1 + X2 o a max 3x1 + *El presente material es libre y puede ser usado, distribuido y comunicado bajo las únicas condiciones de atribución (dar crédito y citar apropiadamente) y no comercialización (no lucrar u obtener beneficio alguno de su uso). Cualquier asunto relacionado con este material, puede ponerse en contacto con el autor en la dirección de correo electrónico proporcionada. x2 . En este manual, por claridad, utilizaremos mayús- culas en general. 2. Máx o mín: Respecto al sentido de la optimización, la palabra clave con que inicia la función objetivo es MAX para maximizar y MIN para minimizar. 3. «Sujeto a»: La palabra clave S.T. en el segundo renglón proviene de subject to (sujeto a, en inglés) o de such that (tal que, en inglés). También puede usarse ST , SUBJECT TO o SUCH THAT . 4. Desigualdades: Para LINDO, las desigualdades siempre incluyen la igualdad, por lo cual escribir sim- plemente < en el código es equivalente al operador matemático ≤, pero si se prefiere, LINDO también ad- mite <= . Similarmente para ≥. 5. No negatividad: Para LINDO, por defecto las va- riables son siempre no negativas, por lo cual no ha sido necesario especificar en el código las restricciones lógicas x1, x2 ≥ 0. Después de lo básico, cuyo uso ha podido apreciarse en nuestro primer ejemplo, conviene mencionar algunas cosas útiles adicionales. 6. Nombres de las variables: Los nombres de las varia- bles deben comenzar con un carácter alfabético (A a la Z) seguido de hasta siete caracteres más que excluyan los símbolos ! ) + - = > < . Por ejemplo, X , Y12 , DEM.MX o VAR_X son válidas mientras que 2INICIA , DEMASIADOLARGO, UN-GION y EUREKA! no lo son. 7. Título: A cada modelo puede añadirse un título me- diante la palabra clave TITLE al inicio del código. 8. Nombres en restricciones: En LINDO cada restric- ción puede tener un nombre, el cual debe escribirse al inicio de la restricción y concluir con un cierre de pa- réntesis ( ) ). 9. Fin: Aunque en el ejemplo presentado no fue incluido, en ocasiones será necesario indicar a LINDO que el 1 Manual LINDO
  • 2. Manual de LINDO M. Mata 2 modelo ha concluido mediante la palabra clave END al finalizar las restricciones. 10. Comentarios: El signo de cierre de exclamación ( ! ) es interpretado como el inicio de un comentario, el cual deberá ser ignorado por el optimizador. Dicho signo puede iniciar o no un renglón, por lo que sólo el texto que se encuentre a la derecha será considerado como comentario. Con estas nuevas características, nuestro primer ejemplo puede 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 título descriptivo del modelo y que hemos nombrado las restricciones CAP y DEM1 , además de que hemos colocado algunos comentarios. Ahora conviene comentar un par de puntos técnicos adi- cionales: 11. Operadores: LINDO sólo reconoce cinco operadores matemáticos: + , - , = , > y < . 12. Estructura de las restricciones: En cada restric- ción las variables deben aparecer a la izquierda del operador de comparación ( > = < ) y a la derecha sólo debe aparecer una constante. Por ejemplo, la restric- ción X < Y será rechazada por el optimizador, por lo que debería reescribirse como X - Y < 0 (o también Y - X > 0 ). Por último, dado que para lindo las variables siempre son no negativas, conviene saber cómo modificar este compor- tamiento por defecto. Las siguientes instrucciones deben escribirse después del END . 13. Variables sin restricción de signo: La palabra cla- ve FREE permite a la variable indicada tener cualquier valor entre −∞ y ∞, es decir, FREE X1 es el equiva- lente de x1 ∈ R. 14. Variables enteras: La palabra clave GIN indica al programa que la variable debe tener un valor entero (no negativo), es decir, GIN Y1 es el equivalente a y1 ∈ Z, y1 ≥ 0. 15. Variables binarias: La palabra clave INT indica al programa que la variable elegida debe tener un valor binario, es decir, INT X2 es el equivalente a x2 ∈ {0, 1}. 16. Cotas: Las palabras clave SLB y SUB indican que las variables seleccionadas tienen una cota inferior o su- perior, respectivamente, el cual también debe ser indi- cado. Por ejemplo, SLB Y4 3 indica al programa que la variable Y4 no debe tomar un valor menor a 3. Si- milarmente, SUB Y5 12 indica que la variable Y5 no debe tomar un valor mayor a 12. Los anteriores atributos pueden combinarse en una mis- ma variable para emplearse como en el siguiente ejemplo: m´ın z = x1 + x2 + 2x3 s.a: x1 + 2x2 + 2x3 ≥ 6 (R1) x1 + x3 ≥ 9 (R2) x1 ≥ x2 + 2x3 (R3) 2 ≤ x1 ≤ 7 x2 ≤ 0 (variable no positiva) − 3 ≤ x3 ≤ 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 <= X1 <= 7 SLB X1 2 SUB X1 7 ! X2 no positiva FREE X2 SUB X2 0 ! -3 <= X3 <= 5 FREE X3 ! Para que pueda tomar valores negativos SLB X3 -3 SUB X3 5