Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SOFTWARE LINGO
2
Sintaxis de LINGO
Ejemplo:
4*x1+2*x3;
3
Sintaxis de LINGO
4
Sintaxis de LINGO
El nombre de la función objetivo o de
cualquier restricción debe ir entre corchetes.
5
Funciones
de Dominio de Variable
Por defecto LINGO considera todas las
variables como reales y positivas a menos
que se especifiquen como:
@BIN : @BIN(variable_X);
@FREE : @FREE(variable_X);
@BND : @BND(lim_inf,X,lim_sup);
7
Primer Ejemplo
8
Primer Ejemplo
Para resolver
9
Primer Ejemplo
Tipo de problema
• Lineal
• Entera
Estado de la solución
• Optimo global
• Factible
• Desconocido
Valor FO
10
Primer Ejemplo
11
Segundo Ejemplo
X1 = 5 ; X2 =0
12
Tercer Ejemplo
max = 2*x1 + 3*x2 + 4*x3 + 3*x4 + 2*x5;
Diferencias de sintaxis:
Lingo Lindo
14
LINGO v/s LINDO
Diferencias de sintaxis:
Lingo Lindo
15
LINGO v/s LINDO
Diferencias de sintaxis:
Lingo Lindo
16
Guía de Ejercicios I
17
A1
Guía de Ejercicios I
Sea:
A1 = acres sembrados de trigo
A2 = acres sembrados de maíz
L = horas de trabajo adquiridas
18
Ingreso en LINGO
a) MAX = 2*X1-3*X2+5*X3+X4;
X1+2*X2+3*X3+X4<=5;
X1+X2+2*X3+3*X4<=3;
b) MAX = 2*X1+X2;
2*X1+3*X2<=3;
X1+5*X2<=1;
2*X1+X2<=4;
4*X1+X2<=5;
19
c) MAX = 3*X1+X2;
X1-X2>=1;
X1-2*X2<=3;
2*X1+X2<=2;
d) MAX = 3*X1+2*X2+4*X3;
X1+2*X2+X3+X4<=2;
X1-X2+X3+2*X4>=3;
2*X1-X2+X3>=2;
20
e) MAX = 30*5*A1+4*50*A2-10*L;
A1+A2<=45;
6*A1+10*A2-L<=0;
L<=350;
5*A1<=140;
4*A2<=120;
21
Solución Ejercicios I
a) x3=1.5 ; x1=x2=x4=0;
b) x1=1; x2=0;
c) x1=1; x2=0;
d) x1=x4=1; x2=x3=0;
e) A1=25; A2=20; L=350;
22
Problema 1
Un agricultor produce alimentos para pollos y ganado. Estos
son compuestos de tres ingredientes: trigo, cal y harina de
pescado, que contienen proteínas y calcio. La tabla siguiente
proporciona los contenidos de nutrientes en cada kilo de
ingrediente:
23
Problema 1
Para el alimento de pollo, el contenido de proteína y
calcio debe estar en el intervalo 20, 30 y 20, 25 g por Kg
de alimento respectivamente.
24
Solución Problema 1
i: tipo de ingredientes:
1= trigo
2=cal
3=harina de pescado
j: tipo de producto:
1= alimento para ganado
2= alimento para pollo
Variable de Decisión:
Xij: kilos de ingrediente tipo i usado
en el producto tipo j.
25
Solución Problema 1
min = 0.1*(x11+x12) + 0.1*(x21+x22) + 0.08*(x31+x32)
26
Modelamiento Matemático
27
Indexación de Conjuntos
28
Ingreso de Datos en LINGO
Algunas Funciones en LINGO
Nombrar Restricciones en LINGO
Condicionar Restricciones en LINGO
Indexación de Conjuntos
Ejemplo:
Estas 4 restricciones con 20 variables distintas la podemos
escribir en una sola sentencia equivalente.
x11+x21+x31+x41+x51<=O(1)
x12+x22+x32+x42+x52<=O(2)
x13+x23+x33+x43+x53<=O(3)
x14+x24+x34+x44+x54<=O(4)
5
33
Estructura de la Solución LINGO
MODEL:
SETS:
!declaramos las variables. En este caso: O, D, C y la solución X
ENDSETS
DATA:
!ingresamos los datos de cada variable.
ENDDATA
Notar que no llevan “;”
FUNCIÓN OBJETIVO
RESTRICCIONES
END
34
Sets (conjuntos)
Derivados:
Es definido a partir de uno o más conjuntos. Ejemplo : ARCOS
35
Sets (conjuntos)
36
Operadores y Funciones
Aritméticos:
+ , - , * , / , = , >= , <= , ^
Funciones:
@FOR(…) @SUM(…)
@MAX(…) @MIN(…)
@PROD(…)
37
Operadores y Funciones
Funciones Matemáticas:
@ABS(…) : valor absoluto
@COS(…) : coseno
@SIN(…) : seno
@TAN(…) : tangente
@FLOOR(…) : entero inferior
@LOG(…) : logaritmo
@SQRT(…) : raíz cuadrada
38
Operadores y Funciones
#EQ# : igual a
#NE# : no igual a
#GT# : mayor estricto a
#GE# : mayor igual a
#LT# : menor estricto a
#LE# : menor igual a
#NOT#: no (excluye un elemento)
#AND#: y
#OR# : ó
39
Operadores y Funciones
Ejemplo notación:
10
@FOR(SETS(i,j,k)|i#EQ#2:@SUM(SETS(i):X(2,j,k)=D(j)))
40
Ejemplo:
Problema de Producción
y Distribución
Ejemplo: Problema de Producción
y Distribución
Ejemplo
43
Datos
Ofertas Costos:
Planta 1: 35 Clientes
Planta 2: 50
8 6 10 9
Plantas
Planta 3: 40
9 12 13 7
14 9 16 5
Demandas
Cliente 1: 45
C(i,j): costo de transportar una
Cliente 2: 20
unidad de producto de la planta
Cliente 3: 30
i al cliente j.
Cliente 4: 30
44
Solución Ejemplo
SETS:
PLANTAS/ P1 P2 P3 /: O;
CLIENTES/ C1 C2 C3 C4 /: D;
ARCOS(PLANTAS,CLIENTES):C,X;
ENDSETS
DATA:
O= 35 50 40;
D= 45 20 30 30;
C= 8 6 10 9
9 12 13 7
14 9 16 5;
ENDDATA
45
Solución Ejemplo
FUNCIÓN OBJETIVO:
MIN = @SUM(ARCOS(I,J):C(I,J)*X(I,J));
3 4
MIN C (i, j ) X (i, j )
i 1 j 1
46
Solución Ejemplo
RESTRICCIONES:
@FOR(PLANTAS(I): @SUM(CLIENTES(J):X(I,J))<=O(I));
@FOR(CLIENTES(J): @SUM(PLANTAS(I):x(I,J))>=D(J));
47
Ejemplo Resuelto
MODEL:
SETS:
PLANTAS/ P1 P2 P3 /: O;
CLIENTES/ C1 C2 C3 C4 /: D;
ARCOS(PLANTAS,CLIENTES):C,X;
ENDSETS
DATA:
O=35 50 40;
D= 45 20 30 30;
C= 8 6 10 9
9 12 13 7
14 9 16 5;
ENDDATA
MIN = @SUM(ARCOS(I,J):C(I,J)*X(I,J));
@FOR(PLANTAS(I): @SUM(CLIENTES(J):X(I,J))<=O(I));
@FOR(CLIENTES(J): @SUM(PLANTAS(I):x(I,J))>=D(J));
END
48
Problema 2
49
Problema 2
Datos:
Ciudad Republicanos Demócratas
1 80 34
2 60 44
3 40 44
4 20 24
5 40 114
6 40 64
7 70 14
8 50 44
9 70 54
10 70 64
50
Solución Problema 2
MODEL:
SETS:
CIUDADES/C1..C10/:VD,VR;
DISTRITOS/D1..D5/:SILLA;
ARCOS(CIUDADES,DISTRITOS):X;
ENDSETS
DATA:
VD= 34 44 44 24 114 64 14 44 54 64;
VR= 80 60 40 20 40 40 70 50 70 70;
TAM_MIN=150;
TAM_MAX=250;
M=1000;
ENDDATA
51
Solución Problema 2
MIN = @SUM(DISTRITOS(I):SILLA(I));
@FOR(DISTRITOS(J):@SUM(ARCOS(I,J):X(I,J)*(VD(I)+VR(I)))>=TAM_MIN);
@FOR(DISTRITOS(J):@SUM(ARCOS(I,J):X(I,J)*(VD(I)+VR(I)))<=TAM_MAX);
@FOR(CIUDADES(I):@SUM(ARCOS(I,J):X(I,J))=1);
@FOR(DISTRITOS(J):@SUM(ARCOS(I,J):X(I,J)*(VR(I)-VD(I)))-M*SILLA(J)<=0);
@FOR(ARCOS(I,J):@BIN(X(I,J)));
@FOR(DISTRITOS(J):@BIN(SILLA(J)));
END
52
Problema 3
53
Problema 3
54
Problema 3
55
Guía II – ej. 1
59
Guía II – ej. 2
61
Guía II – ej. 2
62
Guía II – ej. 3
1 2 3 4 5
tonelada 300 200 300 200 400
63
Guía II – ej. 3
64
Guía II – ej. 3
65
Guía II – ej. 3
66
Guía II – ej. 3
planta 1 35
planta 2 45
planta 3 40
planta 4 42
planta 5 40
bodega 1 30
bodega 2 40
bodega 3 30
67
Lectura de Datos desde MS Excel
Notación:
@ole(‘nombre_archivo.xls’,’celdas’)=nombre_variable;
Ofertas: Costos: 8 6 10 9
Planta 1: 35 9 12 13 7
Planta 2: 50 14 9 16 5
Planta 3: 40
C(i,j): costo de transportar una unidad de producto de la
Demandas: planta “i” al cliente “j”.
Cliente 1: 45
Cliente 2: 20 Resolver el Problema con LINGO. Se pide
Cliente 3: 30 disponer de los datos de Oferta y Demanda en
Cliente 4: 30 archivo Excel para llamarlos desde LINGO.
Análisis de Sensibilidad
Sea:
A1 = acres sembrados de trigo
A2 = acres sembrados de maíz
L = horas de trabajo adquiridas
MAX = 150*A1+200*A2-10*L;
A1+A2<=45;
6*A1+10*A2-L<=0;
L<=350;
5*A1<=140;
4*A2<=120;
Ejemplo
Ejemplo
Ejemplo