Professional Documents
Culture Documents
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