Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Raffo Lecca
3
El algoritmo Simplex
El Mtodo Simplex publicado por George Dantzig en 1947, consiste en un algoritmo
iterativo que secuencialmente a travs de iteraciones se va aproximando al ptimo del
problema de Programacin Lineal.
3.1 Simplex
Ms exactamente, un simplex es el conjunto convexo de un conjunto de (n + 1) puntos
independientes afines en un espacio euclidiano de dimensin n o mayor, es decir, el
conjunto de puntos tal que ningn m-plano contiene ms que (m + 1) de ellos.
Una clase especial de politopos son los politopos convexos, el cerco convexo de un
conjunto finito de puntos. Los politopos convexos tambin pueden representarse como
la interseccin de semiespacios.
Forma cannica
Sujeto a:
Mximo Mnimo
Sujeto a: Sujeto a:
La desigualdad (restriccin)
Forma estndar
Mximo Mnimo
Sujeto a: Sujeto a:
PL RHS
1 - 0 0
0 + 0
De:
, ( ),
( )
Equivalente
E. Raffo Lecca
PL RHS
1 0
0 + 0
Sujeto a:
En la forma estndar
Sujeto a:
z RHS
1 -3 -2 0 0 0
0 1 1 1 0 40
0 1 2 0 1 40
E. Raffo Lecca
( ), ( ), ( )
[ ] ( ) ( )
Condicin de optimalidad
z RHS
1 -3 -2 0 0 0
0 1 1 1 0 40 40/1
0 1 2 0 1 40 40/1
Ingresa la variable
Desde
En la ecuacin i se cumple
Luego
z RHS
1 -3 -2 0 0 0
0 1 1 1 0 40 40/1
0 1 2 0 1 40 40/1
z RHS
z 1 0 1 3 0 120
0 1 1 1 0 40
0 0 1 -1 1 0
( ) ( )( ) ( )
( )( ) ( )
( )( ) ( )
( ) ( )
Sea la variable:
Datos:
E. Raffo Lecca
Implementacin en LINGO
! PRODUCCION-INVENTARIO;
! INVENTARIO;
! E. RAFFO LECCA;
SETS:
PERIODO/1..4/:DEMANDA,INV,X,P,H;
ENDSETS
DATA:
DEMANDA=500 650 800 900;
P= 10 10 12 13;
H= 1 1 1 1;
INV0=300;
ENDDATA
! FUNCION OBJETIVO;
MIN=@SUM(PERIODO:P*X+H*INV);
! RESTRICCION DE DEMANDA;
INV(1)=INV0+X(1)-DEMANDA(1);
@FOR(PERIODO(I)|I#GT#1:
INV(I) = INV(I-1)+X(I)-DEMANDA(I);
);
Sujeto a:
Datos:
E. Raffo Lecca
Implementacin en LINGO
! PRODUCCION-INVENTARIO;
! INVENTARIO2;
! E. RAFFO LECCA;
SETS:
PERIODO/1..4/:DEMANDA,INV,X,P,H;
ENDSETS
DATA:
DEMANDA=500 650 800 900;
P= 10 10 12 13;
H= 1 1 1 1;
INV0=300;
CAPAC= 800;
ENDDATA
! FUNCION OBJETIVO;
MIN=@SUM(PERIODO:P*X+H*INV);
! RESTRICCION DE DEMANDA;
INV(1)=INV0+X(1)-DEMANDA(1);
@FOR(PERIODO(I)|I#GT#1:
INV(I) = INV(I-1)+X(I)-DEMANDA(I);
);
);
Sujeto a:
Datos:
Implementacin en LINGO
! PRODUCCION-INVENTARIO;
! INVENTARIO3;
! E. RAFFO LECCA;
SETS:
PERIODO/1..4/:DEMANDA,INV,X,P,H;
ENDSETS
DATA:
DEMANDA=500 650 800 900;
P= 10 10 12 13;
H= 1 1 1 1;
INV0=300;
CAPAC= 800;
HMAX=500;
ENDDATA
! FUNCION OBJETIVO;
MIN=@SUM(PERIODO:P*X+H*INV);
! RESTRICCION DE DEMANDA;
INV(1)=INV0+X(1)-DEMANDA(1);
@FOR(PERIODO(I)|I#GT#1:
INV(I) = INV(I-1)+X(I)-DEMANDA(I);
);
Cuntas secretarias ejecutivas se deber contratar para cumplir con la demanda por cada
trimestre.
El PL es:
Sujeto a:
E. Raffo Lecca
Implementacin en LINGO
! PLANEAMIENTO PERSONAL;
! PLANPERSONAL;
! E. RAFFO LECCA;
SETS:
TRIMESTRE/1..4/:DEMANDA,X,S;
ENDSETS
DATA:
DEMANDA=7500 7000 8000 6000;
S0=100;
SUELDO=1500;
ENDDATA
! FUNCION OBJETIVO;
MIN=SUELDO*@SUM(TRIMESTRE:S);
! RESTRICCION DE DEMANDA;
S(1)=S0+X(1);
65*S0+60*X(1)>=DEMANDA(1);
@FOR(TRIMESTRE(I)|I#GT#1:
S(I)=0.80*S(I-1) + X(I);
52*S(I-1)+60*X(I) >= DEMANDA(I);
);
! RESTRICCION ENTERA;
@FOR(TRIMESTRE:
@GIN(X)
);
Desde el flujo de ingresos, no es posible pagar las cuentas, sin recurrir a prstamos
bancarios; a pesar que dispone actualmente de S/ 2000.
Sea la variable:
Implementacin en LINGO
! FLUJO DE EFECTIVOS;
! EFECTIVOS
! E. RAFFO LECCA;
SETS:
BIMESTRE/1..6/:INGRESO,CUENTA,X,S;
! X=PRESTAMO EN EL MES I;
! S=SALDO EN EL MES I;
ENDSETS
DATA:
INGRESO=2000 3000 2000 6000 7000 6000;
CUENTA =6000 4000 6000 2000 3000 2000;
S0=2000;
ENDDATA
N=@SIZE(BIMESTRE);
! FUNCION OBJETIVO;
MIN=@SUM(BIMESTRE:0.08*X);
! RESTRICCION DE DEMANDA;
S(1)=S0+INGRESO(1)+X(1)-CUENTA(1);
@FOR(BIMESTRE(I)|(I#GT#1)#AND#(I#LT#N):
S(I)=S(I-1) + INGRESO(I)+X(I)-CUENTA(I)-1.08*X(I-1);
);
S(N)=S(N-1)+INGRESO(N)-CUENTA(N)-1.08*X(N-1);
Problemas propuestos
1. La empresa SCAZO tiene una lnea de produccin que fabrica 2 productos. En la
tabla 3.4 se encuentran los datos relativos al tiempo de produccin (horas/unidad), costo de
produccin ($/unidad) y precio de venta ($/unidad). El tiempo total de produccin es 80
horas por periodo.
Productos
E. Raffo Lecca
A B
Tiempo de produccin 0.60 0.90
Costo de produccin 10 15
Precio de venta 22 30
Tabla 3.4: Datos de produccin
Actualmente existen cero unidades en inventario (para cada uno de los productos), y
se quiere 0 unidades en inventarios al final de los 4 periodos. Una unidad en inventario
cuesta $4 para cada producto.
Cuando una demanda no es satisfecha cuesta $10 para el producto A, y $15 para B.
En la tabla 3.5 se presenta las demandas para los siguientes periodos.
Periodo
Producto
1 2 3 4
A 80 90 75 80
B 15 30 60 30
Tabla 3.5: Datos de produccin
2. Una planta de conversin de papel utiliza como insumos, papeles y cartones para
transformarlos en pulpa. Existen 4 tipos de papeles y cartones, y existen dos mtodos para
procesar los insumos. Se obtiene papel reciclado en tres grados; siendo el costo en
toneladas y el contenido de pulpa de los insumos, los que se presentan en la tabla 3.6.
3 10 35
4 12 50
El primer proceso cuesta $25 por procesar una tonelada de insumos, eliminando el
10% de la pulpa; el segundo proceso cuesta $20 por procesar una tonelada de insumos,
eliminando el 20 % de la pulpa. Cada proceso puede procesar hasta 3500 toneladas de
insumos.
Para el siguiente periodo las demandas de papel reciclados son de 500, 1000 y 1500
toneladas de pulpas de grado 1, 2 y 3 respectivamente. Formular y resolver el PL con el
objetivo de minimizar los costos totales.
3. El siguiente PL:
Sujeto a:
RHS
z 0 c 2.571 a 137.143
1 d 0.429 -0.143 12.857
0 e 0.143 b 24.286
E. Raffo Lecca
5 6
Mano de obra 70 120 80 50 90 120
7 8 9 10 11 12
50 60 30 50 70 60
Contratar un personal por un mes le cuesta el salario de 1200; si contrata por dos
meses le cuesta 2000 y finalmente un contrato a tres meses es 2800.
Periodo
Producto
1 2 3 4
A 100 80 120 80
B 70 40 60 50
Tabla 3.8: Demanda de los productos
Problemas resueltos
1. Desde la formulacin de un problema de produccin-inventario para un producto; se
generaliza para productos:
( )
EL PL resultante es:
Sujeto a:
Implementacin en LINGO
! PRODUCCION-INVENTARIO CON ESCASEZ;
! SCAZO;
! E. RAFFO LECCA;
E. Raffo Lecca
SETS:
PERIODO/1..4/;
PRODUCTO/1..2/:TIEMPO,PRECIO,P,H,ESCASEZ,U0;
TABLA(PRODUCTO,PERIODO):U,V,X,DEMANDA;
ENDSETS
DATA:
DEMANDA=80 90 75 80
15 30 60 30;
P= 10 15;
H= 4 4;
ESCASEZ=10 15;
TIEMPO=0.60 0.90;
U0=0 0;
PRECIO=22 30;
ENDDATA
N=@SIZE(PERIODO);
! FUNCION OBJETIVO;
MAX=@SUM(TABLA(I,J):PRECIO(I)*X(I,J)-P(I)*X(I,J)-H(I)*U(I,J)-
ESCASEZ(I)*V(I,J));
! RESTRICCION DE DEMANDA;
U(1,1)-V(1,1)=U0(1)+X(1,1)-DEMANDA(1,1);
U(2,1)-V(2,1)=U0(2)+X(2,1)-DEMANDA(2,1);
@FOR(PERIODO(J)|J#GT#1:
U(1,J)-V(1,J) = U(1,J-1)-V(1,J-1)+X(1,J)-DEMANDA(1,J);
U(2,J)-V(2,J) = U(2,J-1)-V(2,J-1)+X(2,J)-DEMANDA(2,J);
);
);
Periodo
Producto
1 2 3 4
E. Raffo Lecca
A 80 90 75 80
B 35.55 28.88 38.88 31.66
Tabla 3.7: produccin
$25
2 a 1
90%
3
b 2
$20
4
80%
Desde la tabla 3.8, se presenta las toneladas de pulpas de insumo que son utilizadas
en los grados de papel.
El PL resultante es:
Sujeto a:
E. Raffo Lecca
Implementacin en LINGO
! PAPEL RECICLADO;
! RECICLADO;
! E. RAFFO LECCA;
SETS:
PAPEL/1..4/:A,B,COSTO,INSUMOPULPA;
GRADO/1..3/:DEMANDA;
PROCESO/1..2/:COSTOPRO,PROCESOPULPA;
MATRIZ(PAPEL,GRADO):INCIDENCIA,X;
ENDSETS
DATA:
DEMANDA=500 1000 500;
COSTO=5 6 10 12;
INSUMOPULPA=0.20 0.25 0.35 0.50;
PROCESOPULPA=0.90 0.80;
COSTOPRO=25 20;
INCIDENCIA=1 0 0
1 1 0
0 1 1
0 0 1;
ENDDATA
!FUNCION OBJETIVO;
MIN=CINSUMO+CPROCESO;
CINSUMO=@SUM(PAPEL:COSTO*(A+B));
CPROCESO=COSTOPRO(1)*@SUM(PAPEL:A)+COSTOPRO(2)*@SUM(PAPEL:B);
INSUMOPULPA(I)*B(I)*PROCESOPULPA(2)=@SUM(GRADO(J):INCIDENCIA(I,J)*X(I,J))
;
);
E. Raffo Lecca
Insumo proceso
de papel 1 2 Total
1 0 0 0
2 0 2500 2500
3 2285.714 1000 3285.714
4 1111.111 0 1111.111
Tabla 3.9: Solucin para los insumos
Insumo Grado
de papel 1 2 3
1 0
2 500 0
3 1000 0
4 500
Tabla 3.10: Solucin para los grados
3.
( )( ) ( )
,
,
( )( ) ( )
( )( ) ( )
( )
( )
RHS
z 0 0 2.571 0.143 137.143
1 0 0.429 -0.143 12.857
0 1 0.143 0.286 24.286
r1 r2 r3
y1
y2 y3
x1 x2 x3
0 1 2 3
Necesidad1 Necesidad2 Necesidad3
4. Para la gestin en la construccin del proyecto que dura todo el ao, se tienen las
siguientes variables:
E. Raffo Lecca
Desde las figuras 3.2 y 3.3, que representan una vista parcial de la manera que
ocurren las contrataciones, se obtienen las siguientes relaciones para la mano de obra:
r10
r9
y10 y11
x11 x12
9 10 11 12
Necesidad10 Necesidad11
Implementacin en LINGO
! PROGRAMA DE CONTRATACION DE MANO DE OBRA;
! CONTRATACION;
! E. RAFFO LECCA;
! X,Y,R =CONTRATOS MENSUALES,BIMENSUALES Y TRIMESTRALES;
E. Raffo Lecca
SETS:
MESES/1..12/:NECESIDAD,X,Y,R;
ENDSETS
DATA:
NECESIDAD= 70 120 80 50 90 120
50 60 30 50 70 60;
ENDDATA
! FUNCION OBJETIVO;
MIN=@SUM(MESES:1200*X+2000*Y+2800*R);
@FOR(MESES(I)|(I#GT#2)#AND#(I#LT#11):
X(I)+Y(I-1)+Y(I)+R(I-2)+R(I-1)+R(I)>=NECESIDAD(I);
);
X(11)+Y(10)+Y(11)+R(9)+R(10)>= NECESIDAD(11);
X(12)+Y(11)+R(10)>= NECESIDAD(12);
Exceso
1 70 70 0
40 10 120 0
80 0
4 50 50 0
5 40 90 0
6 30 120 0
7 20 50 0
8 10 60 0
9 30 0
10 50 50 0
11 10 10 70 0
12 60 0
Tabla 3.11: Programa de las contrataciones
E. Raffo Lecca