2. El Algoritmo Simplex

40
E. Raffo Lecca 3 El algoritmo Simplex El Método Simplex publicado por George Dantzig en 1947, consiste en un algoritmo iterativo que secuencialmente a través de iteraciones se va aproximando al óptimo del problema de Programación Lineal. 3.1 Simplex Más exactamente, un simplex es el conjunto convexo de un conjunto de (n + 1) puntos independientes afines en un espacio euclidiano de dimensión n o mayor, es decir, el conjunto de puntos tal que ningún m-plano contiene más que (m + 1) de ellos. Un 0-simplex es un punto; un 1-simplex un segmento de una línea; un 2-simplex un triángulo; un 3-símplex es un tetraedro; y un 4-simplex es un pentácoron (en cada caso, con su interior).

Transcript of 2. El Algoritmo Simplex

Page 1: 2. El Algoritmo Simplex

E. Raffo Lecca

3El algoritmo SimplexEl Método Simplex publicado por George Dantzig en 1947, consiste en un algoritmo

iterativo que secuencialmente a través de iteraciones se va aproximando al óptimo del

problema de Programación Lineal.

3.1 Simplex

Más exactamente, un simplex es el conjunto convexo de un conjunto de (n + 1) puntos

independientes afines en un espacio euclidiano de dimensión n o mayor, es decir, el

conjunto de puntos tal que ningún m-plano contiene más que (m + 1) de ellos.

Un 0-simplex es un punto; un 1-simplex un segmento de una línea; un 2-simplex un

triángulo; un 3-símplex es un tetraedro; y un 4-simplex es un pentácoron (en cada caso, con

su interior).

Un simplex regular es también un politopo regular.

Como en el PL en dos dimensiones (2 variables), cada una de las restricciones divide

al espacio en dos partes: a un lado existen puntos que forman parte de la región factible y al

otro están los puntos que "violan" la restricción. Todas las restricciones juntas forman un

poliedro o politopo multidimensional, que encierra a todas las soluciones posibles.

Los polígonos son politopos en 2 dimensiones

Page 2: 2. El Algoritmo Simplex

E. Raffo Lecca

Los poliedros son politopos en 3 dimensiones

los polícoros son politopos en 4 dimensiones. La palabra polícoro o polícoron

del griego poli “muchos” y coros “espacio”, es un poliedroide.

Una clase especial de politopos son los politopos convexos, el cerco convexo de un

conjunto finito de puntos. Los politopos convexos también pueden representarse como

la intersección de semiespacios.

Esta intersección es la desigualdad  Ax ≤ b, donde A es una matriz de m por n,

con m el número de semiespacios y n el número de dimensiones del politopo, y b es un

vector columna.

3.2 Formas de presentación de un PL

Forma canónica

max z=cx

Sujeto a:

Ax ≤ b

x≥ 0

Máximo Mínimomax z=cx

Sujeto a:

Ax ≤ b

x≥ 0

min z=cx

Sujeto a:

Ax ≥ b

x≥ 0

La desigualdad (restricción) i ,i=1,2 , …

a i1 x1+ai 2 x2+…+ail x l≤ b i

Se convierte a la ecuación i , agregando una variable de holgura

Page 3: 2. El Algoritmo Simplex

E. Raffo Lecca

a i1 x1+ai 2 x2+…+ail x l+si=b i

Forma estándar

Máximo Mínimomax z=cx+0 x s

Sujeto a:

Ax+ Ix s=b

x , xs ≥ 0

min z=cx+0 xs

Sujeto a:

Ax−Ix s=b

x , xs ≥ 0

3.3 Algoritmo Simplex

Sea el problema de maximización:

PL z x xs RHSz−cx−0 xs=0

0z+ Ax+ Ix s=b

1

0

-c

B−1 A

0

B−1

0

B−1 b

De:

c=(cB , c N) , x=(x B

xN), A=(B , N )

z=cx=cB xB+c N xN

Ax=(B , N )( xB

x N)=B x B+N x N=b

Equivalente

z=c B xB+cN xN

xB=B−1b−B−1 N x N

z=c B(B−1 b−B−1 N xN)+cN x N

z=c B B−1 b−cB B−1 N xN +cN x N

Page 4: 2. El Algoritmo Simplex

E. Raffo Lecca

xB=B−1b−B−1∑j=1

n−m

a j x j

z=z0−(cB B¿¿−1 a j−cN)∑j=1

n−m

x j ¿

z j=cB B−1 a j

z=z0− ∑j∈NB

(z j−c j) x j, c j=z j−c j

Ax=B xB+N xN=b

B−1 Ax=B−1 B xB+B−1 N xN=B−1b

y=B−1 N

B−1 Ax=I x B+ y x N=B−1 b

PL z xB xN RHSz−0 xB+c xN=z0

0z+I xB+ yxN=B−1 b

1

0

0

I

c

y

z0

B−1 b

max z=3 x1+2 x2

Sujeto a:

x1+ x2 ≤ 40

x1+2 x2 ≤ 40

x1≥ 0 , x2≥ 0

En la forma estándar

max z=3 x1+2 x2

Sujeto a:

x1+ x2+s1=40

x1+2 x2+s2=40

x1≥ 0 , x2≥ 0 , s1≥ 0 , s2≥ 0

Page 5: 2. El Algoritmo Simplex

E. Raffo Lecca

z x1 x2 s1 s2 RHS1 -3 -2 0 0 00 1 1 1 0 400 1 2 0 1 40

Ax=b , x=(x N

xB), xB=( x3

x4), xN=( x1

x2)

B=[ a3 a4 ] , z=0 , xB=B−1 b=(x3

x4)=(40

40)En la solución para problemas del tipo≤, se tiene que:

B=I=B−1

Las variables de holgura forman la BFS inicial.

Condición de optimalidad

z=z0− ∑j∈NB

(z j−c j) x j

Para la optimización si todos los c j=z j−c j≥ 0,

Entonces z no se incrementa, luego la solución es óptima.

zk−ck=minj∈NB

(z j−c j)

z x1 x2 s1 s2 RHS1 -3 -2 0 0 00 1 1 1 0 40 40/10 1 2 0 1 40 40/1

Ingresa la variable x1

Desde

xB=B−1b−B−1∑j=1

n−m

a j x j

xB=B−1b−B−1 ak xk

Se cumple que por factibilidad

Page 6: 2. El Algoritmo Simplex

E. Raffo Lecca

xB=B−1b−B−1 ak xk ≥ 0

B−1 b ≥ B−1 ak xk

B−1 b ≥ yk xk

En la ecuación i se cumple

y ik xk ≤ B−1 bi , i=1,2 , …,r

Luego

xr ≤ min(B¿¿−1 bi / y ik , y ik>0)¿

z x1 x2 s1 s2 RHS1 -3 -2 0 0 00 1 1 1 0 40 40/10 1 2 0 1 40 40/1

xB z x1 x2 s1 s2 RHSz 1 0 1 3 0 120x1 0 1 1 1 0 40s2 0 0 1 -1 1 0

Para la maximización todos los c j=z j−c j≥ 0

x1=40

x2=0

B=( a1 , a4 ) ,B−1=( 1 0−1 1) ,B−1b=( 1 0

−1 1)(4040)=(40

0 )y1=B−1 a1=( 1 0

−1 1)(11)=(10)

y2=B−1 a2=( 1 0−1 1)(12)=(1

1)

Page 7: 2. El Algoritmo Simplex

E. Raffo Lecca

z2−c2=cB B−1a2−c2=cB y2−c2

¿ (c1 c4 )(11)−c2= (3 0 )(11)−2=1

3.4 Formulación de PL dinámicos

Existen problemas en la vida diaria, cuya característica es que están constituidos por

decisiones en el tiempo, de allí el nombre de dinámicos.

En la presente sección se estudiarán problemas dinámicos, que son resueltos usando

la programación lineal. Un típico problema es el de producción-inventario.

3.4.1 Problema de producción-inventario

Una empresa tiene que entregar para los siguientes periodos, la cantidad demandada

Di ,i=1,⋯ , n. Las demandas no pueden ser diferidas, lo que significa que tienen que ser

satisfechas, y no pueden ser diferidas.

En cada periodo se puede producir cualquier cantidad de unidades a un precio por

unidad pi ,i=1,⋯ , n. Se permite producir unidades y los sobrantes dejarlos en inventario. El

costo de una unidad en inventario es hi , i=1 ,⋯ , n .

Presentar el PL para este modelo de producción-inventario, con el objetivo de

minimizar los costos de producción más inventario; teniendo como inventario al inicio Inv0

de unidades.

Desde la ecuación contable:

Inventario final=Inventario inicial+Producción−Demanda

Sea la variable:

x i=Cantidad a producir enel periodoi , i=1 ,⋯ , n

Page 8: 2. El Algoritmo Simplex

E. Raffo Lecca

Las siguientes relaciones son modeladas usando la ecuación contable:

El inventario al final del periodo 1:

Inv0+x1−D1

El inventario al final del periodo 2:

Inv0+x1−D1+( x2−D2 )Inv0+x1+ x2−D1−D2

El inventario al final del periodo 3:

Inv0+x1+ x2−D1−D2+( x3−D3 )Inv0+x1+ x2+x3−D1−D2−D3

El inventario al final del periodo n:

Inv0+∑i=1

n

(x i¿−D i)¿

Introduciendo la siguiente variable:

Invi=Inventario al final del periodo i ,i=1 ,⋯ , n

Las relaciones anteriores, son presentadas de una manera más compacta usando la

ecuación de inventario:

Inv1=Inv0+x1−D1

Invi=Invi−1+x i−Di , i=1 ,⋯ , n

La función objetivo es la suma de los costos de producción y los costos de

inventario:

min z=∑i=1

n

pi x i+¿∑i=1

n

hi Invi ¿

Las restricciones corresponden al inventario que tienen como supuesto: que

normalmente en inventario es no negativo:

Inv1=Inv0+x1−D1

Invi=Invi−1+x i−Di , i=1 ,⋯ , n

Page 9: 2. El Algoritmo Simplex

E. Raffo Lecca

x i , Invi ≥ 0 ,i=1 ,⋯ , n

Datos:

D1 ¿500 , D2=650 , D3=800 , D 4=900

p1 ¿10 , p2=10 , p3=12 , p4=13

h1 ¿h2=h3=h4=1

Inv0=300

Implementación 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); );

El reporte de LINGO es como sigue:

Global optimal solution found. Objective value: 28100.00 Total solver iterations: 0

Variable Value Reduced Cost INV0 300.0000 0.000000 DEMANDA( 1) 500.0000 0.000000 DEMANDA( 2) 650.0000 0.000000 DEMANDA( 3) 800.0000 0.000000 DEMANDA( 4) 900.0000 0.000000

Page 10: 2. El Algoritmo Simplex

E. Raffo Lecca

INV( 1) 0.000000 1.000000 INV( 2) 1700.000 0.000000 INV( 3) 900.0000 0.000000 INV( 4) 0.000000 13.00000 X( 1) 200.0000 0.000000 X( 2) 2350.000 0.000000 X( 3) 0.000000 1.000000 X( 4) 0.000000 1.000000 P( 1) 10.00000 0.000000 P( 2) 10.00000 0.000000 P( 3) 12.00000 0.000000 P( 4) 13.00000 0.000000 H( 1) 1.000000 0.000000 H( 2) 1.000000 0.000000 H( 3) 1.000000 0.000000 H( 4) 1.000000 0.000000

Row Slack or Surplus Dual Price 1 28100.00 -1.000000 2 0.000000 10.00000 3 0.000000 10.00000 4 0.000000 11.00000 5 0.000000 12.00000

El valor de la función objetivo es z=28,100 y las variables decisionales son las

mostradas en la tabla 3.1.

Periodo Producción Demanda Inventario

1 200 500 0

2 2350 650 1700

3 0 800 900

4 0 900 0

Tabla 3.1: Solución óptima

Si la capacidad de producción en cada periodo está limitada en la cantidad CAPAC,

entonces el PL es:

min z=∑i=1

n

pi x i+¿∑i=1

n

hi Invi ¿

Sujeto a:

Inv1=Inv0+x1−D1

Invi=Invi−1+x i−Di , i=1 ,⋯ , n

Page 11: 2. El Algoritmo Simplex

E. Raffo Lecca

x i≤ CAPAC , i=1 ,⋯ , n

x i , Invi ≥ 0 ,i=1 ,⋯ , n

Datos:

CAPAC=800

Implementación 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); );

! RESTRICCION DE LA CAPACIDAD DE PRODUCCION;@FOR(PERIODO: X <= CAPAC; );

El valor de la función objetivo es z=29,650 y las variables decisionales son las

mostradas en la tabla 3.2.

Periodo Producción Demanda Inventario

1 800 500 600

Page 12: 2. El Algoritmo Simplex

E. Raffo Lecca

2 800 650 750

3 800 800 750

4 150 900 0

Tabla 3.2: Solución óptima

Si en adición, la capacidad de inventario en cada periodo está limitada en la

cantidad HMAX, entonces el PL es:

min z=∑i=1

n

pi x i+¿∑i=1

n

hi Invi ¿

Sujeto a:

Inv1=Inv0+x1−D1

Invi=Invi−1+x i−Di , i=1 ,⋯ , n

x i≤ CAPAC , i=1 ,⋯ , n

Invi ≤ HMAX ,i=1,⋯ , n

Datos:

HMAX=600

Implementación 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:

Page 13: 2. El Algoritmo Simplex

E. Raffo Lecca

INV(I) = INV(I-1)+X(I)-DEMANDA(I); );

! RESTRICCION DE LA CAPACIDAD DE PRODUCCION E INVENTARIO;@FOR(PERIODO: X <= CAPAC; INV<=HMAX;);

El valor de la función objetivo es z=29,650 y las variables decisionales son las

mostradas en la tabla 3.3.

Periodo Producción Demanda Inventario

1 200 500 0

2 800 650 150

3 750 800 100

4 800 900 0

Tabla 3.3: Solución óptima

3.4.2 Problema de planeamiento de personal

MANPOWER es una empresa que provee personal capacitado de manera temporal, al

sector empresarial. Para el presente año, se tiene que cubrir las siguientes demandas de

secretarias ejecutivas: 7500, 7000, 8000 y 6000 secretarias-días en los 4 trimestres

respectivamente.

Actualmente MANPOWER cuenta con 100 secretarias ejecutivas entrenadas; siendo

el tiempo de 5 días los necesarios para entrenar a una nueva secretaria ejecutiva que se

contrata. Asumir un trimestre de ¼ de año (considere un año de 52 semanas), y una

secretaria labora 5 días por semana.

¿Cómo deberá ser el programa de reclutamiento de nuevas secretarías ejecutivas en

MANPOWER, para cumplir con los compromisos en los siguientes cuatro trimestres,

sabiendo que cada secretaria ejecutiva recibe un sueldo de $1500 por trimestre y existe un

20% de deserción de secretarias al final de cada trimestre?

Page 14: 2. El Algoritmo Simplex

E. Raffo Lecca

Un PL se compone de decisiones, restricciones y objetivos. La primera pregunta es

¿Qué se necesita conocer?, la respuesta viene por el lado de las variables decisionales:

Cuántas secretarias ejecutivas se deberá contratar para cumplir con la demanda por cada

trimestre.

x i=Cantidad de secretarias acontratar enel trimestre i ,i=1 ,⋯ , 4

si=Cantidad desecretarias al finalizar el trimestre i , i=1 ,⋯ , 4

La variable si corresponde al tamaño de la fuerza laboral de secretarias en el

trimestre i, y cumple la siguiente ecuación:

si={ 100+x1 ,i=10.80 si−1+x i , i=2 ,⋯ , 4

s1=100+x1

s2=0.80 s1+x2

s3=0.80 s2+x3

s4=0.80 s3+x4

La función objetivo es pagar los sueldos para los cuatro trimestres:

min z=1500(s¿¿1+s2+s3+s4)¿

Restricciones de la demanda de Secretarias-Días por trimestre (sabiendo que un

trimestre tiene 52/4 = 13 semanas y cada semana 5 días, totalizando 65 días):

(65 ) 100+60 x1≥ 7500

(65)0.80 s1+60x2 ≥7000

(65)0.80 s2+60 x3 ≥ 8000

(65)0.80 s3+60 x4≥ 6000

El PL es:

min z=1500(s¿¿1+s2+s3+s4)¿

Page 15: 2. El Algoritmo Simplex

E. Raffo Lecca

Sujeto a:

s1=100+x1

s2=0.80 s1+x2

s3=0.80 s2+x3

s4=0.80 s3+x4

60 x1≥ 1000

52 s1+60 x2 ≥7000

52 s2+60 x3 ≥ 8000

52 s3+60 x4≥ 6000

x i≥ 0 , i=1 ,⋯ , 4 si ≥ 0 ,i=1 ,⋯ , 4

Implementación 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););

Como la solución para la cantidad de secretarias a contratar encada trimestre es un

valor discreto, se recomienda introducir las líneas siguientes:

! RESTRICCION ENTERA;@FOR(TRIMESTRE:

Page 16: 2. El Algoritmo Simplex

E. Raffo Lecca

@GIN(X));

3.4.3 Problema de flujo de efectivo

Una empresa, se encuentra planificando su flujo de efectivos a lo largo de los bimestres en

el presente año. La empresa conoce sus deudas y sus ingresos para los siguientes 6

bimestres. Ver la tabla 3.4.

Desde el flujo de ingresos, no es posible pagar las cuentas, sin recurrir a préstamos

bancarios; a pesar que dispone actualmente de S/ 2000.

La compañía puede pedir préstamos a la banca local en el bimestre, pagando el

préstamo en el siguiente bimestre con una tasa de interés del 8% por bimestre.

Bimestre Ingreso Cuentas

1 2000 6000

2 3000 4000

3 2000 6000

4 6000 2000

5 7000 3000

6 6000 2000

Tabla 3.4: Ingresos y cuentas para los seis bimestres

Plantear el programa lineal de flujos de efectivos, con la finalidad de optimizar el

costo de cumplir con sus obligaciones.

Desde la ecuación contable:

saldo final=saldoinicial+ Ingreso−Deuda+Préstamo−Préstamoanterior

Sea la variable:

x i=Cantidad a pedir de préstamo enel periodoi , i=1 ,⋯ , n

Page 17: 2. El Algoritmo Simplex

E. Raffo Lecca

La variable si corresponde al saldo de dinero al bimestre i, y cumple la siguiente

ecuación:

si={ 2000+ Ingreso1−Cuenta1+ x1 , i=1si−1+ Ingresoi−Cuentai+x i−1.08 x i−1 , i=2 ,⋯ ,5

s5+ Ingreso6−Cuenta6−1.08 x5 , i=6

min z=∑i=1

n

0.08 x i

Implementación 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 línea de producción que fabrica 2 productos. En la

tabla 3.4 se encuentran los datos relativos al tiempo de producción (horas/unidad), costo de

Page 18: 2. El Algoritmo Simplex

E. Raffo Lecca

producción ($/unidad) y precio de venta ($/unidad). El tiempo total de producción es 80

horas por periodo.

Productos

A B

Tiempo de producción 0.60 0.90

Costo de producción 10 15

Precio de venta 22 30

Tabla 3.4: Datos de producción

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.

ProductoPeriodo

1 2 3 4

A 80 90 75 80

B 15 30 60 30

Tabla 3.5: Datos de producción

Formule un PL, para maximizar las ganancias en la planeación de los cuatro

periodos.

2. Una planta de conversión de papel utiliza como insumos, papeles y cartones para

transformarlos en pulpa. Existen 4 tipos de papeles y cartones, y existen dos métodos 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.

Page 19: 2. El Algoritmo Simplex

E. Raffo Lecca

Insumos Costo ($) Pulpa (%)

1 5 20

2 6 25

3 10 35

4 12 50

Tabla 3.6: Datos del problema

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.

El papel de grado 1 sólo se consigue mezclando el insumo 1 y 2; el papel de grado 2

sólo se consigue mezclando el insumo 2 y 3; y el papel de grado 3 sólo se consigue

mezclando el insumo 3 y 4.

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:

max z=k x1+l x2

Sujeto a:

fx1+gx2 ≤50

hx1+i x2≤ b2

x1 , x2≥ 0

Tiene el siguiente tablero simplex óptimo:

Page 20: 2. El Algoritmo Simplex

E. Raffo Lecca

xB x1 x2 s1 s2 RHSz 0 c 2.571 a 137.143x1 1 d 0.429 -0.143 12.857x2 0 e 0.143 b 24.286

Determinar todos los coeficientes.

4. Una constructora para la gestión en la construcción de un proyecto que dura todo el

año, tiene la necesidad de mano de obra que aparece en la tabla 3.7.

Meses 1 2 3 4 5 6Mano de obra 70 120 80 50 90 120

Meses 7 8 9 10 11 12Mano deobra 50 60 30 50 70 60

Tabla 3.7: Necesidad de mano de obra

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.

¿Cuál deberá ser el programa de contratación con la finalidad de optimizar sus

costos para su proyecto de construcción?

5. La compañía Maquinarias, fabrica las máquinas A y B. Para los siguientes cuatro

trimestres del año, se tiene que satisfacer la demanda, según la tabla 3.8

ProductoPeriodo

1 2 3 4

A 100 80 120 80

B 70 40 60 50

Tabla 3.8: Demanda de los productos

Page 21: 2. El Algoritmo Simplex

E. Raffo Lecca

La utilidad de cada máquina A es S/ 3000 y de la máquina B es S/ 4000. Mantener

una unidad en almacenes de un trimestre a otro es S/ 300 para el producto A y S/ 500 para

el producto B.

La capacidad total de producción de máquinas es de 150 unidades. Al principio de

año existen en almacenes 20 unidades del producto A y 40 unidades del producto B.

¿Cuál deberá ser el programa de producción, con la finalidad de optimizar la

utilidad para el presente año?

Problemas resueltos

1. Desde la formulación de un problema de producción-inventario para un producto; se

generaliza para i ,i=1 , …, m productos:

Invi 1=Invi 0+x i 1−Di 1 , i=1 ,⋯ , m

Invij=Invi , j−1+ xi , j−D i , j , i=1 ,⋯ , m, j=1,⋯ , n

x i , j , Invi , j≥ 0 , ∀ i , j

Las variables entonces son:

x ij=Cantidad a producir de i , enel periodo j ,∀ i , j

Invi , j=Inventario del producto i , al final del periodo j ,∀ i , j

La función objetivo es la suma de los costos de producción y los costos de

inventario para todos los productos:

min z=∑i=1

m

(∑j=1

n

pi xi , j+∑j=1

n

h i Invi , j)Las restricciones corresponden al inventario que tienen como supuesto: que

normalmente en inventario es no negativo:

Invi 1=Invi 0+x i 1−Di 1 , i=1 ,⋯ , m

Invij=Invi , j−1+ xi , j−D i , j , i=1 ,⋯ , m, j=1,⋯ , n

Page 22: 2. El Algoritmo Simplex

E. Raffo Lecca

x i , j , Invi , j≥ 0 , ∀ i , j

Para el problema, el inventario puede ser positivo (excedente) o negativo (escasez).

Para cumplir este fin, el inventario se iguala a la diferencia de variables no negativas:

Invi , j=uij−v ij,∀ i , j

Las restricciones corresponden al inventario, que puede ser positivo o negativo:

ui 1−v i 1=ui 0+x i1−D i1 , i=1 ,⋯ , m

uij−v ij=ui , j−1−v i , j−1 ,+x i , j−Di , j , i=1 ,⋯ , m , j=1 ,⋯ , n

La restricción del total del tiempo de producción:

∑i=1

m

Tiempo i x ij ≤ 80 , ∀ j

La función objetivo es la diferencia de ingresos menos los costos de producción,

costos de excedente y costo de escasez (para todos los productos):

max z=∑i=1

m

(x ij−∑j=1

n

(Precio i−pi)x i , j−∑j=1

n

hi ui , j−∑j=1

n

Escasezi vi , j)

EL PL resultante es:

max z=∑i=1

m

¿¿¿

Sujeto a:

ui 1−v i 1=ui 0+x i1−D i1 , i=1 ,⋯ , m

uij−v ij=ui , j−1−v i , j−1 ,+x i , j−Di , j , i=1 ,⋯ , m , j=1 ,⋯ , n

∑i=1

m

Tiempo i x ij ≤ 80 , ∀ j

x i , j , uij , v ij ≥ 0 ,∀ i , j

Implementación en LINGO

! PRODUCCION-INVENTARIO CON ESCASEZ;! SCAZO;

Page 23: 2. El Algoritmo Simplex

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); );

! RESTRICCION DE TIEMPO TOTAL;@FOR(PERIODO(J): @SUM(PRODUCTO(I):TIEMPO(I)*X(I,J))<=80; );

! RESTRICCION DE INVENTARIO FINAL;@FOR(PRODUCTO(I): U(I,N)=0; V(I,N)=0;);

El valor de la función objetivo es z=5,740 y las cantidades a producir son las

mostradas en la tabla 3.7.

Producto Periodo

Page 24: 2. El Algoritmo Simplex

E. Raffo Lecca

1 2 3 4

A 80 90 75 80

B 35.55 28.88 38.88 31.66

Tabla 3.7: producción

2. El problema de reciclar papel desde diversos insumos se presenta en la gráfica de la

figura 3.1.

Las variables de decisión corresponden a:

a i=Toneladasdel insumoi ,i=1 ,⋯ , 4 al proceso 1

b i=Toneladasdel insumoi ,i=1 ,⋯ , 4 al proceso 2

Productos resultantes después del proceso 1:

1 : (0.20 ) a1 (0.90 )=0.18a1

2 : (0.25 ) a2 (0.90 )=0.225 a2

3 : (0.30 ) a3 (0.90 )=0.27a3

4 : (0.50 ) a4 (0.90 )=0.45 a4

Productos resultantes después del proceso 2:

1 : (0.20 ) b1 (0.80 )=0.16b1

2 : (0.25 ) b2 (0.80 )=0.20b2

3 : (0.30 ) b3 (0.80 )=0.24b3

4 : (0.50 ) b4 (0.80 )=0.40 b4

Page 25: 2. El Algoritmo Simplex

E. Raffo Lecca

Figura 3.1: Proceso de conversión de papel

Desde la tabla 3.8, se presenta las toneladas de pulpas de insumo que son utilizadas

en los grados de papel.

x11

x21 x22

x32 x33

x43

Tabla 3.8: Mezcla de insumos y grados

La función objetivo es la suma de los costos de insumos más los costos de los

procesos:

Page 26: 2. El Algoritmo Simplex

E. Raffo Lecca

Costos de insumos=5 (a1+b1 )+6 (a2+b2 )+10 (a3+b3 )+12 (a4+b4 )

Costos de proceos=25 ( a1+a2 +a3+a4 )+20 ( b1+b2+b3+b4 )

Restricción de capacidad de procesamiento de insumos:

a1+a2+a3+a4≤ 2500

b1+b2+b3+b4 ≤2500

Restricción de la demanda de grados de papel:

x11+x21≥ 500

x22+x32≥ 1000

x33+x 43≥500

Restricción de producción de grados de papel:

0.18 a1+0.16 b1=x11

0.225 a2+0.20 b2=x21+x22

0.27 a3+0.24 b3=x32+x33

0.45 a4+0.40 b4=x43

El PL resultante es:

min z=¿30 a1+31 a2+35 a3+37 a4+25 b1+26 b2+30 b3+32 b4 ¿

Sujeto a:

a1+a2+a3+a4≤ 3500

b1+b2+b3+b4 ≤3500

x11+x21≥ 500

x22+x32≥ 1000

x33+x 43≥500

0.18 a1+0.16 b1=x11

0.225 a2+0.20 b2=x21+x22

Page 27: 2. El Algoritmo Simplex

E. Raffo Lecca

0.27 a3+0.24 b3=x32+x33

0.45 a4+0.40 b4=x43

a1 , a2 , a3 , a4 ≥ 0

b1 , b2 ,b3 ,b4 ≥ 0

x11 , x21 , x22 , x32 , x33 , x43≥ 0

Implementación 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;ENDSETSDATA: 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);

! RESTRICCION DE PROCESAMIENTO DE INSUMOS;@SUM(PAPEL(J):A(J))<=3500;

@SUM(PAPEL(J):B(J))<=3500;

! RESTRICCIONES DE DEMANDA DE GRADO DE PAPEL;@FOR(GRADO(J): @SUM(PAPEL(I):INCIDENCIA(I,J)*X(I,J))>= DEMANDA(J););

! RESTRICCION DE PRODUCCION DE GRADO DE PAPEL;@FOR(PAPEL(I): INSUMOPULPA(I)*A(I)*PROCESOPULPA(1)+ INSUMOPULPA(I)*B(I)*PROCESOPULPA(2)=@SUM(GRADO(J):INCIDENCIA(I,J)*X(I,J)););

Page 28: 2. El Algoritmo Simplex

E. Raffo Lecca

El valor de la función objetivo es z=216,111.1 y las cantidades a producir son las

mostradas en las tablas 3.9 y 3.10.

Insumo

de papel

proceso

Total1 2

1 0 0 0

2 0 2500 2500

3 2285.714 1000 3285.714

4 1111.111 0 1111.111

Tabla 3.9: Solución para los insumos

Insumo

de papel

Grado

1 2 3

1 0

2 500 0

3 1000 0

4 500

Tabla 3.10: Solución para los grados

3.

B−1 b=(0.429 −0.1430.143 b )(50

b2)=(12.857

24.286)0.429 (50 )−12.857=0.143 (b2) , b2=60

0.143 (50 )−24.286=−60(b) , b=0.286

B−1 a1=(0.429 −0.1430.143 0.286 )( f

h)=(10)f =2 , h=−1

B−1 a2=(0.429 −0.1430.143 0.286 )(g

i )=(01)g=1 , i=3

Desde el cálculo de costo reducido para la variable s1:

Page 29: 2. El Algoritmo Simplex

E. Raffo Lecca

z3−c3= (k ,l )(0.4290.143)−0=2.571

0.429 (k )+0.143(l)=2.571

Desde el cálculo de la función objetivo:

12.857 (k )+24.286(l)=137.143

k=5 ,l=3

El cálculo de costo reducido para la variable s2:

z4−c4= (5,3 )(−0.1430.286 )−0=0.143

El tablero simplex óptimo:

xB x1 x2 s1 s2 RHSz 0 0 2.571 0.143 137.143x1 1 0 0.429 -0.143 12.857x2 0 1 0.143 0.286 24.286

Figura 3.2: Combinación de las contrataciones para los primeros meses

4. Para la gestión en la construcción del proyecto que dura todo el año, se tienen las

siguientes variables:

x i=Cantidad a contratar aun mes enel periodo i ,∀ i

y i=Cantidad acontratar a dos meses enel periodo i ,∀ i

ri=Cantidad a contratar a tres mesesenel periodoi ,∀ i

Page 30: 2. El Algoritmo Simplex

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:

x1+ y1+r1≥ Necesidad1

x2+ y1+ y2+r 1+r2≥ Necesidad2

x i+ y i−1+ yi+r i−2+ri−1+ri ≥ Necesidad i ,3≤ i≤ 10

x11+ y10+ y11+r9+r 10≥ Necesidad11

x12+ y11+r10≥ Necesidad12

Figura 3.3: Combinación de las contrataciones para los últimos meses

La función objetivo es la suma de todos los sueldos:

min z=∑i=1

12

(1200 x i+2000 y i+2800 r i )

Ejecutando el PL, se encuentra que el valor de la función objetivo es z=816,000 y

la cantidad de mano de obra a contratar es la que se presenta en la tabla 3.11.

Implementación en LINGO

! PROGRAMA DE CONTRATACION DE MANO DE OBRA;! CONTRATACION;! E. RAFFO LECCA;! X,Y,R =CONTRATOS MENSUALES,BIMENSUALES Y TRIMESTRALES;SETS:

Page 31: 2. El Algoritmo Simplex

E. Raffo Lecca

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);

! RESTRICCIONES PARA LA MANO DE OBRA;X(1)+Y(1)+R(1)>= NECESIDAD(1);X(2)+Y(1)+Y(2)+R(1)+R(2)>= NECESIDAD(2);

@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);

Meses x y r Necesidad Exceso1 70 70 02 40 10 120 03 80 04 50 50 05 40 90 06 30 120 07 20 50 08 10 60 09 30 0

10 50 50 011 10 10 70 012 60 0

Tabla 3.11: Programa de las contrataciones

Page 32: 2. El Algoritmo Simplex

E. Raffo Lecca