Está en la página 1de 20

PROGRAMACIÓN LINEAL MÉTODO

SIMPLEX

INVESTIGACIÓN DE OPERACIONES

PROGRAMACIÓN LINEAL: SOLUCIÓN


DE PROBLEMAS CON EL “MÉTODO
SIMPLEX”

JOSÉ E. VÁZQUEZ ARÉVALO


PROCESOS TECNOLOGICOS E INDUSTRIALES
ITESO

JEVA / PTI
1
PROGRAMACIÓN LINEAL MÉTODO
SIMPLEX

PROGRAMACIÓN LINEAL: SOLUCIÓN DE PROBLEMAS CON EL MÉTODO SIMPLEX

El Método Simplex soluciona problemas de Programación Lineal de cualquier tamaño, desde dos hasta "n"
variables de decisión. Los problemas pueden ser maximización o de minimización dependiendo del tipo de
Función Objetivo que tengan y en cuanto al tipo de solución óptima que den, pueden ser de solución única o de
solución múltiple o alterna.

La computadora es un medio tecnológico que da gran apoyo en la solución de problemas en Programación


Lineal, utilizando su gran velocidad de procesamiento de datos. La computadora puede utilizar cualquier tipo
de software diseñado para este propósito, pero todos ellos emplearán el algoritmo matemático del Método
Simplex. Algunos paquetes de software que se pueden utilizar para solucionar estos problemas son, el
WinQSB, Storm, Lindo, etc. También se puede programar una hoja electrónica para este fin, con el Solver del
Excel .

Un requisito indispensable para usar la computadora con esta orientación, es tener el problema previamente
modelado para facilitar la captura de los datos de entrada, que deberán ser de acuerdo al formato del software
utilizado y proceder a su ejecución. La solución que da la computadora en su reporte de salida, se debe de
interpretar para apoyar la toma de decisiones.

El enfoque de este tema es, conocer los fundamentos del Método Simplex como un apoyo para interpretar la
solución óptima, que es la solución matemática que dá la computadora. Para lograr esto, se presenta la
metodología que sigue el Método Simplex en la solución manual de problemas de Programación Lineal ya sean
de maximización o de minimización:

1. Igualar las restricciones del problema modelado.


2. Formar la "Tabla Inicial".
3. Reconocer si la solución que dá la Tabla es óptima, checando el cumplimiento del "Criterio de
Optimabilidad (Cj-Zj ≤ 0)". Si la solución no es óptima, se debe:
4. Calcular la "Nueva Tabla". hasta encontrar la solución óptima.
5. Repetir el "Paso 3 y 4" hasta que la tabla calculada cumpla con el criterio de optimabilidad.
6. Dar la "Solución Optima" del problema.
7. "Interpretar" la solución óptima del problema.

Para presentar la aplicación de esta metodología, se hará con tres problemas: uno de maximización, otro de
minimización y el último de solución óptima alterna o múltiple.

1. PROBLEMA DE "MAXIMIZACIÓN".

Se explicará esta metodología general con un problema de maximización, de dos variables de decisión, que es
un problema pequeño solo para ilustrar el Método Simplex.

Con la finalidad de comparar el Método Gráfico y el Simplex, se retoma el problema de "fabricación de


fertilizantes" que anteriormente se había solucionado con el Método Gráfico y ahora se hará con el Simplex.
Primero se presenta la solución del problema y luego se hará la comparación entre ambos métodos:

1.1. Solución del problema por el Método Simplex.

A continuación se da el modelo del problema de los fertilizantes (problema presentado en las notas del Método
Gráfico) para ser solucionado con el Método Simplex:

Máx. Z = 185X1 + 200X2


s. a. Nitrato 0.05X1 + 0.05X2 ≤ 1,100
Fosfato 0.05X1 + 0.10X2 ≤ 1,800
Potasio 0.10X1 + 0.05X2 ≤ 2,000

JEVA / PTI
2
PROGRAMACIÓN LINEAL MÉTODO
SIMPLEX

Paso 1. Igualar las restricciones.

Se igualan las restricciones para tener la matriz identidad del problema. Esta matriz identidad es el punto
de partida que utiliza el Método Simplex para solucionar el problema.

Existen las siguientes reglas para hacer la igualación de las restricciones:

Si se tiene una restricción menor o igual se agregará una variable de holgura (H). Si la restricción
es mayor o igual se restará una variable de excedente (E) y se sumará una variable artificial (A). Si
la restricción es una igualdad se sumará una variable artificial (A).

Un pequeño ejemplo para mostrar la aplicación de estas reglas es igualando las siguientes
restricciones:

Restricciones Igualando las restricciones

2X1 + 4X2 ≤ 80 2X1 + 4X2 + H1+ 0 + 0 = 80


8X1 + 6X2 ≥ 12 8X1 + 6X2 + 0 - E2 + A1 = 12
X1 + 3X2 = 15 X1 + 3X2 + 0 + 0 + A2 = 15
matriz identidad

Ahora, aplicando estas reglas para igualar las restricciones del problema de los fertilizantes, se tiene:

Nitrato 0.05X1 + 0.05X2 ≤ 1,100 0.05X1 + 0.05X2 + H1 = 1,100


Fosfato 0.05X1 + 0.10X2 ≤ 1,800 0.05X1 + 0.10X2 + H2 = 1,800
Potasio 0.10X1 + 0.05X2 ≤ 2,000 0.10X1 + 0.05X2 + H3 = 2,000

Paso 2. Formar la Tabla Inicial.

Existen diferentes formatos de tablas que se pueden usar para el Método Simplex. Los formatos se
diferencian solo en la colocación de los datos pero la esencia es la misma.

Una vez definido el formato de la tabla, se mantendrá igual durante todo el desarrollo del problema,
independientemente de la etapa que se este haciendo. Nosotros utilizaremos el siguiente formato para
hacer las tablas:

Tabla Inicial o Tabla 1.

Función Objetivo:
Base Cj X1 X2 H1 H2 H3 Bi Variables
185 200 0 0 0 Coeficientes de Contribución
H1 0 0.05 0.05 1 0 0 1100 Restricciones:
H2 0 0.05 0.10 0 1 0 1800 Coeficientes y Términos
H3 0 0.10 0.05 0 0 1 2000 Independientes

Pérdida Unitaria de la Función Objetivo


Zj 0 0 0 0 0 0
(Precio Sombra)
∆j 185 200 0 0 0
Incremento Marginal del valor de la
Función Objetivo

Para calcular Zj y ∆j se harán con las siguientes relaciones:

Zj = Σ Ai,j Cj

JEVA / PTI
3
PROGRAMACIÓN LINEAL MÉTODO
SIMPLEX

∆j = Cj - Zj

Paso 3. Reconocer si la solución que da la tabla es óptima. Verificar el cumplimiento del Criterio de
Optimabilidad (∆j≤ 0)

El Método Simplex utiliza el Criterio de Optimabilidad para saber si ya llegó a la solución óptima del
problema. Si la tabla que se tiene no cumple con este criterio, se tendrá que seguir adelante con otras
iteraciones, es decir, calculando más tablas hasta cumplirlo. El criterio de optimabilidad se enuncia en la
forma siguiente:
La solución será óptima sí y solo sí ∆j ≤ 0. Es decir, los valores del renglón de la ∆j
deben ser ceros o negativos. Un valor positivo indica que la solución de la tabla no es óptima.

Como el Método Simplex trabaja por iteraciones (pasar de una tabla a otra hasta llegar a la solución
óptima), es posible leer la solución que se tiene en cualquier tabla de las calculadas.

Para leer la solución de una tabla que se haya calculado, es necesario ver dos columnas, la columna
Base nos dará las Variables Básicas que forman la solución y la columna "Bi" nos dará el valor de estas
variables. Cualquier variable no incluida en la base es una Variable no Básica con valor cero.

Al leer la solución de la tabla anterior, se tiene que:

Variables Básicas Variables no Básicas


(Solución de la Tabla)
H1 = 1100 X1 = 0
H2 = 1800 X2 = 0
H3 = 2000
Z =0

Esta solución no es óptima ya que si se observa el renglón ∆j tiene valores positivos que no cumplen
con el criterio de optimabilidad. Por lo tanto se tiene que hacer una nueva tabla para encontrar la
siguiente solución factible y ver si es óptima.

Paso 4. Calcular la "Nueva Tabla".

Para calcular la nueva tabla se tiene que definir la “Variable de Entrada (VE), la "Variable de Salida
(VS)", el "Pivote" y los "Criterios de Ajuste" para los nuevos renglones.

El "Criterio para definir la Variable de Entrada" es seleccionar la variable con el máximo valor del renglón
∆j. En este caso la variable de entrada es X2 que tiene un valor de 200 que es el valor mayor. Esto
significa que por cada tonelada que se produzca del fertilizante 5-10-5 (X2) se ganará $200 por tonelada
pero si se hubiera seleccionado como variable de entrada el 5-5-10 (X 1) se ganaría solo $185. La
variable X2 entrará en la "Base" de la nueva tabla.

Bi
El "Criterio para definir la Variable de Salida" es seleccionar el valor mínimo positivo del cociente A .
i ,ve

Primero se tiene que calcular el cociente y luego seleccionar la variable de salida. En este problema la
variable de salida es H2.

El "Pivote" es la intersección de la columna de la Variable de Entrada con el renglón de la Variable de


Salida y se debe de "marcar" este pivote ya que se utilizará para hacer los criterios de ajuste.

JEVA / PTI
4
PROGRAMACIÓN LINEAL MÉTODO
SIMPLEX

Los "Criterios de Ajuste" consisten en hacer las ecuaciones requeridas para calcular los renglones de la
nueva tabla sin utilizar el cálculo matricial; obviamente estos cálculos se pueden hacer también con
matrices.

Se recomienda hacer los cálculos por “renglones” para evitar errores en vez de hacerlos celda por celda.
En forma general, los “criterios de ajuste" para calcular los renglones de la tabla nueva, se pueden definir
en la forma siguiente:

Vp
Renglón Pivote Np =
p
Np = Renglón pivote para la tabla nueva
Vp = Renglón de la tabla vieja donde está el pivote marcado
p = Valor del pivote marcado en la tabla vieja

N i = Vi − Ai ,ve N p
Ni = Renglón "i" calculado para la tabla nueva
Vi = Renglón "i" seleccionado de la tabla vieja
Ai,ve= Coeficientes de la columna de variable de entrada en el renglón "i" (tabla
vieja)
Np = Renglón pivote para la tabla nueva
A continuación se presentan los cálculos para el problema que se está desarrollando:

Tabla 1

Base Cj X1 X2 H1 H2 H3 Bi Bi
185 200 0 0 0 Ai ,ve
V1 H1 0 0.05 0.05 1 0 0 1100 22,000
V2 H2 0 0.05 0.10 0 1 0 1800 18,000 →VS = H2
V3 H3 0 0.10 0.05 0 0 1 2000 40,000
Zj 0 0 0 0 0 0
∆j 185 200 0 0 0

VE = X2

Los criterios de ajuste para calcular los renglones de la nueva tabla son:

V2
Renglón Pivote N2 =
0.10
N1 = V1 − 0.05 N 2
N 3 = V3 − 0.05 N 2

Se presentan los cálculos de los renglones para la nueva tabla:

Siempre se debe iniciar calculando el "renglón pivote” para la nueva tabla que en este caso es N2:

Renglón N2:
V2 0.05 0.10 0 1 0 1,800
V 0.5 1 0 10 0 18,000
N2 = 2
0.10

JEVA / PTI
5
PROGRAMACIÓN LINEAL MÉTODO
SIMPLEX

Este "renglón pivote" de la tabla nueva es muy importante ya que se usará como referencia para
calcular los demás renglones de la tabla, como a continuación se muestra:

Renglón N1:
V2 0.05 0.05 1 0 0 1,100
- 0.05 N2 - 0.025 - 0.05 0 - 0.5 0 - 900
N1 0.025 0 1 - 0.5 0 200

Renglón N3:
V3 0.10 0.05 0 0 1 2,000
- 0.05N2 - 0.025 - 0.05 0 - 0.5 0 - 900
N3 0.075 0 0 - 0.5 1 1,100

Acomodando los renglones calculados en la nueva tabla queda en la siguiente forma:

Tabla 2

Base Cj X1 X2 H1 H2 H3 Bi Bi
185 200 0 0 0 Ai ,ve

N1 H1 0 0.025 0 1 - 0.5 0 200 8,000 →VS = H1


N2 X2 200 0.5 1 0 10 0 18,000 36,000
N3 H3 0 0.075 0 0 - 0.5 1 1,100 14,666.7
Zj 100 200 0 2,000 0 3’600,000
∆j 85 0 0 - 2,000 0

VE = X1

Paso 5. Repetir el "Paso 3 y 4" hasta que la tabla calculada cumpla con el criterio de optimabilidad.

Si se cumple con el criterio de optimabilidad, entonces la solución de esa tabla es óptima, si no, se
continua "iterando" es decir haciendo nuevas tablas hasta encontrar la solución óptima del problema por
lo que se repite nuevamente el paso 4.

La solución de la tabla anterior es: H1 = 200


X2 = 18,000
H3 = 1,100
Máx. Z = 3’600,000

Esta solución no es óptima, luego se calcula la siguiente "nueva tabla" definiendo la Variable de Entrada,
la Variable de Salida, Pivote y los Criterios de Ajuste.

Para calcular la Tabla 3 se tiene que la Variable de Entada es X1, la Variable de Salida es H1, el Pivote es
0.025 y los Criterios de Ajuste son:

V1
Renglón Pivote N1 =
0.025
N 2 = V 2 − 0.5 N 1
N 3 = V3 − 0.075 N 1
Tabla 3
Base Cj X1 X2 H1 H2 H3 BI
185 200 0 0 0
X1 185 1 0 40 - 20 0 8,000

JEVA / PTI
6
PROGRAMACIÓN LINEAL MÉTODO
SIMPLEX

X2 200 0 1 - 20 20 0 14,000
H3 0 0 0 -3 1 1 500
Zj 185 200 3,400 300 0 4’280,000
∆j 0 0 - 3,400 - 300 0

En esta tabla se cumple con el criterio de optimabilidad ∆j ≤ 0 por lo que se ha llegado a la solución
óptima del problema.

Paso 6. Dar la "Solución Óptima" del problema.

La solución óptima del problema que se encuentra en la Tabla 3 es:

X1 = 8,000
X2 = 14,000
H3 = 500
Máx. Z = 4’280,000

Esta solución óptima es una "solución matemática" que requiere ser interpretada.

Paso 7. "Interpretar" la solución óptima del problema.

En la interpretación de la solución óptima, se debe ver si el problema tiene "variables discretas" o


"variables continuas". Si se tienen variables discretas, al hacer la interpretación de la solución óptima del
problema, se tendrá que dar en valores "enteros" haciendo los ajustes requeridos en la solución
matemática obtenida. Si son variables continuas, la interpretación se hará directamente con los valores
obtenidos sin hacer ningún ajuste.

En nuestro problema se tienen variables continuas por lo que no es necesario hacer ajustes. Entonces, la
interpretación de la solución óptima será la siguiente:

El programa de producción para el siguiente mes será 8,000 toneladas del fertilizante 5-5-10 (X1=8,000) y
14,000 toneladas del 5-10-5 (X2=14,000) para tener la máxima utilidad de $4’280,000 (Máx.Z=4’280,000).
Después de hacer este programa de producción se tendrán 500 toneladas sobrantes de Potasio. Las
restricciones dominantes o “cuellos de botella2 son el Nitrato y el Fosfato.

1.2. Comparación entre el Método Simplex y el Método Gráfico.


Retomando el problema de los "fertilizantes", que se acaba de solucionar por el Método Simplex, se hará un
análisis comparativo entre el Método Simplex y el Método Gráfico.

El Método Simplex es "iterativo", es decir, va repitiendo el cálculo de las tablas, pasando de una a otra, hasta
encontrar la solución óptima mientras que, el Método Gráfico evalúa la Función Objetivo en cada vértice de la
región factible para escoger la solución óptima. La gran diferencia que existe entre ambos métodos, es que la
solución dada por el Método Gráfico se puede visualizar gráficamente mientras que la del Simplex no.

Para analizar la lógica de los cálculos del Método Simplex y compararlos con el Método Gráfico, se presenta la
siguiente gráfica:

JEVA / PTI
7
PROGRAMACIÓN LINEAL MÉTODO
SIMPLEX

H1 = 200 X1 = 0
X1 = 8,000 H1 =
X2 = 18,000 H2 =
0
0
X2 = 14,000 H2 =
H3 = 1,100
0
Z = 3’600,000
H3 = 500

H1 = 1,100 X1 = 0
H2 = 1,800 X2 = 0
H3 = 2,000
VÉRTICE “E”

El Método Simplex al calcular la "Tabla Inicial (Tabla 1)" con la matriz identidad del problema, se posiciona en
el vértice "E" localizado el punto de origen (0,0). En esta forma queda el Simplex preparado para iniciar la
solución del problema. En esta tabla inicial se tiene la siguiente solución:

Variables "Básicas" Variables "no Básicas"

H1 = 1100 X1 = 0
H2 = 1800 X2 = 0
H3 = 2000
Z=0

Esta solución de la "Tabla Inicial" es igual a la solución que se tiene en el vértice "E" en el Método Gráfico.
Al estar en el vértice "E", el Método Simplex evalúa las alternativas de movimiento que tiene, en este caso dos,
una dirección lo lleva al vértice "A" y la otra al "D". El renglón del "Incremento Marginal del valor de la Función
Objetivo (∆j)” en la Tabla Inicial, señala que la utilidad por tonelada que se puede obtener al producir X2 es de
$200/tonelada mientras que con la X1 es de $185. La mejor alternativa es producir X2, es por esta razón se
escogió como “Variable de Entrada” (VE = X2) a la Base de la "Nueva Tabla" (Tabla 2). Esto equivale a moverse
en la dirección del eje X2 como se puede apreciar en la gráfica.

Ya seleccionada la dirección, el Simplex tiene que conocer hasta donde se puede mover, esto lo logra al definir
la "Variable de Salida" de la Base de la Tabla Inicial que es H2 (VS = H2) que está vinculada a la restricción de
Fosfato. Esta restricción da el tope máximo hasta donde se puede llegar de acuerdo a la gráfica, es decir hasta
el vértice "A".

La solución que se tiene en el vértice "A" (ver la solución de la Tabla 2 del Método Simplex) es:

Variables "Básicas" Variables "no Básicas"

H1 = 200 X1 = 0
X2 = 18,000 H2 = 0
H3 = 1,100
Z = 3’600,000

Ya en el vértice "A", se repiten los pasos anteriormente explicados; de acuerdo a la gráfica se evalúan las
direcciones de movimiento (pasar al vértice “B” o al vértice “E”) y hasta donde puede llegar como máximo en la
dirección seleccionada de tal forma que se incremente el valor de la Función Objetivo. De acuerdo a la gráfica,
se selecciona pasar al vértice "B” (restricción de Nitrato). Al analizar lo que hace el Simplex para pasar al
vértice “B”, es seleccionar la dirección de movimiento a través de la variable de entrada de la Tabla 2 que es X1

JEVA / PTI
8
PROGRAMACIÓN LINEAL MÉTODO
SIMPLEX

(VE = X1). En el vértice "B" se tiene la solución óptima del problema que se puede ver en la Tabla 3 del Método
Simplex, es decir, en esta tabla se cumple con el criterio de optimabilidad.

La solución óptima es:

Variables "Básicas" Variables "no Básicas"

X1 = 8,000 H1 = 0
X2 = 14,000 H2 = 0
H3 = 500
Máx.Z = 4’280,000

Si se quisiera pasar a otro vértice por ejemplo al “C”, como se puede ver en la gráfica, esto daría un valor de la
Función Objetivo menor al que se tenía en el vértice “B” por lo que se reafirma que este vértice está la
solución óptima. La solución que se encuentra en el vértice “C” es:

Variables "Básicas" Variables "no Básicas"

X1 = 18,000 H1 = 0
X2 = 4,000 H3 = 0
H2 = 500
Z = 4’130,000

2. PROBLEMA DE "MINIMIZACIÓN".
Cuando se quiere solucionar un problema de Programación Lineal, necesariamente se tiene que desarrollar un
ciclo de tres pasos: modelar el problema, solucionar el modelo para encontrar la solución óptima e interpretar la
solución óptima encontrada. A continuación se presenta un problema de "minimización" que presenta los tres
pasos mencionados:

Alimentos para físico-culturistas.


Una empresa fabricante de alimentos para físico-culturistas ha recibido un pedido de 1000 kilogramos de
un producto de alto contenido proteínico. La empresa conoce que la formulación de este pedido se hace
con tres alimentos base. Actualmente se tiene en los almacenes una disponibilidad de 800 kilogramos
del alimento "A", 100 de "B" y 400 de "C". El producto final tiene como requerimiento cuando menos 600
kilogramos del alimento "A" y no más de 500 de los alimentos "B" y "C" combinados. El costo del
kilogramo es de $15 para "A", de $12 para "B" y de $10 para "C". La empresa quiere desarrollar un
modelo para minimizar el costo de este pedido.

Modelación.
Variables de Decisión.
Xi = Kilogramos del Alimento "i" que se utilizarán en la fabricación del pedido
(Kg)

Función Objetivo.
mín. Z = 15X1 + 12X2 + 10X3
$ ($/Kg)(Kg) = $

Restricciones.
1. Condición de Balanceo.
X1 + X2 + X3 = 1000
Kg Kg

JEVA / PTI
9
PROGRAMACIÓN LINEAL MÉTODO
SIMPLEX

2. Especificaciones del Pedido.


Alimento "A" X1 ≥ 600
Alimento "B" X2 + X3 ≤ 500
Kg Kg

3. Disponibilidad de Materiales.
Alimento "A" X1 ≤ 800
Alimento "B" X2 ≤ 100
Alimento "C" X3 ≤ 400
Kg Kg

4. No negatividad Xi ≥ 0

Análisis Dimensional: Aprobado.

Solución por el Método Simplex.


Para solucionar un problema de “minimización" con el Método Simplex, se puede utilizar la misma metodología
que se aplicó para los problemas de Maximización. Para hacer esto, es necesario transformar el problema de
minimización a uno de maximización aplicando el siguiente principio:
mín.Z = Máx.(-Z)

Función Objetivo original Función Objetivo transformada


mín. Z = 15X1 + 12X2 + 10X3 Máx. Z = - 15X1 - 12X2 - 10X3

Ya trasformado el problema, se resuelve como si fuera de maximización. A continuación se presentan los


pasos para la solución del problema:

• Igualar las restricciones.


Se presenta la igualación de las restricciones para formar la "matriz identidad" de este problema:

Restricciones Igualación de Restricciones

Condición de Balance X1 + X2 + X3 = 1000 X1 + X2 + X3 + A1 = 1000


Especificación Alimento "A" X1 ≥ 600 X1 - E1 + A2 = 600
Especificación Alimento "B" X2 + X3 ≤ 500 X2 + X3 + H2 = 500
Disponibilidad Alimento "A" X1 ≤ 800 X1 + H3 = 800
Disponibilidad Alimento "B" X2 ≤ 100 X2 + H4 = 100
Disponibilidad Alimento "C X3 ≤ 400 X3 + H5 = 400

• Tabla Inicial del problema.


Considerando, la transformación del problema como si fuera de Maximización, se tiene la siguiente
"Tabla Inicial":

Tabla Inicial (Tabla 1)


Base Cj X1 X2 X3 A1 E1 A2 H2 H3 H4 H5 Bi Bi
-15 -12 -10 -150 0 -150 0 0 0 0 Ai ,ve
A1 -150 1 1 1 1 0 0 0 0 0 0 1,000 1,000
A2 -150 1 0 0 0 -1 1 0 0 0 0 600 600→VS
H2 0 0 1 1 0 0 0 1 0 0 0 500 Infinito
H3 0 1 0 0 0 0 0 0 1 0 0 800 800
H4 0 0 1 0 0 0 0 0 0 1 0 100 Infinito
H5 0 0 0 1 0 0 0 0 0 0 1 400 Infinito

JEVA / PTI
10
PROGRAMACIÓN LINEAL MÉTODO
SIMPLEX

Zj -300 -150 -150 -150 150 -150 0 0 0 0 -240,000


∆j 285 138 140 0 -150 0 0 0 0 0

VE

• Reconocer si la solución de la tabla es óptima.


Al analizar el renglón ∆j nos encontramos números positivos, que indica que la solución que se tiene
en esta tabla no es óptima ya que no se cumple el criterio de optimabilidad. Entonces, se tiene que
calcular la siguiente iteración o tabla 2 (“Nueva Tabla”)

• Calcular la "Nueva Tabla".


Con base en la Tabla Inicial (Tabla 1), se establecen los "Criterios de Ajuste" para pasar a la siguiente
tabla, quedando en siguiente forma:

Renglón Pivote N2 = V2
N1 = V1-N2
N3 = V3
N4 = V4-N2
N5 = V5
N6 = V6

Con estos criterios se calcularon los renglones de la siguiente tabla:

Tabla 2
Base Cj X1 X2 X3 A1 E1 A2 H2 H3 H4 H5 Bi Bi
-15 -12 -10 -150 0 -150 0 0 0 0 Ai ,ve
A1 -150 0 1 1 1 1 -1 0 0 0 0 400 400→VS
X1 -15 1 0 0 0 -1 1 0 0 0 0 600 Infinito
H2 0 0 1 1 0 0 0 1 0 0 0 500 500
H3 0 0 0 0 0 1 -1 0 1 0 0 200 Infinito
H4 0 0 1 0 0 0 0 0 0 1 0 100 Infinito
H5 0 0 0 1 0 0 0 0 0 0 1 400 400
Zj -15 -150 -150 -150 -135 135 0 0 0 0 -69,000
∆j 0 138 140 0 135 -285 0 0 0 0

VE

• Si la Tabla calculada no cumple con el "Criterio de Optimabilidad", se debe seguir haciendo "Nuevas
Tablas" hasta llegar a la solución óptima del problema.
La Tabla 2 no es la solución óptima para el problema por lo que se tiene que seguir iterando (hacer
nuevas tablas) hasta llegar a la solución óptima del mismo. A continuación se presentan los cálculos de
las tablas calculadas:

Criterios de Ajuste para pasar a la Tabla 3:

Renglón Pivote N1 = V1
N2 = V2
N3 = V3-N1
N4 = V4
N5 = V5
N6 = V6-N1

JEVA / PTI
11
PROGRAMACIÓN LINEAL MÉTODO
SIMPLEX

Tabla 3
Base Cj X1 X2 X3 A1 E1 A2 H2 H3 H4 H5 Bi
-15 -12 -10 -150 0 -150 0 0 0 0
X3 -10 0 1 1 1 1 -1 0 0 0 0 400
X1 -15 1 0 0 0 -1 1 0 0 0 0 600
H2 0 0 0 0 -1 -1 1 1 0 0 0 100
H3 0 0 0 0 0 1 -1 0 1 0 0 200
H4 0 0 1 0 0 0 0 0 0 1 0 100
H5 0 0 -1 0 -1 -1 1 0 0 0 1 0
Zj -15 -10 -10 -10 5 -5 0 0 0 0 -13,000
∆j 0 -2 0 -140 -5 -145 0 0 0 0

En esta Tabla 3 se cumple el criterio de optimabilidad, es decir, todos los números del renglón ∆j son
negativos o ceros. Entonces, la solución de esta tabla es la óptima.

• "Solución Optima" del problema.


La solución óptima que se puede leer en la tabla, es la siguiente:

X3 = 400
X1 = 600
H2 = 100
H3 = 200 (¿¿)
H4 = 100
H5 = 0
Máx. Z = -13,000 que es igual mín. Z = 13,000

• "Interpretar" la solución óptima.


El problema tiene variables continuas por lo queda la siguiente interpretación:
Para fabricar el pedido que cumpla con los requerimientos, se deberá utilizar 600 kilogramos del
alimento "A" (X1=600) y 400 kilogramos del alimento "C" (X3=400) para tener el mínimo costo de
$13,000 (mín.Z=13,000). Al hacer este plan de fabricación para el pedido, se tendrá el siguiente
análisis de los recursos: en el requerimiento de la combinación del alimento "B" y "C" se tendrá un
sobrante de 100 kilogramos (H2=100), es decir, se utilizaron 400 kilogramos en vez de 500; se tiene un
sobrante de 200 kilogramos del alimento "A" (H 3=200) y 100 kilogramos del alimento "B" (H4=100) que
no se utilizó. El Alimento “C” (H5=0) se terminó. La restricción dominante es la especificación del
Alimento “A”, la disponibilidad del Alimento “C” y respetar la condición de balance.

3. PROBLEMA DE "SOLUCIÓN ÓPTIMA ALTERNA" Y "SOLUCIONES ÓPTIMAS


MULTIPLES".

Para saber si un problema tiene una o varias “soluciones óptimas alternas”, se tiene que buscar en la "Tabla
Final" (la tabla con la solución óptima del problema) las variables que cumplan con las siguientes condiciones:

• Variable “no básica”


• Con valor cero en el renglón ∆j
• Y al menos un coeficiente positivo en su columna

Por cada variable que se tenga en la Tabla Final que cumpla estas condiciones, se tendrá una nueva solución
óptima alterna.

Para calcular una "nueva solución óptima" se forzará como Variable de Entrada, la variable que cumpla con las
condiciones. Se seguirá el procedimiento para calcular la siguiente tabla ("nueva tabla"), donde se encontrará
la nueva solución óptima (solución óptima alterna).

JEVA / PTI
12
PROGRAMACIÓN LINEAL MÉTODO
SIMPLEX

Si se tienen en la Tabla Final, varias variables que cumplan con la condiciones, entonces se tendrán
"Soluciones Óptimas Múltiples". De acuerdo con el número de estas variables, se tendrán al menos este
número o más de soluciones óptimas diferentes para el problema.

Para calcular estas soluciones múltiples, primero se forzará a una de ellas a ser la Variable de Entrada en la
Tabla Final y siguiendo el procedimiento para calcular la tabla siguiente, se encontrará la primera solución
óptima alterna del problema. Si se van metiendo como Variables de Entrada, las diferentes variables que
cumplen las condiciones, se irán calculando las diferentes soluciones óptimas alternas que tenga el problema.

A continuación se presentan dos problemas para presentar las situaciones donde se tiene una "Solución
Óptima Alterna" y donde se tienen varias "Soluciones Óptimas Múltiples":

3.1. Solución Óptima Alterna.


Para analizar un problema con "solución óptima alterna", se tratará nuevamente el problema de los fertilizantes
pero modificado ligeramente la Función Objetivo. Se dejaron las mismas restricciones pero se cambió la
Función Objetivo a una nueva, quedando el modelo de la siguiente forma:

Función Objetivo Máx. Z = 100X1 + 200X2

Restricciones: Nitrato 0.05X1 + 0.05X2 ≤ 1,100


Fosfato 0.05X1 + 0.10X2 ≤ 1,800
Potasio 0.10X1 + 0.05X2 ≤ 2,000

Solución por el Método Simplex.


A continuación se presentan todas las tablas (iteraciones) del problema:

Tabla Inicial (Tabla 1)

Base Cj X1 X2 H1 H2 H3 Bi Bi
100 200 0 0 0 Ai ,ve
V1 H1 0 0.05 0.05 1 0 0 1100 22,000
V2 H2 0 0.05 0.10 0 1 0 1800 18,000 →VS
V3 H3 0 0.10 0.05 0 0 1 2000 40,000
Zj 0 0 0 0 0 0
∆j 100 200 0 0 0

VE

"Criterios de Ajuste" para pasar a la Tabla 2:

V2
Renglón Pivote N2 =
0.10
N1 = V1 - 0.05N2
N3 = V3 - 0.05N2

Tabla 2 (Tabla Final).

Base Cj X1 X2 H1 H2 H3 Bi Bi
100 200 0 0 0 Ai ,ve

JEVA / PTI
13
PROGRAMACIÓN LINEAL MÉTODO
SIMPLEX

N1 H1 0 0.025 0 1 -0.5 0 200 8,000 →VS


N2 X2 200 0.5 1 0 10 0 18,000 36,000
N3 H3 0 0.075 0 0 -0.5 1 1,100 14,666.7
Zj 100 200 0 2,000 0 3600,000

∆j 0 0 0 -2,000 0

VE

La solución óptima de este problema es:


H1 = 200
X2 = 18,000
H3 = 1,100
Máx. Z = 3’600,000

Al analizar la "Tabla Final" del problema, se encuentran dos variables no básicas, la X1 y la H2. La H2 no cumple
con todas las condiciones pero la X1 sí. Entonces el problema tiene una solución óptima alterna. Para calcular
esta solución óptima alterna, se fuerza como Variable de Entrada la X1 y se calcula la siguiente Tabla.

"Criterios de Ajuste" para pasar a la siguiente tabla:

V1
Renglón Pivote N1 =
0.025
N2 = V2-0.5N1
N3 = V3-0.075N1

Tabla de la Solución Óptima Alterna.


Base Cj X1 X2 H1 H2 H3 Bi
100 200 0 0 0
X1 100 1 0 40 -20 0 8,000
X2 200 0 1 -20 20 0 14,000
H3 0 0 0 -3 1 1 500
Zj 100 200 0 2000 0 3600,000
∆j 0 0 0 -2000 0

Se ha calculado una la solución óptima alterna para el problema que es:


X1 = 8,000
X2 = 14,000
H3 = 500
Máx. Z = 3’600,000

Una característica de la solución óptima alterna, es que debe dar una diferente solución pero el mismo valor de
la Función Objetivo que la solución óptima normal, en este caso 3’600,000.

Si se analiza nuevamente la "Tabla Final", se verá que la variable H1 cumple con todas las condiciones. Al
solucionar, siguiendo el mismo procedimiento, se encontrará la solución óptima anterior. Se presentan las dos
soluciones óptimas del problema:

Solución Óptima Solución Óptima Alterna


H1 = 200 X1 = 8,000
X2 = 18,000 X2 = 14,000
H3 = 1,100 H3 = 500

JEVA / PTI
14
PROGRAMACIÓN LINEAL MÉTODO
SIMPLEX

Máx. Z = 3’600,000 Máx. Z = 3’600,000

Interpretación de las "Soluciones Óptimas" del problema.


El programa de producción para el siguiente mes se puede fabricar en dos posibles formas. Una forma
será fabricar 18,000 toneladas del fertilizante del 5-10-5 (X2=18,000) para tener la máxima utilidad de
$3’600,000 (Max.Z=3600,000). Al hacer este programa de fabricación sobrarán 200 toneladas de
Nitrato (H1=200) y 1,100 toneladas de Potasio (H3=0).
Otra solución alternativa es producir 8,000 toneladas del fertilizante 5-5-10 (X1=8,000) y 14,000
toneladas del 5-10-5 (X2=14,000) para tener la máxima utilidad de $3’600,000 (Máx.Z=3600,000). Al
hacer este programa sobrarán 500 toneladas de Potasio (H3=500).

Rango Óptimo.
En la mayoría de los problemas, la pendiente de la Función Objetivo pasa por un vértice a la región factible
generando una solución única o puntual. Cuando un problema tiene una solución óptima alterna es que la
pendiente de la Función Objetivo pasa por todo un lado de la región factible generando diferentes soluciones
óptimas. Esto es consecuencia de que la pendiente de la Función Objetivo es paralela a uno ese lado de la
región factible. Esto sirve como base para establecer el “Rango Óptimo” del problema, al establecer el rango
de variación para cada una de las variables.

Para calcular el Rango Óptimo se debe recordar que las variables que no forman parte de la solución óptima
inicial del problema, tienen un valor de "cero". Con esta consideración y comparando las dos soluciones
óptimas encontradas para este problema que tiene solo dos variables de decisión, se puede establecer el
Rango Óptimo quedando en la siguiente forma:
Rango Óptimo: 8,000 ≥ X1 ≥ 0
18,000 ≥ X2 ≥ 14,000
200 ≥ H1 ≥ 0
1,100 ≥ H3 ≥ 500
Máx. Z = 3’600,000

Al conocer el Rango Optimo para este problema con dos variables de decisión, nos permite planear diferentes
soluciones óptimas que respondan a necesidades específicas. Por ejemplo, si se quiere fabricar 5,000
toneladas del fertilizante 5-5-10 (X1=5,000) se puede calcular cuántas toneladas del fertilizante 5-10-5 se tienen
que fabricar para tener la máxima utilidad de $3’600,000. Esto se calcula en la forma siguiente:

3’600,000 = 100(5,000) + 200 X2


X2 = 15,000

De acuerdo a este cálculo, se debe de fabricar 15,500 toneladas del fertilizante 5-10-5 (X2=15,500).

Si dentro de los valores del rango óptimo, se fijan simultáneamente los valores de X 1 y X2, se puede generar
una solución no óptima por lo que es necesario comprobarla. Se debe verificar que el valor de la Función
Objetivo sea la misma en cualquier caso.

3.2. Soluciones Óptimas Múltiples.


Un problema que tiene varias soluciones óptimas también se dice que tiene "soluciones óptimas múltiples". El
problema siguiente es un ejemplo de este tipo:

Cadena de tiendas.
Una gran cadena de tiendas de abarrotes tiene varios establecimientos que trabajan las 24 horas del día.
De experiencias pasadas que se han tenido en las tiendas, se observó que se puede dar mejor servicio
al cliente si se asignan turnos de 8 horas a sus empleados pero escalonados en períodos de 4 horas, es
decir, se inicia un turno cada 4 horas.
La Administración de la compañía ha determinado las necesidades del personal para el siguiente mes,
presentado en la tabla que se da a continuación:

Turno Período Personal

JEVA / PTI
15
PROGRAMACIÓN LINEAL MÉTODO
SIMPLEX

Requerido
1 8 a 12 horas 35
2 12 a 16 30
3 16 a 20 40
4 20 a 24 20
5 24 a 4 10
6 4a8 25

A la Administración le gustaría tener un modelo que le permita determinar cuántos empleados deben
trabajar en cada turno de tal forma que el total de empleados sea mínimo.

Modelación.
Variables de Decisión.
Xi = Empleados a trabajar el Turno "i"
(e)

Función Objetivo.
mín. Z = X1 + X2 + X3 + X4 + X5 + X6
e e

Restricciones.
1. Períodos.
8 a 12 horas X1 + X6 ≥ 35
12 a 16 X1 + X2 ≥ 30
16 a 20 X2 + X3 ≥ 40
20 a 24 X3 + X4 ≥ 20
24 a 4 X4 + X5 ≥ 10
4a 8 X5 + X6 ≥ 25
e e
2. No negatividad Xi => 0

Análisis Dimensional: Probado.

Solución del problema modelado en la computadora.


Al solucionar este problema en la computadora, se obtuvo la siguiente "Tabla Final" donde se puede leer la
solución óptima:

Tabla Final (Primera Solución Óptima)


* * *
Base Cj X1 X2 X3 X4 X5 X6 E1 E2 E3 E4 E5 E6 Bi Bi
-1 -1 -1 -1 -1 -1 0 0 0 0 0 0 Ai ,ve
X1 -1 1 0 0 1 0 0 -1 0 0 0 -1 1 20 20
X2 -1 0 1 0 -1 0 0 1 -1 0 0 1 -1 10 -10
X3 -1 0 0 1 1 0 0 -1 1 -1 0 -1 1 30 30
E4 0 0 0 0 0 0 0 -1 1 -1 1 -1 1 10 Infinito
X5 -1 0 0 0 1 1 0 0 0 0 0 -1 0 10 10 →VS
X6 -1 0 0 0 -1 0 1 0 0 0 0 1 -1 15 -15
Zj -1 -1 -1 -1 -1 -1 1 0 1 0 1 0 -85
∆j 0 0 0 0 0 0 -1 0 -1 0 -1 0

VE

JEVA / PTI
16
PROGRAMACIÓN LINEAL MÉTODO
SIMPLEX

Al analizar la "Tabla Final" del problema, se encontró que X4, E2 y E6 son las variables "no básicas" que
cumplen con las condiciones para tener soluciones óptimas alternas. En este caso, se tiene un problema con
"soluciones óptimas múltiples", con al menos cuatro soluciones diferentes.

En la "Tabla Final" se puede leer la primera solución óptima del problema, que es la siguiente:
X1 = 20
X2 = 10
X3 = 30
E4 = 10
X5 = 10
X6 = 15
mín. Z = 85

Para calcular la segunda solución óptima del problema, se forzó como Variable de Entrada a X4 y se aplicaron
los Criterios de Ajuste para calcular la siguiente tabla:

Criterios de Ajuste para calcular la “segunda solución óptima” del problema:

Renglón Pivote N5 = V5
N1 = V1 - N5
N2 = V2 + N5
N3 = V3 - N5
N4 = V4
N6 = V6 + N5

Tabla Final (Segunda Solución Óptima)


* * *
Base Cj X1 X2 X3 X4 X5 X6 E1 E2 E3 E4 E5 E6 Bi Bi
-1 -1 -1 -1 -1 -1 0 0 0 0 0 0 Ai ,ve
X1 -1 1 0 0 0 -1 0 -1 0 0 0 0 1 10 Infinito
X2 -1 0 1 0 0 1 0 1 -1 0 0 0 -1 20 -20
X3 -1 0 0 1 0 -1 0 -1 1 -1 0 0 1 20 20
E4 0 0 0 0 0 0 0 -1 1 -1 1 -1 1 10 10 →VS
X4 -1 0 0 0 1 1 0 0 0 0 0 -1 0 10 Infinito
X6 -1 0 0 0 0 1 1 0 0 0 0 0 -1 25 Infinito
Zj -1 -1 -1 -1 -1 -1 1 0 1 0 1 0 -85
∆j 0 0 0 0 0 0 -1 0 -1 0 -1 0

VE

En esta "Tabla Final" se puede leer la “segunda solución óptima” del problema que es:
X1 = 10

JEVA / PTI
17
PROGRAMACIÓN LINEAL MÉTODO
SIMPLEX

X2 = 20
X3 = 20
E4 = 10
X4 = 10
X6 = 25
mín. Z = 85

Después de calcular la segunda solución óptima, se regresa a la Tabla Final de la primera solución y se sigue
calculando las otras soluciones óptimas. Ahora se selecciona como Variable de Entrada E2 para calcular la
“tercera solución óptima” del problema. Se sigue el mismo procedimiento descrito anteriormente. Se presenta
los cálculos para encontrar las otras soluciones óptimas del problema:

Criterios de Ajuste para calcular la “tercera solución óptima” del problema:

Renglón Pivote N4 = V4
N1 = V1
N2 = V2 + N4
N3 = V3 - N4
N5 = V5
N6 = V6

Tabla Final (Tercera Solución Óptima)


Base Cj X1 X2 X3 X4 X5 X6 E1 E2 E3 E4 E5 E6 Bi Bi
-1 -1 -1 -1 -1 -1 0 0 0 0 0 0 Ai ,ve
X1 -1 1 0 0 0 -1 0 -1 0 0 0 0 1 10 10 →VS
X2 -1 0 1 0 0 1 0 0 0 -1 1 -1 0 30 Infinito
X3 -1 0 0 1 0 -1 0 0 0 0 -1 1 0 10 Infinito
E2 0 0 0 0 0 0 0 -1 1 -1 1 -1 1 10 10
X4 -1 0 0 0 1 1 0 0 0 0 0 -1 0 10 Infinito
X6 -1 0 0 0 0 1 1 0 0 0 0 0 -1 25 - 25
Zj -1 -1 -1 -1 -1 -1 1 0 1 0 1 0 -85
∆j 0 0 0 0 0 0 -1 0 -1 0 -1 0

VE

Tercera solución óptima:


X1 = 10
X2 = 30
X3 = 10
S2 = 10
X4 = 10
X6 = 25
mín. Z = 85

Criterios de Ajuste para calcular la "cuarta solución óptima" del problema:

Renglón Pivote N1 = V1
N2 = V2
N3 = V3
N4 = V4 - N1
N5 = V5
N6 = V6 + N1

JEVA / PTI
18
PROGRAMACIÓN LINEAL MÉTODO
SIMPLEX

Tabla Final (Cuarta Solución Óptima)

Base Cj X1 X2 X3 X4 X5 X6 E1 E2 E3 E4 E5 E6 Bi
-1 -1 -1 -1 -1 -1 0 0 0 0 0 0
E6 0 1 0 0 0 -1 0 -1 0 0 0 0 1 10
X2 -1 0 1 0 0 1 0 0 0 1 1 -1 0 30
X3 -1 0 0 1 0 -1 0 0 0 -1 -1 1 0 10
E2 0 -1 0 0 0 1 0 0 1 1 1 -1 0 0
X4 -1 0 0 0 1 1 0 0 0 0 0 -1 0 10
X6 -1 1 0 0 0 0 1 -1 0 0 0 0 0 35
Zj -1 -1 -1 -1 -1 -1 1 0 1 0 1 0 -85
∆j 0 0 0 0 0 0 -1 0 -1 0 -1 0

Cuarta solución óptima:


E6 = 10
X2 = 30
X3 = 10
E2 = 0
X4 = 10
X6 = 35
mín. Z = 85

En la Tabla de la "tercera solución óptima", si se mete como Variable de Entrada X5 se obtendrá una "quinta
solución óptima" que será:
X1 = 20
X2 = 20
X3 = 20
E2 = 10
X5 = 10
X6 = 10
mín. Z = 85

Se presenta un resumen de las "soluciones óptimas múltiples" del problema:

Variables Soluciones Óptimas Múltiples


Básicas 1 2 3 4 5
X1 20 10 10 20
X2 10 20 30 30 20
X3 30 20 10 10 20
X4 10 10 10
X5 10 10
X6 15 25 25 35 15
E2 10 0 10
E4 10 10
E6 10
mín. Z 85 85 85 85 85

JEVA / PTI
19
PROGRAMACIÓN LINEAL MÉTODO
SIMPLEX

Interpretación de la solución del problema.

Este problema tiene cinco diferentes soluciones óptimas que se caracterizan por tener el mismo valor de la
Función Objetivo (mín.Z=85). Se presenta la interpretación de la primera solución óptima del problema a
manera de ejemplo:

Programar 20 empleados para trabajar el turno 1 (X1=20), 10 en el turno 2 (X2=10), 30 en el turno 3


(X3=30), 10 en el turno 5 (X5=10) y 15 en el turno 6 (X6=15). De esta forma se tendrá un total de 85
empleados siendo la cantidad mínima para cubrir todos los requerimientos (mín.Z=85). Con esta
asignación se tendrá en el turno 4, 10 empleados más del mínimo requerido que es de 20.

Para problemas con soluciones óptimas múltiples, como es este problema, no es práctico hacer un rango
óptimo de soluciones sino más bien calcular todas las posibles soluciones óptimas del problema. Se
recomienda para calcular todas las soluciones óptimas utilizar la computadora con un software adecuado para
este fín.

JEVA / PTI
20