Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CostoInsumo i = 25 15 10 8 25;
CostoFijo i = 100 120 100 80 150;
RequerimientoHoras i = 5 4 5 2 3;
MínimaHora = 500;
MaximaArea = 100;
d) Presente SETS y DATA del modelo en lingo
SETS:
PRODUCTO/1..5/: X, Y, COSTOINSUMO,
COSTOFIJO, REQUERIMIENTOHORA;
ENDSETS
DATA:
COSTOINSUMO = 25 15 10 8 25;
COSTOFIJO = 100 120 100 80 150;
REQUERIMIENTOHORA = 5 4 5 2 3;
MINIMAHORA = 500;
MAXIMAAREA = 100;
M = 10000;
ENDDATA
e) Formular la función objetivo del programa lineal en forma compacta (algebraico y en lingo).
MIN = @SUM(PRODUCTO(I):COSTOINSUMO(I)*X(I)+COSTOFIJO(I)*Y(I));
f) Formular las restricciones del programa lineal en forma compacta (algebraico y en lingo).
Y i ≥ 3 @SUM(PRODUCTO(I):Y(I))>=3;
i=1
5
@SUM(PRODUCTO(I):Y(I))<=4;
Y i ≤ 4
i=1
Y1+Y4 <= 1 Y(1)+Y(4)<=1;
Y5<=Y2 Y(5)<=Y(2);
Xi ≥ 0, ∀i
Yi = 0, 1; ∀i @FOR(PRODUCTO(I):@BIN(Y(I)));
SETS:
PRODUCTO/1..5/: X, Y, COSTOINSUMO, COSTOFIJO, REQUERIMIENTOHORA;
ENDSETS
DATA:
COSTOINSUMO = 25 15 10 8 25;
COSTOFIJO = 100 120 100 80 150;
REQUERIMIENTOHORA = 5 4 5 2 3;
MINIMAHORA = 500;
Programa Binario Mixto MAXIMAAREA = 100;
M = 10000;
ENDDATA
MIN = @SUM(PRODUCTO(I):COSTOINSUMO(I)*X(I)+COSTOFIJO(I)*Y(I));
@SUM(PRODUCTO(I):X(I))<=MAXIMAAREA;
@SUM(PRODUCTO(I):REQUERIMIENTOHORA(I)*X(I))>=MINIMAHORA;
@SUM(PRODUCTO(I):Y(I))>=3;
@SUM(PRODUCTO(I):Y(I))<=4;
Y(1)+Y(4)<=1;
Y(5)<=Y(2);
@FOR(PRODUCTO(I):X(I)<=M*Y(I));
@FOR(PRODUCTO(I):@BIN(Y(I)));
END
Variable Value Reduced Cost
MINIMAHORA 500.0000 0.000000
MAXIMAAREA 100.0000 0.000000
M 10000.00 0.000000
X( 1) 0.000000 15.00000
X( 2) 0.000000 7.000000
X( 3) 100.0000 0.000000
X( 4) 0.000000 4.000000
X( 5) 0.000000 19.00000
Y( 1) 0.000000 100.0000
Y( 2) 1.000000 120.0000
Y( 3) 1.000000 100.0000
Y( 4) 1.000000 80.00000
Y( 5) 0.000000 150.0000
COSTOINSUMO( 1) 25.00000 0.000000
COSTOINSUMO( 2) 15.00000 0.000000
COSTOINSUMO( 3) 10.00000 0.000000
COSTOINSUMO( 4) 8.000000 0.000000
COSTOINSUMO( 5) 25.00000 0.000000
COSTOFIJO( 1) 100.0000 0.000000
COSTOFIJO( 2) 120.0000 0.000000
COSTOFIJO( 3) 100.0000 0.000000
COSTOFIJO( 4) 80.00000 0.000000
COSTOFIJO( 5) 150.0000 0.000000
REQUERIMIENTOHORA( 1) 5.000000 0.000000
REQUERIMIENTOHORA( 2) 4.000000 0.000000
REQUERIMIENTOHORA( 3) 5.000000 0.000000
REQUERIMIENTOHORA( 4) 2.000000 0.000000
REQUERIMIENTOHORA( 5) 3.000000 0.000000
Aceite Agua Sosa cáustica Glicerina Esencia de limón Esencia de fresa Beneficio
Tipo de jabón
(ml/jabón) (ml/jabón) (g/jabón) (g/jabón) (ml/jabón) (ml/jabón) ($/jabón)
1 250 240 42 1 1 3 10
2 200 210 2 40 2 1 13
i 3 230 240 20 25 3 1 15
4 180 200 10 35 1 3 11
150,000 ml 160,000 ml 12 kg 3 kg 2,000 ml 3,000 ml actual
Disponibilidad
50,000 ml 70,000 ml 4 kg 4 kg 1,000 ml 500 ml incremento
Mínimo de tipos: 1;
Máximo de tipos: 3;
Si 1 va entonces 4 no va.
Costo de ampliación=$200000;
a) Defina los índices que el modelo empleará.
i: jabón (1,2,3,4)
j: componente (1,2,3,4,5,6)
Beneficio i = 10 13 15 11;
Disponibilidad1 j = 150000 160000 12000 3000 2000 3000;
Disponibilidad2 j = 50000 70000 4000 4000 1000 500;
Requerimiento ij = 250 240 42 1 1 3 200 210 2 40 2 1 230 240 20 25 3 1 180 200 10 35 1 3;
Ampliación = 200000;
M= 10000;
d) Presente SETS y DATA del modelo en lingo
SETS:
JABON/1..4/:X, Y, BENEFICIO;
COMPONENTE/1..6/:DISPONIBILIDAD1, DISPONIBILIDAD2;
JXC(JABON,COMPONENTE):REQUERIMIENTO;
ENDSETS
DATA:
BENEFICIO = 100 130 150 110;
DISPONIBILIDAD1 = 150000 160000 12000 3000 2000 3000;
DISPONIBILIDAD2 = 50000 70000 4000 4000 1000 500;
REQUERIMIENTO = 250 240 42 1 1 3 200 210 2 40 2 1 230 240 20 25 3 1
180 200 10 35 1 3;
AMPLIACION = 200000;
M=10000;
ENDDATA
e) Formular la función objetivo del programa lineal en forma compacta (algebraico y en lingo).
Yi ≥ 1
i=1
4
Yi ≤ 3
i=1
Y1 + Y4 ≤ 1
Xi ≤ M ∗ Yi ; ∀i
@FOR(COMPONENTE(J):
@SUM(JABON(I):
REQUERIMIENTO(I,J)*X(I))<=DISPONIBILIDAD1(J)+DISPONIBILIDAD2(J)*Z);
@SUM(JABON(I):Y(I))>=1;
@SUM(JABON(I):Y(I))<=3;
Y(1)+Y(4)<=1;
@FOR(JABON(I):X(I)<=M*Y(I));
g) Presente las restricciones de las variables
Xi ≥ 0, entera; ∀i
Yi = 0, 1; ∀i @FOR(JABON(I):@GIN(X(I));@BIN(Y(I));@BIN(Z));
Z = 0, 1;
SETS:
JABON/1..4/:X, Y, BENEFICIO;
COMPONENTE/1..6/:DISPONIBILIDAD1, DISPONIBILIDAD2;
JXC(JABON,COMPONENTE):REQUERIMIENTO;
ENDSETS
DATA:
BENEFICIO = 100 130 150 110;
DISPONIBILIDAD1 = 150000 160000 12000 3000 2000 3000;
DISPONIBILIDAD2 = 50000 70000 4000 4000 1000 500;
REQUERIMIENTO = 250 240 42 1 1 3 200 210 2 40 2 1 230 240 20 25 3 1 180 200
Programa Binario Mixto 10 35 1 3;
AMPLIACION = 200000;
M=10000;
ENDDATA
MAX = @SUM(JABON(I):BENEFICIO(I)*X(I))- AMPLIACION*Z;
@FOR(COMPONENTE(J):
@SUM(JABON(I):
REQUERIMIENTO(I,J)*X(I))<=DISPONIBILIDAD1(J)+DISPONIBILIDAD2(J)*Z);
@SUM(JABON(I):Y(I))>=1;
@SUM(JABON(I):Y(I))<=3;
Y(1)+Y(4)<=1;
@FOR(JABON(I):X(I)<=M*Y(I));
@FOR(JABON(I):@GIN(X(I));@BIN(Y(I));@BIN(Z));
END
Variable Value Reduced Cost
AMPLIACION 200000.0 0.000000
REQUERIMIENTO( 1, 1) 250.0000 0.000000
REQUERIMIENTO( 1, 2) 240.0000 0.000000
REQUERIMIENTO( 1, 3) 42.00000 0.000000
REQUERIMIENTO( 1, 4) 1.000000 0.000000
REQUERIMIENTO( 1, 5) 1.000000 0.000000
REQUERIMIENTO( 1, 6) 3.000000 0.000000
REQUERIMIENTO( 2, 1) 200.0000 0.000000
REQUERIMIENTO( 2, 2) 210.0000 0.000000
REQUERIMIENTO( 2, 3) 2.000000 0.000000
REQUERIMIENTO( 2, 4) 40.00000 0.000000
REQUERIMIENTO( 2, 5) 2.000000 0.000000
Variable Value Reduced Cost
REQUERIMIENTO( 2, 6) 1.000000 0.000000
AMPLIACION 200000.0 0.000000
REQUERIMIENTO( 3, 1) 230.0000 0.000000
M 10000.00 0.000000
REQUERIMIENTO( 3, 2) 240.0000 0.000000
Z 0.000000 200000.0
REQUERIMIENTO( 3, 3) 20.00000 0.000000
X( 1) 233.0000 -100.0000
REQUERIMIENTO( 3, 4) 25.00000 0.000000
X( 2) 0.000000 -130.0000
REQUERIMIENTO( 3, 5) 3.000000 0.000000
X( 3) 110.0000 -150.0000
REQUERIMIENTO( 3, 6) 1.000000 0.000000
X( 4) 0.000000 -110.0000
REQUERIMIENTO( 4, 1) 180.0000 0.000000
Y( 1) 1.000000 0.000000
REQUERIMIENTO( 4, 2) 200.0000 0.000000
Y( 2) 0.000000 0.000000
REQUERIMIENTO( 4, 3) 10.00000 0.000000
Y( 3) 1.000000 0.000000
REQUERIMIENTO( 4, 4) 35.00000 0.000000
Y( 4) 0.000000 0.000000
REQUERIMIENTO( 4, 5) 1.000000 0.000000
BENEFICIO( 1) 100.0000 0.000000
REQUERIMIENTO( 4, 6) 3.000000 0.000000
BENEFICIO( 2) 130.0000 0.000000
BENEFICIO( 3) 150.0000 0.000000
BENEFICIO( 4) 110.0000 0.000000 Row Slack or Surplus Dual Price
DISPONIBILIDAD1( 1) 150000.0 0.000000 1 39800.00 1.000000
DISPONIBILIDAD1( 2) 160000.0 0.000000 2 66450.00 0.000000
DISPONIBILIDAD1( 3) 12000.00 0.000000 3 77680.00 0.000000
DISPONIBILIDAD1( 4) 3000.000 0.000000 4 14.00000 0.000000
DISPONIBILIDAD1( 5) 2000.000 0.000000 5 17.00000 0.000000
DISPONIBILIDAD1( 6) 3000.000 0.000000 6 1437.000 0.000000
DISPONIBILIDAD2( 1) 50000.00 0.000000 7 2191.000 0.000000
DISPONIBILIDAD2( 2) 70000.00 0.000000 8 1.000000 0.000000
DISPONIBILIDAD2( 3) 4000.000 0.000000 9 1.000000 0.000000
DISPONIBILIDAD2( 4) 4000.000 0.000000 10 0.000000 0.000000
DISPONIBILIDAD2( 5) 1000.000 0.000000 11 9767.000 0.000000
DISPONIBILIDAD2( 6) 500.0000 0.000000 12 0.000000 0.000000
13 9890.000 0.000000
14 0.000000 0.000000
Competencia internacional de futbol escolar
Un colegio particular se encuentra organizando un campeonato internacional de fútbol escolar. Para ello se han
definido 2 grupos: Grupo A y Grupo B, conformados por equipos escolares de los países vecinos. Sin embargo,
aún no se han escogido las sedes donde se realizarán los partidos. Para ello, se han definido 5 posibles sedes, de
las cuales se tienen que elegir a 4. Por cada grupo se deberá elegir 2 sedes; pero una misma sede no puede ser
elegida por los 2 grupos.
Téngase en cuenta que, si una sede es elegida, se venderán todas las entradas de esa sede. Asimismo, el colegio
particular organizador debe cubrir los gastos de transporte de cada grupo.
La asistencia, el precio a cobrar por entrada y el costo del alquiler de cada sede que el organizador (el colegio
particular) debe asumir si es que es elegida y los costos de traslado para cada grupo a cada sede por toda la
temporada que dure el campeonato son los siguientes:
Asistencia (personas) Costo de alquiler Costo de traslado (soles)
Sede
Entrada regular Entrada especial (Soles) Grupo A Grupo B
1 900 500 1700 820 880
2 960 560 1800 860 820
3 780 480 1500 780 800
4 920 550 1800 900 840
5 870 460 1600 800 840
Precio (Soles/entrada) 14 20
Se solicita:
a) Definir los índices y variables de decisión en sintaxis algebraico
b) Presentar la estructura de datos que empleará en el modelo
c) Presentar la información SETS y DATA que empleará en el modelo
d) Presente la función objetivo del modelo en lingo en sintaxis compacta que realmente represente el
problema y permita determinar su solución [uso de funciones @sum]
e) Presente las restricciones del modelo en notación compacta que realmente represente el problema y
permita determinar su solución [uso de funciones @sum y @for entre otros].
f) Presente su mejor y amplio reporte administrativo [con toda la información que se desprende del
problema y del reporte lingo] para toma de decisiones de optimización; no adjunte el reporte del lingo.
Sea explicito en su decisión para que sea considerado.
k i
Variable de decisión
Simplificación para compactar Yj = Elegir o no elegir la sede j, 0,1
Xij = Elegir o no elegir el grupo i en la sede j; 0,1
Estructura de datos
alquiler j = 1700 1800 1500 1800 1600;
precio k = 14 20;
traslado ij = 820 860 780 900 800 880 820 800 840 840;
asistencia jk = 900 500 960 560 780 480 920 550 870 460;
Índices, Variables y vectores y su relación con SETS y DATA
Indice: Sets:
i: grupo [A,B] grupo/A B/:;
j: sedes [1..5] sede/1..5/: Y, alquiler;
k: entrada [1..2] entrada/1 2/: precio;
GXS (grupo, sede): X, traslado;
SXE (sede, entrada): asistencia;
Variable de decisión End sets
Yj = Elegir o no elegir la sede j, 0,1
Xij = Elegir o no elegir el grupo i en la sede j; 0,1
5 2 5 2 5
Max=
@sum(SXE(j,k): asistencia(j,k)*precio(k)*Y(j)) –
(@sum(sede(j): alquiler(j)*Y(j)) + @sum(GXS(i,j): traslado(i,j)*X(i,j)));
Determinación de restricciones en sintaxis de lingo compacto
5
Se han definido 5 posibles sedes, de las cuales
se tienen que elegir a 4. Yj = 4
j=1
!Se deben escoger 4 sedes;
@sum(sede(j): Y(j)) = 4;
5
Por cada grupo se deberá elegir 2 sedes;
i: X ij = 2
j=1
!Cada grupo escoge dos sedes;
@for(grupo(i): @sum(sede(j): X(i,j)) = 2);
2
Una misma sede no puede ser elegida por los 2
grupos. j: X ij ≤ Yj
i=1
!Una misma sede no puede ser escogida por dos grupos;
@for(sede(j):@sum(grupo(i): X(i,j)) <= Y(j));