practica lingo
Post on 08-Apr-2016
117 Views
Preview:
DESCRIPTION
TRANSCRIPT
Desarrollar un modelo Lingo
Para desarrollar un modelo de optimizacion en
Lingo hay que especificar:
• Funcion Objetivo
Max(Min) = COSTO1 ∗ V ARIABLE1
+ COSTO2 ∗ V ARIABLE2;
Variables: Los nombres de las variables en Lingo deben
empezar con un caracter alfabetico, seguido de alfabeti-
cos, numericos o , hasta un maximo de 32 caracteres.
• Restricciones
COEF11 ∗ V AR1 <= DISPONIBILIDAD1;COEF21 ∗ V AR1 + COEF22 ∗ V AR2 <= DISP2;o bienCOEF11 ∗ V AR1 >= RECURSO1;COEF21 ∗ V AR1 + COEF22 ∗ V AR2 >= REC2;
• Comentarios: Comenzaran con el signo ad-
miracion “!” y terminaran con el signo de pun-
tuacion “;”
Lingo no distingue entre letras en mayuscula o
en minuscula.
Resolucion del modelo
Para resolver el modelo, seleccionar SOLVE delcomando Lingo.
Lingo comenzara a compilar el modelo. Si elmodelo no pasa la compilacion, aparecera unmensaje error.
Ejemplo
Max = 2 ∗ x + y;x <= 3;
3x + 2 ∗ y <= 5;
Aparecera:
Ventana: LINGO Error Message
Error Code: 11 Help OK
Error Tex:
Invalid input. A syntax has occurred.
3] 3x + 2 ∗ y <= 5;
Si no ha habido ningun error aparecera en pan-talla LINGO Solver Status.
Max 2x + ys. a.
x ≤ 3
3x + 2y ≤ 5
x, y ≥ 0
que introduciendo variables de holgura, queda
x + s1 = 3
3x + 2y + s2 = 5
x, y, s1, s2 ≥ 0
x y s1 s2s1 1 0 1 0 3
s2 3 2 0 1 5zj 0 0 0 0 0
zj − cj −2 −1 0 0
s1 0 −2/3 1 −1/3 4/3
x 1 2/3 0 1/3 5/3zj 2 4/3 0 2/3 10/3
zj − cj 0 1/3 0 2/3
LINGO solver Status
SOLVER STATUS
Model Class Muestra el tipo de modelo (LP:Programacion Lineal; ILP: Programacion LinealEntera,...)
State Muestra la situacion actual de la solu-cion (Global Opt: Optimo global; Infeasible: Nofactible; Unbounded: No acotada;...)
Objective Valor de la funcion objetivo.
Infeasibility Cantidad por la que no se verificanlas restricciones.
Iterations Numero de iteraciones necesarias pa-ra su resolucion.
VARIABLES Muestra el numero total de va-riables del modelo. Enteras y no Lineales.
CONSTRAINTS Muestra el numero total derestricciones del modelo y cuales de ellas son nolineales.
NONZEROS Muestra el numero de coeficien-tes no nulos en el modelo y cuales de ellos apa-recen en variables no lineales.
GENERATOR MEMORY USED(K) Listala cantidad de memoria.
ELAPSED RUNTIME (hh:mm:ss) Muestrael tiempo total usado para generar y resolver elmodelo.
Solution Report
Esta pantalla contiene los detalles de la solucion
del problema.
Global optimal solution found
Objective value: 3.333333
Total solver iterations: 2
Variable Value Reduced CostX 1,666667 0,0000000Y 0,0000000 0,3333334
Row Slack or Surplus Dual Price1 3,333333 1,0000002 1,333333 0,00000003 0,0000000 0,6666667
Interpretar la Solucion
Costo reducido: Indican cuanto tendrıa que
mejorar cada uno de los coeficientes de la fun-
cion objetivo antes de que la correspondiente
variable de decision pueda tomar valor positivo
en la solucion optima.
Holgura o excedente: Nos dice lo proximo que
estamos de satisfacer una restriccion. Si una
restriccion es violada, como en una solucion in-
factible, el valor de estas variables sera negativo.
Precios duales: Mejora en el valor de la funcion
objetivo por cada incremento unitario en el la-
do derecho de una restriccion. En un problema
de maximizar el precio dual es el mismo que el
precio sombra. En un problema de minimizar el
precio dual es el negativo del precio sombra.
Ejemplos
Max Z = 3X1 + 2X2
s.a. 2X1 + X2 ≤ 23X1 + 4X2 ≥ 12
Xi ≥ 0
Max Z = 36X1 + 30X2 − 3X3 − 4X4
s.a. X1 + X2 −X3 ≤ 56X1 + 5X2 −X4 ≤ 10
Xi ≥ 0
Ejemplo 1
Max 3x1 + 2x2s. a.
2x1 + x2 ≤ 2
3x1 + 4x2 ≥ 12
x, y ≥ 0
que introduciendo variables de holgura y artifi-ciales, queda
2x1 + x2 + s1 = 2
3x1 + 4x2 − s2 + A1 = 12
x1, x2, s1, s2, A1 ≥ 0
Fase I: Max - A1
x1 x2 s1 s2 A1s1 2 1 1 0 0 2
A1 3 4 0 −1 1 12zj −3 −4 0 1 −1 −12
zj − cj −3 −4 0 1 0
x2 2 1 1 0 0 2
A1 −5 0 −4 −1 1 4zj 5 0 4 1 −1 −4
zj − cj 5 0 4 1 0
Ejemplo 2
Max 36x1 + 30x2 − 3x3 − 4x4
s. a. x1 + x2 − x3 ≤ 5
6x1 + 5x2 − x4 ≤ 10
x1, x2, x3, x4 ≥ 0
que introduciendo variables de holgura, queda
x1 + x2 − x3 + s1 = 5
6x1 + 5x2 − x4 + s2 = 10
x1, x2, x3, x4, s1, s2 ≥ 0
x1 x2 x3 x4 s1 s2
s1 1 1 −1 0 1 0 5
s2 6 5 0 −1 0 1 10zj 0 0 0 0 0 0 0
zj − cj −36 −30 3 4 0 0
s1 0 −5/6 −1 1/6 1 −1/6 20/6
x1 1 5/6 0 −1/6 0 1/6 10/6zj 36 30 0 −6 0 6 360/8
zj − cj 0 0 3 −2 0 6
x4 0 −5 −6 1 6 −1 20
x1 1 0 −1 0 1 0 5zj 36 20 −12 −4 12 4 100
zj − cj 0 −10 −9 0 12 4
!PROBLEMA1;
!Variables de decision:
X1 = Bizcochos consumidos diariamente,
X2 = Bolas de helado de chocolate consumidaspor dıa,
X3 = Numero de botellas de refresco tomadasdiariamente,
X4 = Porciones de Pastel de queso con pinapor dıa;
!Funcion objetivo;
MIN = 0.50∗X1+0.20∗X2+0.30∗X3+0.80∗X4;
!Restriccion de calorıas;
400∗X1+200∗X2+150∗X3+500∗X4 >= 500;
!Restriccion de chocolate;
3 ∗X1 + 2 ∗X2 >= 6;
!Restriccion de azucar;
2 ∗X1 + 2 ∗X2 + 4 ∗X3 + 4 ∗X4 >= 10;
!Restriccion de grasa;
2 ∗X1 + 4 ∗X2 + X3 + 5 ∗X4 >= 8;
! Problema 2;
! Variables de decision:
X1 = Kilos de arroz,
X2 = Kilos de pescado,
X3 = Kilos de verdura;
! Funcion Objetivo;
Min = 0.70 ∗X1 + 1.20 ∗X2 + 0.50 ∗X3;
! Restriccion de calorıas;
200 ∗X1 + 300 ∗X2 + 100 ∗X3 <= 4000;
! Restriccion de proteınas;
X1 + 3 ∗X2 + 2 ∗X3 >= 3;
!Problema 3;! Variables de decision:
X1 = No de sesiones de destilacion con Tn,
X2 = No de sesiones de destilacion con Ta;
! Funcion Objetivo;
Max = 103 ∗X1 + 110 ∗X2;
! Restriccion referida a la cantidad de Crudo,C1;
7 ∗X1 + 10 ∗X2 <= 1400;
! Restriccion referida a la cantidad de Crudo,C2;
12 ∗X1 + 8 ∗X2 <= 2000;
! Restriccion referida a la demanda de gasoleo;
8 ∗X1 + 10 ∗X2 >= 900;
! Restriccion referida a la demanda de gasolinanormal;
6 ∗X1 + 7 ∗X2 >= 300;
! Restricciones referidas a la demanda de gaso-lina super;
5 ∗X1 + 4 ∗X2 <= 1700;
5 ∗X1 + 4 ∗X2 >= 800;
!Problema 4;
! Variables de decision:
Xi = Numero de empleados que empiezan a
trabajar el dıa i;
!Funcion Objetivo;
Min = X1 + X2 + X3 + X4 + X5 + X6 + X7;
! Numero de empleados requeridos para el Lu-
nes;
X1 + X4 + X5 + X6 + X7 >= 17;
! Numero de empleados requeridos para el Mar-
tes;
X1 + X2 + X5 + X6 + X7 >= 13;
! Numero de empleados requeridos para el Mierco-
les;
X1 + X2 + X3 + X6 + X7 >= 15;
! Numero de empleados requeridos para el Jue-
ves;
X1 + X2 + X3 + X4 + X7 >= 19;
! Numero de empleados requeridos para el Vier-
nes;
X1 + X2 + X3 + X4 + X5 >= 14;
! Numero de empleados requeridos para el Saba-
do;
X2 + X3 + X4 + X5 + X6 >= 16;
! Numero de empleados requeridos para el Do-
mingo;
X3 + X4 + X5 + X6 + X7 >= 11;
!Problema 5;
! Variables de decision:
X1 = Onzas de Brutte Regular vendidas anua-
lmente, (no las producidas inicialmente)
X2 = Onzas de Brutte Luxery vendidas anual-
mente,(producidas)
X3 = Onzas de Chanelle Regular vendidas anua-
lmente, (no las producidas inicialmente)
X4 = Onzas de Chanelle Luxery vendidas anua-
lmente, (producidas)
X5 = Libras de materia prima compradas;
! Funcion Objetivo;
Max = 7 ∗X1 + (18− 4) ∗X2 + 6 ∗X3 + (14−4) ∗X4− 3 ∗X5;
! Horas de laboratorio disponibles;
3 ∗X2 + 2 ∗X4 + X5 <= 6000;
! Restricciones referentes a la cantidad de pro-
ductos disponibles para la venta;
X1 + X2− 3 ∗X5 = 0;
!(X1 + X2 = 3X5);
X3 + X4− 4 ∗X5 = 0;
!(X3 + X4 = 4X5);
! Limitacion de materia prima;
X5 <= 4000;
!Problema 6;
! Variables de decision:
X1 = Euros invertidos en Atlantic Oil,
X2 = Euros invertidos en Pacific Oil,
X3 = Euros invertidos en Midwest Steel,
X4 = Euros invertidos en Huber Steel,
X5 = Euros invertidos en Bonos gubernamen-
tales;
! Funcion Objetivo;
Max = 0,073 ∗X1 + 0,103 ∗X2 + 0,064 ∗X3 +
0,075 ∗X4 + 0,045 ∗X5;
!Especificamos la inversion de los 100.000 eu-
ros;
X1 + X2 + X3 + X4 + X5 <= 100000;
!No recibir mas del 50 %;
X1 + X2 <= 50000;
X3 + X4 <= 50000;
!Los Bonos deben ser al menos 25 %;
−0,25 ∗X3− 0,25 ∗X4 + X5 >= 0;
!(X5 ≥ 0,25(X3 + X4));
!Inversion en Pacific Oil no puede ser mas del
60%;
−0,6 ∗X1 + 0,4 ∗X2 <= 0;
!(X2 ≤ 0,6(X1 + X2));
!Problema 7;
! Variables de decision:
X1 =Millones de euros invertidos en Prestamos
personales ,
X2 = Millones de euros invertidos en Prestamos
para automovil,
X3 =Millones de euros invertidos en Prestamos
para vivienda,
X4 =Millones de euros invertidos en Prestamos
agrıcolas,
X5 =Millones de euros invertidos en Prestamos
comerciales;
! Funcion Objetivo;
Max = 0,026 ∗X1 +0,0509 ∗X2 +0,0864 ∗X3 +
0,06875 ∗X4 + 0,078 ∗X5;
!(0,14(0,9X1)+0,13(0,93X2)+0,12(0,97X3)+
0,125(0,95X4)+0,1(0,98X5)−0,1X1−0,07X2−0,03X3− 0,05X4− 0,02X5);
! Fondos totales;
X1 + X2 + X3 + X4 + X5 <= 12;
! Prestamos agrıcolas y comerciales;
X4 + X5 >= 4,8;
!(40% de12) );
! Prestamos para viviendas;
−0,5 ∗X1− 0,5 ∗X2 + 0,5 ∗X3 >= 0;
!(X3 ≥ 0,5(X1 + X2 + X3));
! Razon total de los creditos malos;
0,06 ∗X1 + 0,03 ∗X2− 0,01 ∗X3 + 0,01 ∗X4−0,02 ∗X5 <= 0;
!(0,1X1+007X2+0,03X3+0,05X4+0,02X5
X1+X2+X3+X4+X5 ≤ 0,04);
!Problema 8;
! Variables de decision:
X1 = Numero de unidades para una sola familia,
X2 = Numero de unidades para dos familias,
X3 = Numero de unidades para tres familias,
X4 = Numero de areas recreativas;
! Funcion Objetivo;
Max = 10000 ∗X1 + 12000 ∗X2 + 15000 ∗X3;
! Viviendas de una sola familia (Ap. 1);
0,5 ∗X1− 0,5 ∗X2− 0,5 ∗X3 >= 0;
!(X1 ≥ 0,5(X1 + X2 + X3));
! Uso del suelo (Ap 2, parte de 3 y texto despues
de 4);
2 ∗X1 + 3 ∗X2 + 4 ∗X3 + X4 <= 680;
!(680 es 800 menos el 15 %);
! Areas recreativas (parte de Ap. 3);
−X1− 2 ∗X2− 3 ∗X3 + 200 ∗X4 >= 0;
!(X4 ≥ X1+2X2+3X3200 );
! Capital;
1000∗X1+1200∗X2+1400∗X3+800∗X4 >=
100000;
! Consumo de agua;
400 ∗X1 + 600 ∗X2 + 840 ∗X3 + 450 ∗X4 <=
200000;
Analisis de sensibilidad
Despues de resolver el problema, usamos el coman-
do Range del menu LINGO para generar un
informe de rangos para el modelo activo. Tal
informe muestra en que rango se puede:
• Cambiar un coeficiente en la funcion objeti-
vo sin que cambien los valores optimos de las
variables de decision.
• Cambiar el valor de un recurso o disponibilidad
(coeficiente del lado derecho de una restriccion)
sin causar cambios en los valores optimos de
los precios duales o de los costos reducidos (sin
que cambien las variables basicas, es decir la
solucion siga siendo factible, aunque si pueden
cambiar sus valores).
Si aparece el mensaje de error:
Error Code 122: Range reports not possible when range
analysis is disabled
hay que ejecutar previamente el comando Op-
tions del menu LINGO, y en General Solver
seleccionar la opcion Prices and Ranges en la
lista asociada a Dual Computations.
Ejemplo
En los ejemplos en los que vayamos a solicitar
un Range Report conviene nombrar las restric-
ciones, incluyendo delante de ellas un nombre
entre corchetes, para luego poder identificarlas
facilmente.
[FuncionObjetivo] Max = 20 ∗A + 30 ∗ C;[Restriccion1] A <= 60;[Restriccion2] C <= 50;[Restriccion3] A + 2 ∗ C <= 120;
El informe que proporciona es
La primera parte titulada Objective Coeffi-
cient Ranges incluye en su primera columna
titulada Variable la lista de variables del pro-
blema, en la segunda Current Coefficient el
coeficiente actual de cada variable en la funcion
objetivo, en la tercera Allowable Increase, la
cantidad en que se puede incrementar el coefi-
ciente de cada variable en la funcion objetivo sin
que cambien los valores de la solucion optima y
la ultima Allowable Decrease, la cantidad en
que se puede disminuir el coeficiente de cada
variable en la funcion objetivo sin que cambien
los valores optimos de las variables.
En nuestro ejemplo, podemos decir que mien-
tras el coeficiente de la variable A en la funcion
objetivo sea mayor o igual a 15, los valores opti-
mos de las variables no cambian. El coeficiente
de la variable C puede variar entre 0 y 40.
La segunda parte titulada Right-hand Side Ran-
ges incluye en su primera columna titulada Row
la lista de los nombres de las restricciones del
modelo, en la segunda Current RHS los valores
actuales de los recursos o disponibilidades (coe-
ficiente del lado derecho de las restricciones), y
las siguientes Allowable Increase y Allowable
Decrease, en cuanto los podemos incremen-
tar o disminuir, respectivamente, sin causar un
cambio en los valores optimos de los precios
duales o costos reducidos.
En nuestro ejemplo, los precios duales y los cos-
tos reducidos permanecen constantes si el coefi-
ciente del lado derecho de la primera restriccion
esta entre 20 y 120, el de la segunda es mayor
o igual que 30 y el de la tercera esta entre 60
y 160.
top related