Tema Central:
¿Qué es?
Es una instrumento online para solucionar problemas de programación
lineal. Su uso es libre y gratuito. PHPSimplex puede resolver problemas
mediante el procedimiento Simplex, el método de las Dos Fases, y el
método Gráfico, y no tiene limitaciones en la cantidad de variables de
decisión ni en las restricciones de los problemas. El método Simplex es un
procedimiento iterativo que permite optimizar la solución de la función
objetivo en cada paso. El proceso concluye cuando no es posible continuar
mejorando dicho valor, es decir, se ha alcanzado la solución óptima. El
modelo debe cumplir las siguientes condiciones:
El objetivo consistirá en maximizar o minimizar el valor de la función
objetivo.
Todas las restricciones deben ser ecuaciones de igualdad.
Todas las variables (xi) deben tener valor positivo o nulo
Los términos independientes (bi) de cada ecuación deben ser no
negativos.
Ventajas:
Esta herramienta está pensada para ayudar a los estudiantes en
su aprendizaje ya que no solo muestra los resultados finales sino
también las operaciones intermedias.
Ofrece la solución directa para uso de profesionales.
No precisa de ningún lenguaje para enunciar el problema.
Ofrece una interfaz amigable, es cercano al usuario, de manejo
fácil e intuitivo.
No es necesario instalar nada para poder usarlo, y está disponible
en varios idiomas.
Método Symplex:
Construcción de la primera tabla:
La primera columna de la tabla contiene las variables que toman
valor para proveer una solución; la segunda columna recoge los
coeficientes que dichas variables básicas tienen en la función
objetivo; la tercera muestra el término independiente de cada
restricción (P0). Los costes reducidos (Zj – Cj) muestran la
posibilidad de mejora en la solución Z0. Por esta razón también
son llamados valores indicadores. Todos los valores incluidos en
la tabla vendrán dados por el modelo del problema excepto los
valores de la fila Z.
Condición de parada:
Se cumple la condición de parada cuando la fila indicadora no
contiene ningún valor negativo entre los costes reducidos, esto es,
no existe posibilidad de mejora.
Una vez cumplida la condición de parada, el valor de cada variable
que logra la solución óptima se encuentra en la columna P0,
indicándose en la base a qué variable corresponde dicho valor. Si
una variable no aparece en la base, significa que su valor es cero.
De la misma forma el valor óptimo de la función objetivo (Z) se
encuentra en la columna P0, fila Z.
Si no se cumple la condición de parada es necesario realizar una
iteración más del algoritmo, luego encontrar el elemento pivote,
actualizar los valores de la tabla y comprobar si se cumple
nuevamente la condición de parada.
Elección de la variable que entra a la base:
Cuando una variable se vuelve básica, es decir, entra en la base,
comienza a formar parte de la solución. Observando los costes
reducidos en la fila Z, se decide que entra a la base la variable de la
columna en la que éste sea el de menor valor (o de mayor valor
absoluto) entre los negativos.
Elección de la variable que sale de la base:
Una vez obtenida la variable entrante, se determina que sale de la
base la variable que se encuentre en aquella fila cuyo cociente
P0/Pj sea el menor de los estrictamente positivos.
Elemento pivote:
El elemento pivote de la tabla queda marcado por la intersección
entre la columna de la variable entrante y la fila de la variable
saliente.
Actualización de la tabla:
Las filas correspondientes a la función objetivo y a los títulos
permanecerán inalteradas en la nueva tabla. El resto de valores
deberán calcularse. En la fila del elemento pivote cada nuevo
elemento se calcula como:
Nuevo Elemento Fila Pivote = Anterior Elemento Fila Pivote / Pivote
Ejercicios maximización:
1. Una compañía fabrica y venden dos modelos de lámpara L1 y L2. Para su
fabricación se necesita un trabajo manual de 20 minutos para el
modelo L1 y de 30 minutos para el L 2; y un trabajo de máquina de 20
minutos para el modelo L1 y de 10 minutos para L2. Se dispone para el trabajo
manual de 100 horas al mes y para la máquina
80 horas al mes. Sabiendo que el beneficio por unidad es de 15 y 10 euros
para L1 y L2, respectivamente, planificar la producción para obtener el
máximo beneficio.
X = Número de lámparas L1
y= Número de lámparas L2
Función Objetivo: Maximizar z= 15 x + 10 y
Lámparas X y Tiempo
Manual 20 min 30 min 100 horas al mes
Trabajo maquina 20 min 10 min 80 horas al mes
Beneficio por unidad 15 10
Restricciones:
20 min = 1/3 h 1/3 x + ½ <= 100
30 min = ½ h 1/3 x + 1/6 <= 80
10 min = 1/6 h x, y => 0
1) 15X1 + 10x2 +0s1+ 0s2
100= 1/3 X1 + ½ X2 + 1 S1 + 0s2
80 = 1/3 X1 + 1/6 X2+ 0s1 + 1 S2
2)
Cj 15 10 0 0
Ci V Bi X1 X2 S1 S2
b
0 S1 100 1/3 1/2 1 0
0 S2 80 1/3 1/6 0 1
Z 0 0 0 0 0
Cj-Z 15 10 0 0
3) 100/(1/3)= 300
80/(1/3)= 240
4)
Cj 15 10 0 0
Ci Vb Bi X1 X2 S1 S2
0 S1 100 1/3 1/2 1 0 100/(1/3)=300
0 S2 80 1/3 1/6 0 1 80/(1/3)= 240
Z 0 0 0 0 0
Cj-Z 15 10 0 0
5)
Cj 15 10 0 0
Ci Vb Bi X1 X2 S1 S2
0 S1 100 1/3 1/2 1 0 100/(1/3)=300
15 X1 240 1 1/2 0 3 80/(1/3)= 240
Z 0 0 0 0 0
Cj-Z 15 10 0 0
6)
Fila 1 100 1/3 1/2 3 0
Fila2(-1/3) -80 -1/3 -1/6 0 -1
Fila 1 20 0 1/3 3 -1
7)
Cj 15 10 0 0
Ci V Bi X1 X2 S1 S2
b
0 S1 20 0 1/3 3 -1
15 X 240 1 1/2 0 3
1
Z 3600 15 15/2 0 45
Cj-Z 0 5/2 0 -45
8) 20/0 =0
240/1=240
9)
Cj 15 10 0 0
Ci V Bi X1 X2 S1 S2
b
10 X 20 0 1/3 3 -1 20/0=0
2
15 X 240 1 1/2 0 3 240/1=240
1
Z 3600 15 15/2 0 45
Cj-Z 0 5/2 0 -45
10)
Cj 15 10 0 0
Ci V Bi X1 X2 S1 S2
b
10 X 60 0 1 9 -3 20/0=0
2
15 X 240 1 1/2 0 3 240/1=240
1
Z 3600 15 15/2 0 45
Cj-Z 0 5/2 0 -45
11)
Fila 1(- -30 0 -1/2 -9/2 3/2
1/2)
Fila2 240 1 1/2 0 3
Fila 2 210 1 0 -9/2 9/2
12)
Cj 15 10 0 0
Ci V Bi X1 X2 S1 S2
b
10 X 60 0 1 9 -3
2
15 X 210 1 0 -9/2 9/2
1
Z 3750 15 10 45/2 135/2
Cj-Z 0 0 -45/2 -135/2
RPTA: X1=210
X2=60
Z=3750
2. Gloria S.A Fabrica 2 tipos de lácteos: Yogur y leche.
Función Objetivo: Maximizar z= 55X1 + 62 X2
Restricción: 4X1+6X2<=156
2X1+8X2<=172
X1, X2>=0
1) 55x1 + 62 x2 + 0 s1 + 0 s2
156 = 4x1 + 6x2 + 1 s1 + 0s2
172= 2x1 + 8x2 + 0s1 + 1s2
2)
Cj 55 62 0 0
Ci V Bi X1 X2 S1 S2
b
0 S1 156 4 6 1 0
0 S2 172 2 8 0 1
Z 0 0 0 0 0
Cj-Z 55 62 0 0
3)
156/6=26
172/8=43/2
4)
Cj 55 62 0 0
Ci Vb Bi X1 X2 S1 S2
0 S1 27 5/2 0 1 -3/4
62 X2(1/8 43/2 1/4 1 0 1/8
)
Z 1333 -79/2 0 0 31/4
Cj-Z 55 62 0 0
5)
Cj 55 62 0 0
Ci Vb Bi X1 X2 S1 S2
55 S1 54/5 1 0 2/5 -3/10
62 X2(1/8 94/5 0 1 -1/10 1/5
)
Z 8798/5 0 0 79/5 -41/10
Cj-Z -55 -62 --79/5 41/10
6)
Cj 55 62 0 0
Ci Vb Bi X1 X2 S1 S2
55 S1 39 1 3/2 1/4 0
0 X2(1/8 94 0 5 -1/2 1
)
Z 2145 0 41/2 55/4 0
Cj-Z -55 -41.5 -55/4 41/10
7) RPTA: Z=2145
X1=39
X2=94
3. Corporación S.A fabrica 2 tipos de monturas: resina y policarbonato.
Maximizar Z= 53x1+58x2
Restricciones: 3x1+6x2<=152
5x1+2x2<=176
X1, x2 >=0
1) Z=53x1+58x2+0s1+0s2
152=3x1+6x2+1s1+0s2
176=5x1+2x2+0s1+1s2
2)
Cj 53 58 0 0
Ci V Bi X1 X2 S1 S2
b
0 S1 152 3 6 1 0
0 S2 176 5 2 0 1
Z 0 0 0 0 0
Cj-Z 53 58 0 0
3) 152/6=76/3=25,3333
176/2=88
4)
Cj 53 58 0 0
Ci V Bi X1 X2 S1 S2
b
0 S1 152 3 6 1 0 152/6=76/3
0 S2 176 5 2 0 1 176/2=88
Z 0 0 0 0 0
Cj-Z 53 58 0 0
5)
Cj 53 58 0 0
Ci Vb Bi X1 X2 S1 S2
58 X2(1/6 76/3 1/2 1 1/6 0 152/6=76/3
)
0 S2 176 5 2 0 1 176/2=88
Z 0 0 0 0 0
Cj-Z 53 58 0 0
6)
Fila1(-2) -152/3 -1 -2 -1/3 0
Fila2 376/3 4 0 -1/3 1
7)
Cj 53 58 0 0
Ci Vb Bi X1 X2 S1 S2
58 X2(1/6 76/3 1/2 1 1/6 0
)
0 S2 376/3 4 0 -1/3 1
Z 4408/3 29 58 29/3 0
Cj-Z 24 0 -29/3 0
8) 76/3 / (1/2)= 76
376/3 /(4)= 94/3= 31,333
9)
Cj 53 58 0 0
Ci V Bi X1 X2 S1 S2
b
58 X 76/3 1/2 1 1/6 0 76/3/(1/2)=76
2
53 X 376/3 4 0 -1/3 1 376/3(4)=94/3
1
Z 4408/3 29 58 29/3 0
Cj-Z 24 0 -29/3 0
10)
Cj 53 58 0 0
Ci Vb Bi X1 X2 S1 S2
58 X2 76/3 1/2 1 1/6 0 76/3/(1/2)=76
53 X1(1/4 94/3 1 0 -1/12 1/4 376/3(4)=94/3
)
Z 4408/3 29 58 29/3 0
Cj-Z 24 0 -29/3 0
11)
Fila 1 29/3 0 1 5/24 -1/8
Fila2(-1/2) -47/3 -1/2 0 1/24 -1/8
12)
Cj 53 58 0 0
Ci V Bi X1 X2 S1 S2
b
58 X 29/3 0 1 5/24 -1/8
2
53 X 94/3 1 0 -1/12 1/4
1
Z 6664/3 53 58 23/3 6
Cj-Z 0 0 -23/3 -6
RPTA: X1= 94/3
X2=29/3
Z=6664/3
Conclusiones:
El desarrollo de ejercicios mediante el solver y PHPsimplex que son
herramientas de solución que nos llevan a dar respuesta a ejercicios de
maximización y minimización.
El análisis de sensibilidad nos permite ver en cuanto podemos incrementar o
reducir una variable sin salirse de los rangos permitidos.
Estos ejercicios planteados son muy importantes ya que permiten analizar las
diferentes opciones de optimización que se pueden dar en una empresa.
Bibliografía:
[Link]
[Link]
[Link]
programacion-lineal/