El Método Simplex es un método analítico de solución
de problemas de programación lineal capaz de resolver modelos más complejos que
los resueltos mediante el método gráfico sin restricción en el número de
variables.
El Método Simplex es un método iterativo que permite
ir mejorando la solución en cada paso. La razón matemática de esta mejora
radica en que el método consiste en caminar del vértice de un poliedro a un
vértice vecino de manera que aumente o disminuya (según el contexto de la
función objetivo, sea maximizar o minimizar), dado que el número de vértices
que presenta un poliedro solución es finito siempre se hallará solución.
Resolver
mediante el método simplex el siguiente problema:
Maximizar
|
Z = f(x,y) = 3x + 2y
|
sujeto a:
|
2x + y ≤ 18
|
2x + 3y ≤ 42
|
|
3x + y ≤ 24
|
|
x ≥ 0 , y ≥ 0
|
Se
consideran las siguientes fases:
- Realizar un cambio de
variables y normalizar el signo de los términos independientes.
Se
realiza un cambio en la nomenclatura de las variables. Estableciéndose la correspondencia
siguiente:
§ x
pasa a ser X1
§ y
pasa a ser X2
Como los términos independientes de todas las
restricciones son positivos no es necesario hacer nada. En caso contrario
habría que multiplicar por "-1" en ambos lados de la inecuación
(teniendo en cuenta que esta operación también afecta al tipo de restricción).
Normalizar
las restricciones.
Se
convierten las inecuaciones en ecuaciones agregando variables de holgura,
exceso y artificiales según la tabla siguiente:
Tipo de desigualdad
|
Tipo de variable que aparece
|
≥
|
- exceso + artificial
|
=
|
+ artificial
|
≤
|
+ holgura
|
En este caso se introduce una variable de holgura
(X3,
X4
y X5)
en cada una de las restricciones del tipo ≤, para convertirlas en igualdades,
resultando el sistema de ecuaciones lineales:
2·X1 + X2 + X3 = 18
|
2·X1 + 3·X2 + X4 = 42
|
3·X1 + X2 + X5 = 24
|
Igualar
la función objetivo a cero.
Z
- 3·X1
- X2
- 0·X3
- 0·X4
- 0·X5
= 0
Escribir
la tabla inicial del método Simplex.
La
tabla inicial del método Simplex está compuesta por todos los coeficientes de
las variables de decisión del problema original y las de holgura, exceso y
artificiales agregadas en el paso 2 (en las columnas, siendo P0 el término
independiente y el resto de variables Pi
coinciden con Xi),
y las restricciones (en las filas). La columna Cb contiene los
coeficientes de las variables que se encuentran en la base.
La primera fila está formada por los coeficientes
de la función objetivo, mientras que la última fila contiene el valor la
función objetivo y los costes reducidos Zj - Cj.
La última fila se calcula como sigue: Zj = Σ(Cbi·Pj) para i = 1..m,
donde si j = 0, P0
= bi
y C0
= 0, y en caso contrario Pj
= aij.
Aunque al tratarse de la primera tabla del método Simplex y ser todos los Cb nulos se puede
simplificar el cálculo, y por esta vez disponer Zj = -Cj.
Tabla I . Iteración nº 1
|
|||||||
3
|
2
|
0
|
0
|
0
|
|||
Base
|
Cb
|
P0
|
P1
|
P2
|
P3
|
P4
|
P5
|
P3
|
0
|
18
|
2
|
1
|
1
|
0
|
0
|
P4
|
0
|
42
|
2
|
3
|
0
|
1
|
0
|
P5
|
0
|
24
|
3
|
1
|
0
|
0
|
1
|
Z
|
0
|
-3
|
-2
|
0
|
0
|
0
|
Condición
de parada.
Si
el objetivo es la maximización, cuando en la última fila (fila indicadora) no
existe ningún valor negativo entre los costes reducidos (columnas P1 en adelante) se
alcanza la condición de parada.
En tal caso se llega al final del algoritmo ya que
no existe posibilidad de mejora. El valor de Z (columna P0) es la solución
óptima del problema.
Otro caso posible es que en la columna de la
variable entrante a la base todos los valores son negativos o nulos. Esto
indica que el problema no se encuentra acotado y su solución siempre resultará
mejorable. Ante esta situación no es necesario continuar iterando
indefinidamente y también se puede dar por finalizado el algoritmo.
De no ser así, se ejecutan los siguientes pasos de
forma iterativa.
Elección
de la variable entrante y saliente de la base.
Se
determina en primer lugar la variable que entra en la base. Para ello se escoge
la columna cuyo valor en la fila Z sea el menor de entre todos los negativos.
En este caso sería la variable X1
(P1)
de coeficiente -3.
Si existiesen dos o más coeficientes iguales que
cumplan la condición anterior (caso de empate), entonces se optará por aquella
variable que sea básica.
La columna de la variable que entra en la base se
llama columna pivote (en color verde).
Una vez obtenida la variable que entra en la base,
se procede a determina cual será la variable que sale de la misma. La decisión
se toma en base a un sencillo cálculo: dividir cada término independiente
(columna P0)
entre el elemento correspondiente de la columna pivote, siempre que ambos
elementos sean estrictamente positivos (mayores que cero). Se escoge la fila
cuyo resultado haya resultado mínimo.
Si hubiera algún elemento menor o igual a cero no
se realiza dicho cociente. En caso de que todos los elementos de la columna pivote
fueran de ésta condición se habría cumplido la condición de parada y el
problema tendría una solución no acotada (ver teoría del método Simplex).
En este ejemplo: 18/2 [=9] , 42/2 [=21] y 24/3 [=8]
El término de la columna pivote que en la división
anterior dio lugar al menor cociente positivo indica la fila de la variable de
holgura que sale de la base. En este caso resulta ser X5 (P5), de coeficiente
3. Esta fila se llama fila pivote (en color verde).
Si al calcular los cocientes, dos o más resultados
cumplen la condición para elegir el elemento saliente de la base (caso de
empate), se escoge aquella que no sea variable básica (siempre que sea es
posible).
La intersección de la fila pivote y columna
pivote marca el elemento pivote, en este caso el 3.
Actualizar
la tabla.
Los
nuevos coeficientes de la tabla se calculan de la siguiente manera:
§ En
la fila del elemento pivote cada nuevo elemento se calcula como:
Nuevo
Elemento Fila Pivote = Anterior Elemento Fila Pivote / Pivote
§ En
el resto de las filas cada elemento se calcula:
Nuevo
Elemento Fila = Anterior Elemento Fila - (Anterior Elemento Fila en Columna
Pivote * Nuevo Elemento Fila Pivote)
Con esto se normaliza el elemento pivote y su valor
pasa a ser 1, mientras que el resto de elementos de la columna pivote se anulan
(análogo al método de Gauss-Jordan).
Se muestran a continuación los cálculos para la
fila P4:
Anterior fila P4
|
42
|
2
|
3
|
0
|
1
|
0
|
-
|
-
|
-
|
-
|
-
|
-
|
|
Anterior Elemento Fila en Columna Pivote
|
2
|
2
|
2
|
2
|
2
|
2
|
x
|
x
|
x
|
x
|
x
|
x
|
|
Nueva fila pivote
|
8
|
1
|
1/3
|
0
|
0
|
1/3
|
=
|
=
|
=
|
=
|
=
|
=
|
|
Nueva fila P4
|
26
|
0
|
7/3
|
0
|
1
|
-2/3
|
La tabla correspondiente a esta segunda iteración
es:
Tabla II . Iteración nº 2
|
|||||||
3
|
2
|
0
|
0
|
0
|
|||
Base
|
Cb
|
P0
|
P1
|
P2
|
P3
|
P4
|
P5
|
P3
|
0
|
2
|
0
|
1/3
|
1
|
0
|
-2/3
|
P4
|
0
|
26
|
0
|
7/3
|
0
|
1
|
-2/3
|
P1
|
3
|
8
|
1
|
1/3
|
0
|
0
|
1/3
|
Z
|
24
|
0
|
-1
|
0
|
0
|
1
|
Al comprobar la
condición de parada se observa que no se cumple ya que entre los elementos de
la última fila hay uno negativo, -1. Se continúa iterando nuevamente los pasos
6 y 7.
§ 6.1.
La variable que entra en la base es X2
(P2),
por ser la variable que corresponde a la columna donde se encuentra el
coeficiente -1.
§ 6.2.
Para calcular la variable que sale, se dividen los términos de la columna P0 entre los
términos correspondientes de la nueva columna pivote: 2 / 1/3 [=6] , 26 / 7/3
[=78/7] y 8 / 1/3 [=24]. Como el menor cociente positivo es 6, la variable que
sale de la base es X3
(P3).
§ 6.3.
El elemento pivote es 1/3.
§ 7.
Actualizando nuevamente los valores de la tabla se obtiene:
Tabla III . Iteración nº 3
|
|||||||
3
|
2
|
0
|
0
|
0
|
|||
Base
|
Cb
|
P0
|
P1
|
P2
|
P3
|
P4
|
P5
|
P2
|
2
|
6
|
0
|
1
|
3
|
0
|
-2
|
P4
|
0
|
12
|
0
|
0
|
-7
|
1
|
4
|
P1
|
3
|
6
|
1
|
0
|
-1
|
0
|
1
|
Z
|
30
|
0
|
0
|
3
|
0
|
-1
|
Una nueva
comprobación de la condición de parada revela que entre los elementos de la
fila indicadora vuelve a haber uno negativo, -1. Significa que aun no se ha
llegado a la solución óptima y hay que seguir iterando (pasos 6 y 7):
§ 6.1.
La variable que entra en la base es X5
(P5),
por ser la variable que corresponde al coeficiente -1.
§ 6.2.
Se escoge la variable que sale calculando el cociente entre los términos de la
columna de términos independientes y los términos correspondientes de la nueva
columna pivote: 6/(-2) [=-3] , 12/4 [=3], y 6/1 [=6]. En esta ocación es X4 (P4).
§ 6.3.
El elemento pivote es 4.
§ 7.
Después de actualizar todas las filas, se obtiene la tabla siguiente:
Tabla IV . Iteración nº 4
|
|||||||
3
|
2
|
0
|
0
|
0
|
|||
Base
|
Cb
|
P0
|
P1
|
P2
|
P3
|
P4
|
P5
|
P2
|
2
|
12
|
0
|
1
|
-1/2
|
1/2
|
0
|
P5
|
0
|
3
|
0
|
0
|
-7/4
|
1/4
|
1
|
P1
|
3
|
3
|
1
|
0
|
3/4
|
-1/4
|
0
|
Z
|
33
|
0
|
0
|
5/4
|
1/4
|
0
|
Fin
del algoritmo.
Se
observa que en la última fila todos los coeficientes son positivos
cumpliéndose, por tanto la condición de parada.
La solución óptima viene dada por el valor de Z en
la columna de los términos independientes (P0), en este
ejemplo: 33. En la misma columna se puede ver el punto donde se alcanza,
observando las filas correspondientes a las variables de decisión que han
entrado en la base: X1
= 3 y X2
= 12.
Deshaciendo el cambio de variables se obtiene x = 3
e y = 12.
No hay comentarios:
Publicar un comentario