Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. Una decisión de la corte indica que las inscripciones en cada secundaria en la ciudad
de Metrópolis deben incluir por lo menos un 20% de negros. En la tabla se muestra
el número de alumnos negros y blancos de las secundarias en cada uno de los cinco
distritos escolares de la ciudad.
BLANCOS NEGROS
Distrito 1 80 30
Distrito 2 70 5
Distrito 3 90 10
Distrito 4 50 40
Distrito 5 60 30
La distancia, en millas, que debe viajar un alumno de cada distrito para llegar a cada
secundaria se muestra en la siguiente tabla:
ESC.SEC 1 ESC.SEC 2
Distrito 1 1 2
Distrito 2 0.5 1.7
Distrito 3 0.8 0.8
Distrito 4 1.3 0.4
Distrito 5 1.5 0.6
MODEL:
SETS:
BN/1,2/:;
DIS/1..5/:;
ESC/1,2/:;
BNDIS(BN,DIS):;
BNESC(BN,ESC):;
DISESC(DIS,ESC):;
ALUMNO(BN,DIS,ESC):Y,X,DISTA,NUME;
ENDSETS
DATA:
DISTA=1,2,.5,1.7,.8,.8,1.3,.4,1.5,.6,
1,2,.5,1.7,.8,.8,1.3,.4,1.5,.6;
NUME=80,80,70,70,90,90,50,50,60,60,
30,30,5,5,10,10,40,40,30,30;
ENDDATA
MIN=@SUM(ALUMNO:X*DISTA);
@FOR(ESC(K):@SUM(BNDIS(I,J):X(I,J,K))>=150);
@FOR(ESC(K):@SUM(BNDIS(I,J)|I#EQ#2:X(I,J,K))*4>=@SUM(BNDIS(I,J)|I#EQ#1:X(
I,J,K)));
@FOR(ALUMNO:X=NUME*Y);
@FOR(DISESC(J,K):Y(1,J,K)=Y(2,J,K));
@FOR(BNDIS(I,J):Y(I,J,1)+Y(I,J,2)=1);
@FOR(ALUMNO:@BIN(Y));
END
EN LINGO
MODEL:
SETS:
F/1..3/:CF,CV,X,Y,LIM;
ENDSETS
DATA:
CV=500,350,250;
CF=5000,4000,6000;
LIM=500,900,400;
ENDDATA
MIN=@SUM(F:CV*X+CF*Y);
@FOR(F(I):X(I)<=LIM(I)*Y(I));
@SUM(F:X)=1100;
@FOR(F:@BIN(Y));
END
ALGEBRAICAMENTE:
MIN 5000Y(1)+4000Y(2)+6000Y(3)+500X(1)+350X(2)+250X(3)
SUBJECT TO
2]- 500 Y( 1) + X( 1) <= 0
3]- 900 Y( 2) + X( 2) <= 0
4]- 400 Y( 3) + X( 3) <= 0
5] X( 1) + X( 2) + X( 3) = 1100
END
INTE 3
Reconsiderando el problema 19, suponga que al inicio del año 1 se han construido y
están en operación las plantas generadoras de energía eléctrica 1-4. Al inicio de cada
año, PSI puede cerrar una planta que está funcionando, o volver a echar a andar una
planta cerrada. En las tablas siguientes se muestran las Capacidades generadoras
deseadas, los costos asociados a la reapertura o cierre de una planta. Formule una PE
para minimizar el costo total para poder satisfacer las demandas de los próximos cinco
años
CAPACIDAD GENERADORA (millones kwh)
AÑO 1 80
AÑO 2 100
AÑO 3 120
AÑO 4 140
AÑO 5 160
SETS:
PLA/1..4/:CAPL;
ANO/1..5/:CAPAC;
FUN(PLA,ANO):Y,X,Z,COSOP,COSCIE,COSABR;
ENDSETS
DATA:
CAPL=70,50,60,40;
CAPAC=80,100,120,140,160;
COSOP=1.5,1.5,1.5,1.5,1.5,.8,.8,.8,.8,.8,1.3,1.3,1.3,1.3,1.3,.6,.6,.6,.6,.6;
COSCIE=1.7,1.7,1.7,1.7,1.7,1.2,1.2,1.2,1.2,1.2,1.3,1.3,1.3,1.3,1.3,.8,.8,.8,.8,.8;
COSABR=1.9,1.9,1.9,1.9,1.9,1.5,1.5,1.5,1.5,1.5,1.6,1.6,1.6,1.6,1.6,1.1,1.1,1.1,1.1,1.1;
ENDDATA
MIN=@SUM(FUN:X*COSOP+Y*COSCIE+Z*COSABR);
@FOR(ANO(J):@SUM(FUN(I,J):X(I,J)*CAPL(I))>=CAPAC);
@FOR(FUN(I,J)|J#EQ#1:X(I,J)=1);
@FOR(FUN(I,J)|J#EQ#1:Z(I,J)=0);
@FOR(FUN(I,J)|J#NE#5:X(I,J)-Y(I,J)=X(I,J+1));
@FOR(FUN(I,J):Y(I,J)<=X(I,J));
@FOR(FUN(I,J)|J#NE#1:X(I,J)-Z(I,J)=X(I,J-1));
@FOR(FUN(I,J):Z(I,J)<=X(I,J));
@FOR(FUN:@BIN(Y));
@FOR(FUN:@BIN(X));
@FOR(FUN:@BIN(Z));
END
Nota: He supuesto que ese costo diario es por CADA operación, es decir, si el
camión 1 va a dos tiendas, el costo de operación del camión 1 será 45+45=90.
CAPACIDAD COSTO
(galones) OPERACIÓN
($)
Camión 1 400 45
Camión 2 500 50
Camión 3 600 55
Camión 4 1100 60
! Xij=galones transportados i=camión j=tienda;
MODEL:
SETS:
CA/1..4/:CAP,OPE;
TI/1..5/:DEM;
MILK(CA,TI):X,Y,COS;
ENDSETS
DATA:
CAP=400,500,600,1100;
COS=45,45,45,45,45,50,50,50,50,50,55,55,55,55,55,60,60,60,60,60;
DEM=100,200,300,500,800;
ENDDATA
MIN=@SUM(MILK:COS*Y);
@FOR(TI(J):@SUM(CA(I):X(I,J))=DEM(J));
@FOR(MILK(I,J):X(I,J)<=CAP(I)*Y(I,J));
@FOR(CA(I):@SUM(TI(J):X(I,J))<=CAP(I));
@FOR(MILK:@BIN(Y));
END
SECUENCIACIÓN EN LINGO
MAQUINA
J
TRABAJO I M1 M2 M3
A 3 -- 8
B 7 3 --
C 5 4 3
SECUENCIA K
TRABAJO I 1 2 3
A M3 M1 --
B M2 M1 --
C M1 M3 M2
FORMULACIÓN EN LINGO:
!PROBLEMA DE SECUENCIACIÓN
Tij= Tiempo de Inicio del trabajo i en la máquina j
Dij = Duración
TT = tiempo total del programa;
MODEL:
SETS:
A/1/:TT;
B/1..5/:Y;
TR/1..3/:;
MQ/1..3/:;
GOL(TR,MQ):T,D;
ENDSETS
MIN=@SUM(A:TT);
@FOR(GOL(I,J)|I#EQ#1:T(1,3)+8<=T(1,1));
@FOR(GOL(I,J):T(1,1)+3<=TT(1));
@FOR(GOL(I,J)|I#EQ#2:T(2,2)+3<=T(2,1));
@FOR(GOL(I,J):T(2,1)+7<=TT(1));
@FOR(GOL(I,J)|I#EQ#3:T(3,1)+5<=T(3,3));
@FOR(GOL(I,J)|I#EQ#3:T(3,3)+3<=T(3,2));
@FOR(GOL(I,J):T(3,2)+4<=TT(1));
@FOR(GOL(I,J)|J#EQ#1:T(1,1)+3<=T(2,1)+500*Y(1));
@FOR(GOL(I,J)|J#EQ#1:T(2,1)+7<=T(1,1)+500*(1-Y(1)));
@FOR(GOL(I,J)|J#EQ#1:T(1,1)+3<=T(3,1)+500*Y(2));
@FOR(GOL(I,J)|J#EQ#1:T(3,1)+5<=T(1,1)+500*(1-Y(2)));
@FOR(GOL(I,J)|J#EQ#1:T(2,1)+7<=T(3,1)+500*Y(3));
@FOR(GOL(I,J)|J#EQ#1:T(3,1)+5<=T(2,1)+500*(1-Y(3)));
@FOR(GOL(I,J)|J#EQ#2:T(2,2)+3<=T(3,2)+500*Y(4));
@FOR(GOL(I,J)|J#EQ#2:T(3,2)+4<=T(2,2)+500*(1-Y(4)));
@FOR(GOL(I,J)|J#EQ#3:T(1,3)+8<=T(3,3)+500*Y(5));
@FOR(GOL(I,J)|J#EQ#3:T(3,3)+3<=T(1,3)+500*(1-Y(5)));
@FOR(B:@BIN(Y));
END