METODO SIMPLEX
El Método Simplex es un algoritmo iterativo que
permite mejorar la solución a cada paso. La
explicación matemática de esta mejora radica,
principalmente, en que el algoritmo permite
“trasladarse” de un vértice a otro del poliedro formado
por las restricciones (conocido como el área posible
de resultados) de tal manera que el valor encontrado
aumente o disminuya.
Por supuesto, este último procedimiento dependerá si
la función objetivo se maximiza o minimiza. En todo
caso, como el número de vértices que tiene un
poliedro es finito entonces siempre se hallará una
solución con el Método Simplex.
[Link]
APLICACIÓN DEL MÉTODO SIMPLEX.
Un agricultor tiene una parcela de 1280 m² para
dedicarla al cultivo de árboles frutales: naranjos,
perales, manzanos y limoneros. Se pregunta de qué
manera debería repartir la superficie de su parcela,
entre las variedades antes mencionadas, para
conseguir el máximo beneficio sabiendo que cada
naranjo necesita un mínimo de 32 m², cada peral 8 m²,
cada manzano 8 m² y cada limonero 24 m².
Dispone de 1800 horas de trabajo al año, de las
cuales cada naranjo necesita 30 horas al año, cada
peral 5 horas, cada manzano 10 horas y, finalmente,
cada limonero necesita 20 horas.
A causa de la sequía, el agricultor tiene restricciones
para el riego, ya que le han asignado 400 m³ de agua
anuales. Las necesidades anuales son de 4 m³ por
cada naranjo, 2 m³ por cada peral, 2 m³ por cada
manzano y 4 m³ por cada limonero.
Finalmente, los beneficios unitarios para el
agricultor son de $1000 por cada naranjo, $500 por
cada peral, $400 por cada manzano y $600 por
cada limonero.
Si bien el planteamiento del problema es un poco
extenso, los cáclulos realizados empíricamente
serían aún más. Por ello, a continuación le
daremos solución utilizando el Método Simplex.
SOLUCIÓN.
Lo primero que debe hacerse es determinar las
denominadas “variables de decisión” y representarlas
algebráicamente. En este caso:
X1: Número de naranjos.
X2: Número de perales.
X3: Número de manzanos.
X4: Número de limoneros.
Posteriormente se determinan las restricciones y se
expresan como inecuaciones de las ya conocidas
variables de decisión.
Estas restricciones se deducen de todas las
necesidades que requiere cada árbol: terreno, horas
de trabajo anuales y riego. Para ello, se debe
identificar lo siguiente:
Necesidades de terreno:
32X1 + 8X2 + 8X3 + 24X4 ≤ 1280
Necesidades de horas anuales:
30X1 + 5X2 + 10X3 + 20X4 ≤ 1800
Necesidades de riego:
4X1 + 2X2 + 2X3 + 4X4 ≤ 400
Una vez establecidas las restricciones, entonces se
expresan todas las condiciones implícitamente
establecidas por la naturaleza de las variables: que
no sean negativas, que sean enteras, que sólo
puedan tomar determinados valores.
En nuestro caso las restricciones son: a) El número
de árboles no puede ser negativo y; b) El total de
árboles debe ser un número entero. Es decir:
Xi ≥ 0 y todo Xi es entero con i=1,2,3,…,n.
Finalmente, se plantea la función objetivo:
Maximizar
Z(X1,X2,X3,X4)=1000X1+500X2+400X3+600X4
Por lo tanto, nuestro problema se reduce a resolver el
siguiente planteamiento:
Max Z=1000X1+500X2+400X3+600X4
Sujeto a:
32X1 + 8X2 + 8X3 + 24X4 ≤ 1280
30X1 + 5X2 + 10X3 + 20X4 ≤ 1800
4X1 + 2X2 + 2X3 + 4X4 ≤ 400
con Xi ≥ 0 y todo Xi entero.
La solución de nuestro problema puede seguir una
serie de pasos.
PASO I) Igualar la función objetivo a cero.
Z-1000X1-500X2-400X3-600X4=0
PASO II) Convertir todas las desigualdades en
igualdades.
32X1 + 8X2 + 8X3 + 24X4=1280
30X1 + 5X2 + 10X3 + 20X4=1800
4X1 + 2X2 + 2X3 + 4X4=400
PASO III) Para cada nueva igualdad crear una
variable ficticia llamada, generalmente, holgura.
32X1 + 8X2 + 8X3 + 24X4+H1=1280
30X1 + 5X2 + 10X3 + 20X4+H2=1800
4X1 + 2X2 + 2X3 + 4X4+H3=400
PASO IV) Construir la tabla inicial del Simplex y
comezar su solución. ¿Cómo se construye?
La tabla inicial del Simplex concentra toda la
información de las igualdades así como también el
punto de partida para la función objetivo Z.
Tabla inicial del Simplex.
BASE X1 X2 X3 X4 H1 H2 H3 SOL.
H1
32 8 8 24 1 0 0 1280
H2 30 5 10 20 0 1 0 1800
H3 4 2 2 4 0 0 1 400
Z -1000 -500 -400 -600 0 0 0 0
Toda vez que la tabla inicial del Simplex se ha
creado, podemos observar que en dicha tabla se
aprecian dos matrices. La formada por las variables
de decisión (roja) y la matriz formada por las
holguras (azul). Esta última se conoce como la
matriz identidad. La idea, grosso modo, es “llevar”
a la matriz en rojo a una matriz como la azul.
Para ello es necesario lo siguiente:
1) Identificar la columna pivote.
2) Identificar la fila pivote.
3) Hacer unitario el elemento pivote, que no es
otra cosa más que el número donde se cruzan la
columna pivote y la fila pivote.
¿Cómo identificar la columna pivote?
Esta columna se define al seleccionar el número más
negativo en la función Z. En nuestro caso es el -
1000.
¿Cómo identificar la fila pivote?
Una vez identificada la columna pivote entonces la
solución de cada fila, sin tomar en cuenta la fila de la
función objetivo Z, se divide entre su correspondiente
coeficiente de la columna pivote.
El número positivo más pequeño de estas
divisiones determinará a la fila pivote. Es importante
mencionar que no se toman aquellas divisiones con
un resultado negativo y tampoco aquellas divisiones
entre cero.
Fila pivote
Elemento pivote
BASE X1 X2 X3 X4 H1 H2 H3 SOL. Div.
H1
32 8 8 24 1 0 0 1280 1280/32=40
H2 30 5 10 20 0 1 0 1800 1800/30=60
H3 4 2 2 4 0 0 1 400 400/4=100
Z -1000 -500 -400 -600 0 0 0 0
Columna pivote
Como el número positivo más pequeño de las tres
divisiones es 40 entonces éste define a la fila pivote.
Si existen resultado negativos o bien divisiones
entre 0 entonces no se toman dichas divisiones. Por
su parte, si existen dos divisiones con el mismo
resultado entonces se toma cualquiera de ellos.
A la intersección de la “columna pivote” y la “fila
pivote” se le conoce como “elemento pivote”. En
nuestro caso es 32. Si continuamos con el Método
Simplex entonces este último elemento ahora debe
hacerse unitario.
Es decir, se debe buscar un número que al
multiplicarlo por 32 nos de como resultado 1.
Es claro que el número es 1/32. Ello quiere decir
que debemos multiplicar toda la fila pivote por
1/32. El resultado de ello es la siguiente tabla:
BASE X1 X2 X3 X4 H1 H2 H3 SOL.
H1
1 1/4 1/4 3/4 1/32 0 0 40
H2 30 5 10 20 0 1 0 1800
H3 4 2 2 4 0 0 1 400
Z -1000 -500 -400 -600 0 0 0 0
Al definir el elemento pivote entonces la variable de
decisión X1 toma el lugar de la variable holgura H1 en
la base. Se dice que X1 entra en la solución y H1 sale.
Ya que hemos hecho el elemento pivote unitario
entonces el objetivo es hacer “ceros” tanto arriba
como abajo de dicho elemento pivote, según sea
el caso.
BASE X1 X2 X3 X4 H1 H2 H3 SOL.
X1
1 1/4 1/4 3/4 1/32 0 0 40
H2 30 5 10 20 0 1 0 1800
H3 4 2 2 4 0 0 1 400
Z -1000 -500 -400 -600 0 0 0 0
Es decir, multiplicamos la fila pivote por -30 y se la
sumamos (entrada por entrada) a la fila de H2,
posteriormente multiplicamos la fila pivote por -4 y
se la sumamos a la fila de H3. Finalmente,
multiplicamos la fila pivote por 1000 y se la
sumamos a la fila de Z. Los resultados se pueden
apreciar en la siguiente tabla.
Nueva fila pivote
Nuevo elemento pivote
BASE X1 X2 X3 X4 H1 H2 H3 SOL. Div.
X1
1 1/4 1/4 3/4 1/32 0 0 40 160
H2 0 -5/2 5/2 -5/2 -15/16 1 0 600 -240
H3 0 1 1 1 -1/8 0 1 240 240
Z 0 -250 -150 150 125/4 0 0 40000
Nueva columna pivote
Toda vez que hemos realizado correctamente las
operaciones anteriores entonces el procedimiento
se repite desde el paso en que se identifica a la
columna pivote.
Nuevamente al hacer el elemento pivote unitario
entonces multiplicamos la nueva fila pivote por 5/2 y
se la sumamos a la fila de H2. Posteriormente
multiplicamos la nueva fila pivote por -1 y se la
sumamos a la fila de H3.
Por último, multiplicamos la nueva fila pivote por
250 y se la sumamos a la fila de la función
objetivo Z.
Los resultados que se presentan en la siguiente
tabla implican que el algoritmo se ha terminado.
¿Por qué?
El Método del Simplex concluye cuando en toda
la fila de la función objetivo Z ya no tenemos
ningún número negativo.
Como puede apreciarse en la tabla, ya no tenemos
números negativos en la fila de Z. Es decir hemos
encontrado una solución que optimiza (maximiza)
nuestro problema.
BASE X1 X2 X3 X4 H1 H2 H3 SOL.
X2
4 1 1 3 1/8 0 0 160
H2 10 0 5 5 -5/8 1 0 1000
H3 -4 0 0 -2 -1/4 0 1 80
Z 1000 0 100 900 125/2 0 0 80000
Ya no hay números negativos !!!
La interpretación de los resultados, en la última
tabla, es la siguiente:
Como la variable X2 entró en la solución eso quiere
decir que tomará un valor y éste será de 160. Por
su parte, como las variables X3 y X4 no entraron en
la solución eso quiere decir que serán 0.
Además, también la variable X1 salió de la
solución, lo cual implica que X1=0. Asimismo,
como la variable de holgura H1 salió de la solución
entonces ello implica que dicha variable será 0.
Por último, en la última tabla se aprecia que la
variable de holgura H2=1000 y H3=80.
Sustituyendo los valores encontrados en las
restricciones, se obtiene lo siguiente:
32(0) + 8(160) + 8(0) + 24(0) + H1= 1280
30(0) + 5(160) + 10(0) + 20(0) + H2= 1800
4(0) + 2(160) + 2(0) + 4(0) + H3= 400
Donde:
1280=1280 entonces H1=0
800+H2=1800 entonces H2=1000
320+H3=400 entonces H3=80
Por lo tanto, estos son los valores para la mejor
estrategia del agricultor quien, a su vez, obtendrá
un beneficio máximo de Z=500(160)=80000.
Tiempo (horas)
de
bolsa:
producc
ión
Producto Corte y Costura Termina Inspecció Utilidad por
teñido do ny bolsa
empaque
Estándar 7/10 ½ 1 1/10 $10
De lujo 1 5/6 2/3 1/4 $9
630 600 708 135
X1 = Cantidad de productos estándar
X2= Cantidad de productos de Lujo
Función Objetivo maximizar Z = 10 X1 + 9 X2
Sujeto a
7/10 X1 + 1 X2 < 630
½ X1 + 5/6 X2 < 600
1 X1 + 2/3 X2 < 708
1/10 X1 + ¼ X2 < 135
Condiciones de No negatividad X1, X2 > 0
Z – 10X1 - 9X2 = 0
7/10 X1 + 1 X2 + S1 = 630
½ X1 + 5/6 X2 + S2 = 600
1 X1 + 2/3 X2 + S3 = 708
1/10 X1 + ¼ X2 + S4 = 135
Z X1 X2 S1 S2 S3 S4 CTE
S1 0 7/10 1 1 0 0 0 630
S2 0 1/2 5/6 0 1 0 0 600
S3 0 1 2/3 0 0 1 0 708
S4 0 1/10 1/4 0 0 0 1 135
Z 1 -10 -9 0 0 0 0 0
TABLA 1
Z X1 X2 S1 S2 S3 S4 CTE
S1 0 7/10 1 1 0 0 0 630 630/7/10 900
S2 0 1/2 5/6 0 1 0 0 600 600/1/2 1,200
S3 0 1 2/3 0 0 1 0 708 708/1 708
S4 0 1/10 1/4 0 0 0 1 135 135/1/10 1,350
Z 1 -10 -9 0 0 0 0 0
TABLA 1
Z X1 X2 S1 S2 S3 S4 CTE
S1 0 7/10 1 1 0 0 0 630 630/7/10 900
S2 0 1/2 5/6 0 1 0 0 600 600/1/2 1,200
S3 0 1 2/3 0 0 1 0 708 708/1 708
S4 0 1/10 1/4 0 0 0 1 135 135/1/10 1,350
Z 1 -10 -9 0 0 0 0 0
TABLA 2
Z X1 X2 S1 S2 S3 S4 CTE
S1
S2
X1 0 1 2/3 0 0 1 0 708
S4
El valor de la fila que sale (S3) entre el pivote
X1 0/1 1/1 (2/3)/ 0/1 0/1 1/1 0/1 708/1
1
TABLA 2
La fila entrante X1 queda con los siguientes valores
Z X1 X2 S1 S2 S3 S4 CTE
S1
S2
X1 0 1 2/3 0 0 1 0 708
S4
Ahora calcularemos los valores de las otras 4 filas
S1
[Link] S1 0 7/10 1 1 0 0 0 630
Menos
CFPSA S1 7/10 7/10 7/10 7/10 7/10 7/10 7/10 7/10
F. Ent X1 0 1 2/3 0 0 1 0 708
= 0 7/10 .46 0 0 7/10 0 495.6
Nueva S1 0 0 .54 1 0 0 0 134.4
S2
[Link] S2 0 0.5 0.83 0 1 0 0 600
Menos
CFPSA S2 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5
F. Ent X1 0 1 0.66 0 0 1 0 708
= 0 0.5 0.33 0 0 0.5 0 354
Nueva S2 0 0 0.5 0 1 -0.5 0 246
S4
[Link] S4 0 0.1 0.25 0 0 0 1 135
Menos
CFPSA S4 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1
F. Ent X1 0 1 0.66 0 0 1 0 708
= 0 0.1 0.066 0 0 0.1 0 70.8
Nueva S4 0 0 0.184 0 0 -0.1 1 64.2
Z
[Link] Z 1 -10 -9 0 0 0 0 0
Menos
CFPSA Z -10 -10 -10 -10 -10 -10 -10 -10
x
F. Ent X1 0 1 0.66 0 0 1 0 708
= 0 -10 -6.6 0 0 -10 0 -7080
Nueva Z 0 0 -3.4 0 0 10 0 7080
TABLA 2
Z X1 X2 S1 S2 S3 S4 CTE
S1 0 0 .54 1 0 0 0 134.4
S2 0 0 0.5 0 1 -0.5 0 246
X2 0 1 2/3 0 0 1 0 708
S4 0 0 0.184 0 0 -0.1 1 64.2
Z 0 0 -3.4 0 0 10 0 7080
Aun no esta resuelto porque hay un numero
negativo en Z
Tiempo de (horas)
producció
n
Producto Corte y Costura Terminado Inspección Utilidad
teñido y por bolsa
empaque
Estándar 7/10 ½ 1 1/10 $10
De lujo 1 5/6 2/3 1/4 $9
630 600 708 135
Solución Optima: X1 = 539 x2 = 253
538 .41 X 10 = 5,384.1
253.10 x 9 = 2,277.9
Total = $ 7,662
Tiempo de (horas)
producció
n
Producto Corte y Costura Terminado Inspección Utilidad
teñido y por bolsa
empaque
Estándar 7/10 ½ 1 1/10 $10
De lujo 1 5/6 2/3 1/4 $9
630 600 708 135
Corte y Teñido: 377 + 253 = 630 630 – 630 = 0
Costura = 270 + 210 = 480 600 – 480 = 120
Terminado = 539 + 169 = 708 708 – 708 = 0
Inspeccion 53.9 + 63.25 = 117 135 - 117 = 18
Acción Precio por Rendimiento Índice de riesgo
acción anual estimado por acción
por acción
U.S. Oil $25 $3 0.50
Hub Properties $50 $5 0.25
A) VARIABLES
X1 = Cantidad de Acciones de U.S. Oil
X2 = Cantidad de Acciones de Hub properties
B) Funcion objetivo
Z = 3X1 + 5X2
C) Restricciones
POR RIESGO
R1 = 0.5 X1 + 0.25 X2 < 700
Acciones de U.S. Oil R2 X1 < 1000
Acciones de Hub properties R3 25 x1 + 50x2 < 80 000
NO NEGATIVIDAD X1, X2 < 0
PAG 16