You are on page 1of 12

El método simplex

Introducción
El conocimiento del método grafico facilitara la comprensión del método simplex el
cual es procedimiento general para resolver problemas de programación lineal. Este
es un método sistemático altamente eficiente que permite resolver rápidamente,
mediante el uso de programas de computadoras, problemas muy grandes, con gran
número de variables, de restricciones o de ambos.
Aunque los problemas de PL serán resueltos usando programas de computadora,
es indispensable conocer la forma en que funciona el método simplex para poder
interpretar correctamente la solución óptima y para entender el análisis de
cesibilidad parte muy importante de la PL.
- Problemas de PL en forma estándar.
Se dice que un problema está en forma estándar cuando:
A) Todas las variables son no negativas, es decir, toman valor positivo o cero.
B) Todas las restricciones están presentadas como igualdades.
C) Los valores de la derecha de cada ecuación son constantes positivas.
D) L función objetivo es de maximización o minimización.
El método simple requiere que el problema de PL este expresado en forma
estándar. Sin embargo, la mayoría de los modelos no están en forma estándar ya
que presentan restricciones expresadas como desigualdades en vez de ecuaciones.
Otras veces se tienen valores negativos a la derecha de la restricción o se tienen
variables que toman valores negativos o que son irrestrictas.
Para convertir una restricción del tipo ≥ 𝑜 𝑑𝑒 ≤ a una ecuación, se agregan ciertas
variables conocidas como de holgura o de superávit, las cuales, igual que las
variables estructurales (Xj), deben ser positivas o cero.
Ejemplo.
Consideremos el siguiente problema en el cual X1 y X2 son las unidades por fabricar
de los productos A y B, respectivamente.
𝑀𝑖𝑛: 𝑍 = 400𝑋1 + 300𝑋2
(𝑅1) 3𝑋1 + 2𝑋2 ≤ 330 𝑘𝑖𝑙𝑜𝑠 𝑑𝑒 𝑚𝑎𝑡𝑒𝑟𝑖𝑎 𝑝𝑟𝑖𝑚𝑎.
(𝑅2) 𝑋1 + 3𝑋2 ≥ 80 ℎ𝑜𝑟𝑎𝑠 𝑚𝑎𝑞𝑢𝑖𝑛𝑎 1.
(𝑅3) 𝑋1 + 3𝑋2 ≤ 160 ℎ𝑜𝑟𝑎𝑠 𝑚𝑎𝑞𝑢𝑖𝑛𝑎 1.
(𝑅4) 2𝑋1 + 4𝑋2 ≤ 240 ℎ𝑜𝑟𝑎𝑠 𝑚𝑎𝑞𝑢𝑖𝑛𝑎 2.
(𝑅5) 𝑋1 + 𝑋2 = 100 𝑢𝑛𝑖𝑑𝑎𝑑𝑒𝑠.
𝑋𝑗 ≥ 0
Para que este problema este en forma estándar todas las restricciones deben ser
ecuaciones, por lo que para convertir las inecuaciones en igualdades se agregaran
ciertas variables no negativas conocidas como variables de holgura o de superávit.
(𝑅1) 3𝑋1 + 2𝑋2 ≤ 330 𝑘𝑖𝑙𝑜𝑠 𝑑𝑒 𝑚𝑎𝑡𝑒𝑟𝑖𝑎 𝑝𝑟𝑖𝑚𝑎.

El lado izquierdo de la restricción 1(R1) es más pequeño que el lado derecho por lo
que para hacer ambos lados iguales es necesario agregarle al lado izquierdo una
variable que tome el valor de la diferencia. Esta variable de holgura se va a encontrar
solamente en la R1 y representara los kilos de materia prima que no se usen.
Naturalmente si se usa toda la materia prima S1 valdrá cero. S1 valdrá cero. La R1
con la variable de holgura ya incorporada queda así: (𝑅1) 3𝑋1 + 2𝑋2 + S1 = 330.
(𝑅2) 𝑋1 + 3𝑋2 ≥ 80 ℎ𝑜𝑟𝑎𝑠 𝑚𝑎𝑞𝑢𝑖𝑛𝑎 1.
En la R2 el lado izquierdo es más grande que el lado derecho por lo que para hacer
la igualdad se debe restar una variable de superávit que tomara un valor igual a la
diferencia entre ambos lados. Esa variable S2 pertenece únicamente a la R2 y
representa las horas de las maquinas tipo 1 que se usen por encima del mínimo
permitido de 80. Si en la solución óptima resulta que se van a usar exactamente las
80 horas, entonces S2 valdrá 0. La restricción queda así: 𝑋1 + 3𝑋2 − 𝑆2 = 80.
(𝑅3) 𝑋1 + 3𝑋2 + 𝑆3 = 160. S3 es variable de holgura y fue sumada al lado
izquierdo para hacer la igualdad.
(𝑅4) 2𝑋1 + 4𝑋2 + 𝑠4 = 240. S4 es variable de holgura y esta sumada para hacer la
igualdad.
(𝑅5) 𝑋1 + 𝑋2 = 100. Al ser la restricción originalmente una igualdad no se necesita
variable de holgura o de superávit.
En la función objetivo las variables de holgura tienen coeficiente 0 lo cual se explica
por el hecho de que no representan un producto que va a fabricarse para la venta
por lo que no producen ningún costo, ninguna utilidad. Simplemente, si por ejemplo
la variable de holgura representa material que sobra, este material se usara en otra
parte del proceso.
El modelo del ejemplo presentado en forma estándar
𝑀𝑖𝑛: 𝑍 = 400𝑋1 + 300𝑋2 + 0𝑆1 + 0𝑆2 + 0𝑆3 + 0𝑆4
S.a
(𝑅1) 3𝑋1 + 2𝑋2 + 𝑆1 = 330 𝑘𝑖𝑙𝑜𝑠 𝑑𝑒 𝑚𝑎𝑡𝑒𝑟𝑖𝑎 𝑝𝑟𝑖𝑚𝑎.
(𝑅2) 𝑋1 + 3𝑋2 − 𝑆2 = 80 ℎ𝑜𝑟𝑎𝑠 𝑚𝑎𝑞𝑢𝑖𝑛𝑎 1.
(𝑅3) 𝑋1 + 3𝑋2 + 𝑆3 = 160 ℎ𝑜𝑟𝑎𝑠 𝑚𝑎𝑞𝑢𝑖𝑛𝑎 1.
(𝑅4) 2𝑋1 + 4𝑋2 + 𝑆4 = 240 ℎ𝑜𝑟𝑎𝑠 𝑚𝑎𝑞𝑢𝑖𝑛𝑎 2.
(𝑅5) 𝑋1 + 𝑋2 = 100 𝑢𝑛𝑖𝑑𝑎𝑑𝑒𝑠.
𝑋𝑗 ≥ 0, 𝑆𝑖 ≥ 0
Se tienen n = 6 variables y m = 5 restricciones.
Aunque en este texto se conocerán ambos tipos de variables como de holgura, se
explicara nuevamente, al evaluar cada restricción, porque se les llama de holgura y
de superávit.
Al resolver este problema se encontró que la solución óptima es X1 = 80 unidades
de A y X2 = 20 unidades de B. se evalúan las restricciones con los valores óptimos.
(𝑅1) 3𝑋1 + 2𝑋2 ≤ 330 𝑘𝑖𝑙𝑜𝑠 𝑑𝑒 𝑚𝑎𝑡𝑒𝑟𝑖𝑎 𝑝𝑟𝑖𝑚𝑎.
Incluyendo la variable necesaria para obtener una igualdad:
(𝑅1) 3𝑋1 + 2𝑋2 + 𝑆1 = 330
Evaluando (R1) con los valores óptimos de las variables: 3(80) + 2(20) = 280. Quiere
decir que S1 toma el valor de 330-280 = 50
(𝑅1) 3(80) + 2(20) + 50 = 330
S1 = 50 kilos de materia prima que no se usaron, que sobraron, 50 kilos que se tiene
de más, de holgura. De ahí el nombre de variable de holgura.
Se analizara ahora la restricción 2
(𝑅2) 𝑋1 + 3𝑋2 ≥ 80 ℎ𝑜𝑟𝑎𝑠 𝑚𝑎𝑞𝑢𝑖𝑛𝑎 1
(𝑅2) 𝑋1 + 3𝑋2 − 𝑆2 = 80
80 + 3(20) = 140 − 𝑆2 Tomo el valor de 140-80 = 60
S2 = 60 horas maquina 1 que se usaron por encima de las 80 mínimas permitidas.
De ahí el nombre de superávit.
(𝑅3) 𝑋1 + 3𝑋280 ≤ 160 ℎ𝑜𝑟𝑎𝑠 𝑚𝑎𝑞𝑢𝑖𝑛𝑎 1
(𝑅3) 𝑋1 + 3𝑋280 + 𝑆3 = 160
1(80) + 3(20) = 140. S3 tomo el valor de 160 – 140 = 20
S3 = 20 horas maquina 1 por debajo del máximo de 160 con que se cuenta. Variable
de holgura porque sobran esas 20 horas.
(𝑅4) 2𝑋1 + 4𝑋2 ≤ 240 ℎ𝑜𝑟𝑎𝑠 𝑚𝑎𝑞𝑢𝑖𝑛𝑎 2
(𝑅4)2𝑋1 + 4𝑋2 + 𝑆4 = 240. Aquí la variable S4 toma valor igual a cero porque no
sobran horas en las maquina tipo 2.
S4 es una variable de holgura porque representa las horas maquina 2 que sobran.
En el ejemplo anterior el modelo original ha sido modificado para obtener la forma
estándar. Se tienen ahora seis variables y cinco restricciones. En forma general se
dice que un problema de PL en forma estándar tiene n variables y m restricciones,
siendo 𝑛 ≥ 𝑚.
Principios del método simplex
En el método grafico se explicó que las mejores soluciones factibles están en los
vértices del polígono de soluciones factibles y que, por lo tanto, la solución óptima
está en uno de esos vértices. El método simplex es un algoritmo (procedimiento
bien definido e iterativo) muy eficiente que busca la solución óptima avanzando
siempre de un vértice que tiene una solución básica factible cualquiera hacia otro
en que se presenta una solución mejorada; esto, es con una utilidad mayor si se
está maximizando, o con un costo menor si se está minimizando, hasta llegar al
punto óptimo.
Para empezar el proceso iterativo de simplex establece que el problema se plantee
en forma estándar y que cada ecuación tenga su variable básica para obtener la
solución básica factible inicial. Muchas veces, al introducir las variables de holgura,
para poner el problema en forma estándar, estas sirven de una vez como variables
básicas.
Examínese ahora el ejemplo presentado el cual fue convertido anteriormente a la
forma estándar
Forma estándar
𝑀𝑖𝑛: 𝑍 = 400𝑋1 + 300𝑋2 + 0𝑆1 + 0𝑆2 + 0𝑆3 + 0𝑆4
S.a
(𝑅1) 3𝑋1 + 2𝑋2 + 𝑆1 = 330
(𝑅2) 𝑋1 + 3𝑋2 − 𝑆2 = 80
(𝑅3) 𝑋1 + 3𝑋2 + 𝑆3 = 160
(𝑅4) 2𝑋1 + 4𝑋2 + 𝑆4 = 240
(𝑅5) 𝑋1 + 𝑋2 = 100
𝑋𝑗 ≥ 0, 𝑆𝑖 ≥ 0
Se observa que aun cuando las variables de holgura S1, S2, S3 y S4 sirven como
básicas para las R1, R3 y R4, respectivamente, la variable de holgura S2, aun
cuando solo está en la R2, no cumple con el requisito de tener coeficiente unitario
positivo. Su coeficiente es -1, por lo tanto no es variable básica. Además la R5, por
ser originalmente una igualdad, no tiene variable de holgura. Por otra parte ni X1, ni
X2 son variables básicas pues están en más de una ecuación. Faltan entonces las
variables básicas de las ecuaciones R2 y R5, por lo que no se tiene una solución b
asica todavía.
En ninguna de las dos restricciones a las que les falta la variable básica se puede
agregar ninguna variable que tenga significado físico puesto que ya se tienen
igualdades, las que se verían afectadas al sumar algo en cualquiera de los lados de
las ecuaciones y, sin embargo, se necesitan las dos variables básicas. Para resolver
este conflicto se introducirá un nuevo tipo de variables conocidas como artificiales.
Como su nombre lo sugiere, estas variables son artificios matemáticos a los que se
recurre para poder tener la solución básica factible inicial del proceso iterativo del
simplex. Al agregar la variable artificial, la R2 queda así:
𝑋1 + 3𝑋2 − 𝑆2 + 𝐴2
Recuérdese que la finalidad de la variable artificial es servir de básica por lo que su
coeficiente en la restricción en +1. La R5 queda 𝑋1 + 𝑋2 + 𝐴5 = 100. Igual que en
el caso de las variables de holgura, los subíndices 2 y 5 de las artificiales solo
indican que se pusieron en las restricciones 2 y 5. En algunos libros de texto la
primera artificial que aparece tiene subíndice 1, sin importar en que restricción este.
Debido a que las variables artificiales no tienen ningún significado y se incluyen
solamente para completar las variables básicas de la solución inicial, se debe
prescindir de ellas a la mayor brevedad posible. Hay varios métodos para
deshacerse de la variable artificial.
Método simplex en forma tabular
Los pasos generales del método simplex son:
1. Empezar con una solución básica factible como la que se obtuvo en el
ejemplo anterior.
2. Mejorar, si es posible, la solución inicial encontrando otra solución básica
factible adyacente, con un mejor valor de la función objetivo. Esta nueva
solución diferirá de la anterior en exactamente una variable básica.
3. Continuar buscando soluciones básicas factibles mejoradas hasta que el
valor de la función objetivo no pueda hacerse más grande si se está
maximizando o más pequeño si se está minimizando. Esa solución particular
es la óptima y se ha llegado al final del proceso.
Una forma eficiente de resolver los problemas mediante el método simplex es la de
poner toda la información en una tabla, como la que se muestra a continuación.
Ejemplo
𝑀𝑎𝑥. 𝑍 = 10𝑋1 + 12𝑋2
S.a:
(𝑅1) 2𝑋1 + 4𝑋2 ≤ 20
(𝑅2) 6𝑋1 + 4𝑋2 ≤ 242
(𝑅3) 4𝑋1 + 5𝑋2 ≤ 30
𝑋𝑗 ≥ 0
Para encontrar la solución óptima utilizando el método simplex, el modelo debe estar
en forma estándar.
Forma estándar:
𝑀𝑎𝑥. 𝑍 = 10𝑋1 + 12𝑋2 + 0𝑆1 + 0𝑆2 + 0𝑆3

S.a:
(𝑅1) 2𝑋1 + 4𝑋2 + 𝑆1 = 20
(𝑅2) 6𝑋1 + 4𝑋2 + 𝑆2 = 24
(𝑅3) 4𝑋1 + 5𝑋2 + 𝑆3 = 30
𝑋𝑗 ≥ 0, 𝑆𝑖 ≥ 0

Elementos de la tabla
 En la primera fila se ponen los coeficientes de cada variable en la función
objetivo (Cj).
 En la segunda fila se ponen todas las variables.
 En la primera fila del cuerpo principal de la tabla se ponen los coeficientes
tecnológicos de las variables en la primera restricción.
(𝑅1) 2𝑋1 + 4𝑋2 + 𝑆1 + 0𝑆2 + 0𝑆3 = 20
Similarmente, en la segunda y tercera fila van los coeficientes tecnológicos de las
variables en las R2 y R3.
En la segunda columna se tiene la base, la cual está formada por las variables
básicas de las respectivas ecuaciones. S1 va de primera porque es la variable
básica de la primera ecuación y así sucesivamente.
En la primera columna (𝐶𝐵 ) van los coeficientes de las variables básicas de cada
solución los cuales se toman de la función objetivo. Por ejemplo, en la función
objetivo se tiene 0S1; por lo tanto, en la columna de (𝐶𝐵 ) va 0 en la primera fila. De
la misma manera se colocan los otros valores.
En la última columna se pone el valor de (b) de recursos o vector de las constantes
de la derecha. (Se introduce aquí el término “vector” para ir familiarizando al
estudiante con la nomenclatura del algebra lineal). No se debe olvidar que los
elementos de este vector deben ser todos positivos. Si se tuviera una restricción
como esta: 6𝑋1 − 4𝑋2 ≤ −100, se debe multiplicar primero la restricción por -1 para
eliminar el negativo de la derecha. La restricción quedaría así: −6𝑋1 + 4𝑋2 ≥ 100
(recuerde que una desigualdad cambia de dirección al multiplicarse la inecuación
por un valor negativo).
En la última fila van los coeficientes de utilidad relativa (Cj), cuyo significado se
explica en la sección siguiente.
La solución de la tabla se lee así: S1 = 20, S2 = 24, S3 = 30. Los tres valores se
tomaron del valor que corresponde en (b) a cada variable. S1 está en la base en la
primera fila por lo que toma el valor de (b) de la primera fila, S2 es la variable básica
de la segunda fila y toma el valor de (b) de la segunda fila y así sucesivamente.
X1 = 0 y X2 = 0 por ser variables no básicas. Nótese que no aparecen en la columna
de la base.
El valor de la función objetivo Z se obtiene multiplicando el vector de coeficientes de
las variables básicas 𝐶𝐵 por el vector (b).
20
𝑍 = 𝐶𝐵 ∙ 𝑏 = (0,0,0) (24) = (0 ∙ 20 + 0 ∙ 24 + 0 ∙ 30) = 0
30
En la tabla lo que se hace es multiplicar los valores de la primera columna por los
de la última y sumar los resultados.
¿Cómo se sabe que la solución de la tabla 1 es o no la óptima? Esta pregunta se
responde con los coeficientes de utilidad relativa. En un problema de maximización
una variable no básica con un coeficiente de utilidad relativa positivo sería un
indicador de que si esa variable entra a la base, esto es, se convierte en básica, el
valor de Z aumentara; por lo tanto, la solución no es óptima porque puede
encontrarse otra solución mejor en la cual el valor de Z será más alto. Si el problema
es de minimización, un coeficiente de utilidad relativa negativo indicaría que la
variable no básica al cual pertenece puede entrar a la solución, con lo que el valor
de Z bajaría, así es que todavía no se tiene la solución óptima.
En la solución de la tabla 1 los dos coeficientes de utilidad relativa de las dos
variables no básicas son positivos y al entrar a la base cualquiera de ellos Z subiría.
Ya que el problema es de maximización, esto indica que la solución no es óptima.
Escogencia de la variable que va a entrar a la base
Una solución básica factible adyacente difiere de la anterior en exactamente una
variable básica, así es que para avanzar hacia una mejor solución, una variable
básica debe dejar la base y convertirse en no básica y viceversa, una no básica
debe convertirse en básica y entrar en la base.
El coeficiente de utilidad relativa (Cj) se calcula para todas las variables no básicas
con la finalidad de escoger a la que se convertirá en variable básica. (Cj) es un costo
de oportunidad e indica cuanto mejora la función objetivo al pasar la variable de
valer 0 a valer 1. Se dice que es un indicador del cambio que se producirá en Z al
darse un cambio unitario en las variables.
Se usa el coeficiente de utilidad relativa (Cj) en vez del coeficiente de utilidad de la
función objetivo (Cj) por que el primero toma en cuenta también el costo de los
recursos usados por la actividad.
𝐶𝑗 = 𝐶𝑗 − 𝐶𝐵 ∙ 𝑝𝑗
Donde:
Pj es cada uno de los vectores de las columnas j
En la solución inicial que se presenta en la tabla 1, X1 = 0 y X2 = 0 son las dos
variables no basicas

2 4
𝐶𝐵 = (0,0,0)𝐶1 = 10 𝑝1 = (6) 𝐶2 = 12 𝑝2 = (4)
4 5
2
𝐶1 = 10 − (0,0,0) (6) = 10 − (0 ∙ 2 + 0 ∙ 6 + 0 ∙ 4) = 10 − 0 = 10
4
4
𝐶2 = 12 − (0,0,0) (4) = 12 − (0 ∙ 4 + 0 ∙ 4 + 0 ∙ 5) = 12 − 0 = 12
5
C1 = 10 denota que Z aumentara 10 colones si se produce una unidad del artículo
1.
C2 = 12 indica que Z aumentara 12 colones si se produce una unidad del artículo 2.
Como el problema es de maximización, debe escogerse a X2 para convertirse en
variable básica ya que su costo de oportunidad es el mayor de los dos y Z aumentara
más si entra X2 a la base que si entra X1.
Si se calcularan los coeficientes de utilidad relativa de las variables básicas estos
darían cero.
Escogencia de la variable que va a salir de la base
En la tabla se señala la columna de la variable X2 que es la que va a entrar a la
base. a esta columna se le llama columna pivote.

Si X2 es la variable que va a convertirse en basica lo deseable es que tome el mayor


valor posible, el cual, sin embargo, tiene un limite dado por los valores de la derecha
de las restricciones. Para evaluar, en cada restriccion se dara valor de 0, como debe
ser, a las variables no basicas, con excepcion de X2 que es la variable no basica
que va aconvertirse en basica. Ademas, en cada restriccion se hara que la variable
basica correspondiente tome valor 0(valor que tomaria si se convirtiera en no
basica).
(𝑅1) 2𝑋1 + 4𝑋2 + 𝑆1 = 20
2(0) + 4𝑋2 + 𝑆1 = 20
Como la variable basica S1 no puede ser negativa, el minimo valor que puede tomar
es ceroi.
0 + 4𝑋2 + 0 = 20
20
Despejando 𝑋2 = = 5 Maximo valor que puede tomar X2 en esta ecuacion.
4

(𝑅2) 6𝑋1 + 4𝑋2 + 𝑆2 = 24


Haciendo la variable basica S2 = 0 6(0) + 4𝑋2 + 0 = 24
24
Despejando 𝑋2 = = 6 Maximo valor que puede tomar X2 en esta ecuacion
4
(𝑅3) 4𝑋1 + 5𝑋2 + 𝑆3 = 30
Haciendo a la variable basica S3 = 0 4(0) + 5𝑋2 + 0 = 30
30
Despejando 𝑋2 = = 6 Maximo valor que puede tomar X2 en esta ecuacion.
5

Para evitar que alguna de las variables basicas de la solucion actual se haga
negativa, se escoge el valor mas pequeño de los tres posibles valores de X2 por
que solo este satisface a las tres ecuaciones.
Escoger el min (5,6,6). De aquí se tiene X = 5.
Al escoger otro valor diferente del minimo, alguna de las variables basicas actuales
tomaria un valor negativo. Por ejemplo con X2 = 6 las restricciones quedan:
(𝑅1) 2𝑋1 + 4𝑋2 + 𝑆1 = 20. 𝐷𝑒𝑠𝑝𝑒𝑗𝑎𝑛𝑑𝑜 𝑆1 = 20 − 4𝑋2 = 20 − 4(6) = −4, valor
negativo que ninguna varible debe tomar.
(𝑅2) 6𝑋1 + 4𝑋2 + 𝑆2 = 24. 𝐷𝑒𝑠𝑝𝑒𝑗𝑎𝑛𝑑𝑜 𝑆2 = 24 − 4𝑋2 = 24 − 4(6) = 0. no hay
problema.
(𝑅3) 4𝑋1 + 5𝑋2 + 𝑆3 = 30. 𝐷𝑒𝑠𝑝𝑒𝑗𝑎𝑛𝑑𝑜 𝑆3 = 30 − 5𝑋2 = 30 − 5(6) = 0. No hay
problema.
Como se puede observar con X2 = 6 la solucion se vuelve infactible por que S1
toma un valor negativo con lo que se evidencia que el valor que se debe escoger es
el minimo. Con el valor minimo de X2(=5) se cumple con la condicion fundamental
de que todas las variables basicas actiales son no negativas.
𝑆1 = 20 − 4(5) = 0 𝑆2 = 24 − 4(5) = 4 𝑆3 = 30 − 5(5) = 5
Se observa que la variable basica que tomo el valor cero al evaluar con el min.
𝑋2 = 5 𝑒𝑠 𝑙𝑎 𝑆1, lo cual indica que es la que saldra de la base convirtiendose en
variable no basica.
Este mismo procedimiento se aplica en la tabla para escoger la variable que sale y
se le conoce como regla de la razon minima. En la tabla las razones se obtienen
simplemente dividiendo el valor que corresponde a la variable en la columna del
vector b entre el valor de la misma fila en la columna pivote y no es necesario realizar
las operaciones presentadas anteriormente.