Você está na página 1de 15

Algoritmo Simplex

Introducción
Esta presentación intenta complementar el esfuerzo realizado en
el salón de clase en la comprensión del algoritmo simplex para la
solución de problemas lineales.

En un primer paso, se presentan conceptos útiles en la pre-


paración del modelo lineal para su manejo tabular. Después se
recuerda el proceso de “estandarización” y el significado de las
variables auxiliares. La comprensión de estos conceptos ayudará
más tarde en la interpretación de los resultados emitidos por
computadora.

Por último, se presenta paso a paso, mediante la solución de un


problema sencillo, el procedimiento simplificado del algoritmo.
 Nota: Se recomienda firmemente la lectura previa del capítulo correspondiente, y
tener a la mano lo necesario para verificar los cálculos presentados.

Leopoldo J. Delgado Garza Universidad de Monterrey


Reglas de equivalencia en Programación Lineal
1. Una restricción del tipo "" puede expresarse como igualdad
mediante la adición de una variable no negativa llamada de
holgura:

3x1 + 5x2 – x3  128  3x1 + 5x2 – x3 + h1 = 128

2. Una restricción del tipo "" puede expresarse como igualdad


mediante la sustracción de una variable no negativa llamada
superflua:

2x1 - 2x2 + 6x3  300  2x1 - 2x2 + 6x3 – s1 = 300

Leopoldo J. Delgado Garza Universidad de Monterrey


Reglas de equivalencia (cont.)

3. Una restricción de igualdad puede expresarse mediante dos


desigualdades no estrictas de sentido contrario:

8x1 + 3x2 + x3  95
8x1 + 3x2 + x3 = 95 
8x1 + 3x2 + x3  95

4. Una función objetivo (F.O.) de maximizar (minimizar) puede


expresarse como de minimizar (maximizar) invirtiendo sus
signos:

Max. Z = 40x1 + 65x2 – x3  Min. (-Z) = - 40x1 - 65 x2 + x3

Min. Z = 35x1 + 28x2  Max. (-Z) = - 35x1 - 28 x2

Leopoldo J. Delgado Garza Universidad de Monterrey


Estandarización

 El algoritmo Simplex requiere que el modelo matemático sea


expresado en su forma estándar, es decir que se asegure que todas las
restricciones se expresen como igualdades, pero también, lo que es
muy importante, que se genere una matriz identidad en el lado derecho
de la matriz de coeficientes, ya que trabaja con una matriz extendida
del tipo [A | I].
Lo anterior se logra mediante la adición de variables de holgura en
las restricciones del tipo “”. En el caso de las restricciones del tipo “”
y de las igualdades, no siempre existirá un coeficiente que haga las
veces del 1 que se necesita para completar la matriz identidad.
Este hecho llevó a Dantzig a "inventar" una nueva variable cuyo
coeficiente "+1" completara la matriz identidad en estos dos últimos
casos. Dicha variable no tendrá ninguna interpretación; se usa como
artificio matemático para lograr la matriz de cálculo que se requiere, y
la llamó "artificial" o "ficticia", y se adiciona a las restricciones del tipo
mencionado.
Leopoldo J. Delgado Garza Universidad de Monterrey
Estandarización (Cont.)

La estandarización de las restricciones del tipo "" y del tipo "="


quedará entonces como:
4x1 + 3x2 – x3  150  4x1 + 3x2 – x3 – s1 + f1 = 150
3x1 + 7x2 + 2x3 = 420  3x1 + 7x2 + 2x3 + f2 = 420

 Todas las variables del modelo deben tener asignada una


contribución a la función objetivo, ya sea positiva, negativa o nula.
Se asignará un cero (0) como contribución tanto a las variables de
holgura (h) como a las superfluas (s), a menos que la situación del
problema indique otro valor a considerar.
En cambio, las variables ficticias ( f ), no teniendo interpretación
alguna, no podrán ser admitidas en ninguna solución factible, por lo
que se decide asignarles un valor extremadamente grande contrario al
objetivo del problema a resolver (negativo, al maximizar, o positivo, al
minimizar), así, el método tratará de excluirlas de la solución (Nor-
malmente se representa con una "M" mayúscula).
Leopoldo J. Delgado Garza Universidad de Monterrey
Algoritmo Simplex

1. Formular el
modelo lineal.

Es un proceso iterativo
7. Iterar para resolver pro-
(Formar la nueva
tabla determinando la
2. Transformarlo a su forma nueva solución).
estándar
gramas agregando
linealeslas va- basado en el cálculo matricial, que
riables auxiliares necesarias
(de holgura, superfluas y 6. Seleccionar la
ficticias o artificiales). variable de salida.
mejora, a cada iteración, la solución anterior, llegan-

do3. así a la mejor solución factible (Óptima).


Formar la tabla 5. Seleccionar la
inicial, determinando 4. ¿Es óptima? variable de entrada a
la primera solución. NO la base.

Leopoldo J. Delgado Garza FIN Universidad de Monterrey


Algoritmo Simplex

Ejemplo:

Sea el modelo (paso 1):

Max. Z = 140x1 + 100x2


5x1 + 7x2  70
8x1 + 3x2  48
xi  0, i

Resuélvalo utilizando el algoritmo Simplex.

Leopoldo J. Delgado Garza Universidad de Monterrey


Algoritmo Simplex

Paso 2: Estandarizar

Max. Z = 140x1 + 100x2


5x1 + 7x2  70
8x1 + 3x2  48
xi  0, i

Max. Z = 140x1 + 100x2 + 0h1 + 0h2


5x1 + 7x2 + h1 = 70
8x1 + 3x2 + h2 = 48
xi , hj  0, i,j

La finalidad de la estandarización es la de obtener


la igualdad en las restricciones...
y una matriz identidad en el lado derecho de la tabla.

 Diremos así que el modelo está en su forma estándar o estandarizado.


Leopoldo J. Delgado Garza Universidad de Monterrey
Algoritmo Simplex

Paso 3: Primera tabla

Max. Z = 140x1 + 100x2 + 0h1 + 0h2


5x1 + 7x2 + h1 = 70
8x1 + 3x2 + h2 = 48
xi , hj  0, i,j
Renglón de
140 100 0
Contribuciones 0
x1Renglón
x2 de h h2
variables
1
x x
Contri-
0 hVector
1 70 5 7 1 0
Base
buciones Matriz extendida
0 hSolución
básicas 2 48 8 3 0 1
Función ObjetivoRenglón índice (z – c )
0 -140 -100 0 j 0j
= 0x70 + 0x48 = 0
Paso 4: No es óptima, ya que el renglón índice contiene elementos
0x5 + 0x8 – 140
0x7
negativos. =0x1
+ 0x3 -–140
+ 0x0
100 = -–100
0x0 0 –0=0
0+ =0x1
Leopoldo J. Delgado Garza Universidad de Monterrey
Algoritmo Simplex

Paso 5: Selección de la variable de entrada

Criterio de optimalidad al maximizar: (zj - cj)  0

140 100 0 0
x1 x2 h1 h2

0 h1 70 5 7 1 0
0 h2 48 8 3 0 1

0 -140 -100 0 0
Entonces, k = 1 (por columna 1).
Entra a la base x1.
Mejor costo de
oportunidad mín (zj-cj) < 0 = mín.(-140, -100) = -140
Leopoldo J. Delgado Garza Universidad de Monterrey
Algoritmo Simplex

Paso 6: Selección de la variable de salida

Criterio: mín(bi/yik), para yik > 0

140 100 0 0
x1 x2 h1 h2
70/5 = 14 0 h1 70 5 7 1 0
48/8 = 6 0 h2 48 8 3 0 1

0 -140 -100 0 0
Entonces r = 2
La variable h2 sale de la
mín(14, 6) = 6 base y el elemento clave
(pivote) es yrk = y21 = 8

Leopoldo J. Delgado Garza Universidad de Monterrey


Algoritmo Simplex

Paso 7: Iterar
140 100 0 0
x1 x2 h1 h2
1 - (5x0)/8 = 1
0 h1 70 5 7 1 0 0 - (5x1)/8 = -5/8
7- (5x3)/8 = 41/8
0 h2 48 8 3 0 1
140 100 0 0
0 -140 -100 0 0
70- (5x48)/8 = 40
x1 x2 h1 h2
Y, rEl=lugar
1 (porderenglón
h2 en 1).
h1 Sale la de
base es .
la base 0 h1 40 0 41/8 1 -5/8
ocupado ahora
por x1 140 x1 6 1 3/8 0 1/8
¿Es óptima?
¿Por qué? 840 0 -95/2 0 35/2

Renglón principal: Entonces, k = 2 (por columna 2).


(renglón clave)/(númro clave)
Efectivamente: Todavía existe un índice
Entra x2 a la base.
negativo. Número clave: y = y = 41/8 rk 12
Vector unitario
Leopoldo J. Delgado Garza Universidad de Monterrey
Algoritmo Simplex

Nueva tabla

140 100 0 0
x1 x2 h1 h2
100 x2 320/41 0 1 8/41 -5/41
140 x1 126/41 1 0 -3/41 7/41

49,640/41 0 0 380/41 480/41


Puesto que ya no existen negativos en el renglón-índice, se ha llegado a la tabla óptima.
¿Está correcta?
Solución óptima
x1 = 126/41  3.073
x2 = 320/41  7.805
Zmáx. = 49,640/41  1,210.732

Leopoldo J. Delgado Garza Universidad de Monterrey


Algoritmo Simplex

Dudas

Leopoldo J. Delgado Garza Universidad de Monterrey


Algoritmo Simplex

Se invita a todos los interesados a profundizar en este


apasionante tema consultando su libro de texto
o en alguna otra obra afín.

Espero que disfruten de esta presentación tanto como yo


y que les sea de utilidad.

Agradezco todos sus comentarios.


Leopoldo J. Delgado Garza
ldelgado@udem.edu.mx
http://www.udem.edu.mx

Monterrey, N.L., México, octubre de 2015.


Leopoldo J. Delgado Garza Universidad de Monterrey

Você também pode gostar