You are on page 1of 10

Laboratorio de Optimización de Operaciones Página 1

UNIVERSIDAD CATÓLICA DE SANTA MARÍA


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS

SESIÓN 3: MÈTODO SIMPLEX

I
OBJETIVOS

❖ Resolver problemas de programación lineal utilizando el Método Simplex.


❖ Reconocer e interpretar una solución óptima en la tabla Simplex.

II
TEMAS A TRATAR
❖ Método Simplex

III
MARCO TEORICO

El método del simplex fue creado en 1947 por el matemático George Dantzig.
El método del simplex se utiliza, sobre todo, para resolver problemas de programación lineal en
los que intervienen tres o más variables.
El álgebra matricial y el proceso de eliminación de Gauss-Jordan para resolver un sistema de
ecuaciones lineales constituyen la base del método simplex.

Partiendo del valor de la función objetivo en un vértice cualquiera, el método consiste en buscar
sucesivamente otro vértice que mejore al anterior. La búsqueda se hace siempre a través de los
lados del polígono (o de las aristas del poliedro, si el número de variables es mayor). Cómo el
número de vértices (y de aristas) es finito, siempre se podrá encontrar la solución.

El método del simplex se basa en la siguiente propiedad: si la función objetivo, f, no toma su valor
máximo en el vértice A, entonces hay una arista que parte de A, a lo largo de la cual f aumenta.

“Es un procedimiento iterativo que permite ir mejorando la solución a cada paso. El proceso
concluye cuando no es posible seguir mejorando más dicha solución”

Variable de Holgura: Es la variable que representa el resto de un recurso que no ha sido


utilizado, se le usa para que las restricciones de tipo ≤ se conviertan en igualdades, el cual es uno
de los requisitos para poder trabajar el Método Simplex

Variable de Superávit: Es la variable que representa el exceso mínimo sobre el requerimiento


mínimo de un recurso, se le usa para que las restricciones de tipo ≥ se conviertan en igualdades, el
cual es uno de los requisitos para poder trabajar el Método Simplex.

Esta es la forma estándar del modelo:


Función objetivo: c1·x1 + c2·x2 + ... + cn·xn
Sujeto a: a11·x1 + a12·x2 + ... + a1n·xn = b1
a21·x1 + a22·x2 + ... + a2n·xn = b2
...
am1·x1 + am2·x2 + ... + amn·xn = bm
x1,..., xn ≥ 0

Ing. Mary Ruelas Llerena Sesión 3


Laboratorio de Optimización de Operaciones Página 2

Para ello se deben cumplir las siguientes condiciones:


a. El objetivo es de la forma de maximización o de minimización.
b. Todas las restricciones son de igualdad.
c. Todas las variables son no negativas.
d. Las constantes a la derecha de las restricciones son no negativas.

Método Simplex

- Construcción de la primera tabla: En la primera columna de la tabla aparecerá lo que


llamaremos base, en la segunda el coeficiente que tiene en la función objetivo cada variable que
aparece en la base (llamaremos a esta columna Cb), en la tercera el término independiente de cada
restricción (P0), y a partir de ésta columna aparecerán cada una de las variables de la función
objetivo (Pi). Para tener una visión más clara de la tabla, incluiremos una fila en la que pondremos
cada uno de los nombres de las columnas. Sobre ésta tabla que tenemos incluiremos dos nuevas
filas: una que será la que liderará la tabla donde aparecerán las constantes de los coeficientes de la
función objetivo, y otra que será la última fila, donde tomará valor la función objetivo. Nuestra
tabla final tendrá tantas filas como restricciones.

Tabla
C1 C2 ... Cn
Base Cb P0 P1 P2 ... Pn
Pi1 Ci1 bi1 a11 a12 ... a1n
Pi2 Ci2 bi2 a21 a22 ... a2n
... ... ... ... ... ... ...
Pim Cim bim am1 am2 ... amn
Z Z0 Z1-C1 Z2-C2 ... Zn-Cn

Los valores de la fila Z se obtienen de la siguiente forma: El valor Z0 será el de sustituir Cim en la
función objetivo (y cero si no aparece en la base). El resto de columnas se obtiene restando a este
valor el del coeficiente que aparece en la primera fila de la tabla.
Se observará al realizar el método Simplex, que en esta primera tabla, en la base estarán las
variables de holgura.

- Condición de parada: Comprobaremos si debemos de dar una nueva iteración o no, que lo
sabremos si en la fila Z aparece algún valor negativo. Si no aparece ninguno, es que hemos
llegado a la solución óptima del problema.

- Elección de la variable que entra: Si no se ha dado la condición de parada, debemos


seleccionar una variable para que entre en la base en la siguiente tabla. Para ello nos fijamos en los
valores estrictamente negativos de la fila Z, y el menor de ellos será el que nos de la variable
entrante.

- Elección de la variable que sale: Una vez obtenida la variable entrante, obtendremos la variable
que sale, sin más que seleccionar aquella fila cuyo cociente P0/Pj sea el menor de los
estrictamente positivos (teniendo en cuenta que sólo se hará cuando Pj sea mayor de 0). La
intersección entre la columna entrante y la fila saliente nos determinará el elemento pivote.

- Actualización de la tabla: Las filas correspondientes a la función objetivo y a los títulos


permanecerán inalterados en la nueva tabla. El resto deberá calcularse de dos formas diferentes:
Si es la fila pivote cada nuevo elemento se calculará:

Nuevo Elemento Fila Pivote = Elemento Fila Pivote actual / Pivote.


Para el resto de elementos de filas se calculará:

Nuevo Elemento Fila = Elemento Fila Pivote actual - (Elemento Columna Pivote en la fila actual
* Nuevo Elemento Fila).

Ing. Mary Ruelas Llerena Sesión 3


Laboratorio de Optimización de Operaciones Página 3

IV
ACTIVIDADES

Ejemplo 1

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:

1. Convertir las desigualdades en igualdades


Se introduce una variable de holgura por cada una de las restricciones del tipo ≤, para convertirlas
en igualdades, resultando el sistema de ecuaciones lineales:
2x + y + r = 18
2x + 3y + s = 42
3x +y + t = 24

2. Igualar la función objetivo a cero


- 3x - 2y + Z = 0

3. Escribir la tabla inicial simplex


En las columnas aparecerán todas las variables básicas del problema y las variables de
holgura/exceso. En las filas se observan, para cada restricción las variables de holgura con sus
coeficientes de las igualdades obtenidas, y la última fila con los los valores resultantes de sustituir
el valor de cada variable en la función objetivo, y de operar tal como se explicó en la teoría para
obtener el resto de valores de la fila:
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

4. Condición de parada
Cuando en la fila Z no existe ningún valor negativo, se ha alcanzado la solución óptima del
problema. En tal caso, se ha llegado al final del algoritmo. De no ser así, se ejecutan los siguientes
pasos.

5. Condición de entrada y salida de la base


a. Primero debemos saber la variable que entra en la base. Para ello escogemos la columna de
aquel valor que en la fila Z sea el menor de los negativos. En este caso sería la variable x (P1) de
coeficiente - 3.

Si existiesen dos o más coeficientes iguales que cumplan la condición anterior (caso de empate),
entonces se 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).

b. Una vez obtenida la variable que entra en la base, estamos en condiciones de deducir cual será
la variable que sale. Para ello se divide cada término independiente (P0) entre el elemento
correspondiente de la columna pivote, siempre que el resultado sea mayor que cero, y se escoge el
mínimo de ellos.

Ing. Mary Ruelas Llerena Sesión 3


Laboratorio de Optimización de Operaciones Página 4

En nuestro caso: 18/2 [=9] , 42/2 [=21] y 24/3 [=8]

Si hubiera algún elemento menor o igual a cero no se realiza dicho cociente, y caso de que todos
los elementos de la columna pivote fueran de ésta condición tendríamos una solución no acotada y
terminaríamos el problema.

El término de la columna pivote que en la división anterior dé lugar al menor cociente positivo, el
3, ya que 8 es el menor cociente, indica la fila de la variable de holgura que sale de la base, t (P5).
Esta fila se llama fila pivote (En color verde).

Si al calcular los cocientes, dos o más son iguales (caso de empate), se escoge aquella que no sea
variable básica (si es posible).

c. En la intersección de la fila pivote y columna pivote tenemos el elemento pivote, 3.

6. Encontrar los coeficientes de la nueva tabla.


Los nuevos coeficientes de la fila pivote, t (P5), se obtienen dividiendo todos los coeficientes de
dicha fila entre el elemento pivote, 3, que es el que hay que convertir en 1.
A continuación mediante la reducción gaussiana hacemos ceros los restantes términos de su
columna, con lo que obtenemos los nuevos coeficientes de las otras filas incluyendo los de la
función objetivo Z.
También se puede hacer de la siguiente manera:
Fila del pivote:
Nueva fila del pivote = (Vieja fila del pivote) / (Pivote)
Resto de las filas:
Nueva fila = (Vieja fila) -(Coeficiente de la vieja fila en la columna de la variable entrante) x
(Nueva fila del pivote)
Veámoslo con un ejemplo una vez calculada la fila del pivote (fila de x (P1) en la Tabla II):
Vieja fila
42 2 3 0 1 0
de P4
- - - - - -
Coeficiente 2 2 2 2 2 2
x x x x x x
Nueva fila
8 1 1/3 0 0 1/3
pivote
= = = = = =
Nueva fila
26 0 7/3 0 1 -2/3
de P4

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

Se puede observar que no hemos alcanzado la condición de parada ya que en los elementos de la
última fila, Z, hay uno negativo, -1. Hay que repetir el proceso:
a. La variable que entra en la base es y (P2), por ser la variable que corresponde a la columna
donde se encuentra el coeficiente -1.
b. Para calcular la variable que sale, dividimos los términos de la última columna entre los
términos correspondientes de la nueva columna pivote: 2 / 1/3 [=6] , 26 / 7/3 [=78/7] y 8 / 1/3

Ing. Mary Ruelas Llerena Sesión 3


Laboratorio de Optimización de Operaciones Página 5

[=8]
y como el menor cociente positivo es 6, tenemos que la variable que sale es r (P3).
c. El elemento pivote, que ahora hay que hacer 1, es 1/3.
Operando de forma análoga a la anterior obtenemos la tabla:

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

Como en los elementos de la fila Z hay uno negativo, -1, significa que no hemos llegado todavía a
la solución óptima. Hay que repetir el proceso:

a. La variable que entra en la base es t (P5), por ser la variable que corresponde al coeficiente -1.
b. Para calcular la variable que sale, dividimos los términos de la última columna entre los
términos correspondientes de la nueva columna pivote: 6/(-2) [=-3] , 12/4 [=3], y 6/1 [=6]
y como el menor cociente positivo es 3, tenemos que la variable que sale es s (P4).
c. El elemento pivote, que ahora hay que hacer 1, es 4.
Obtenemos la tabla:

Tabla IV . Iteración nº 4
3 2 0 0 0
Base Cb P0 P1 P2 P3 P4 P5
-
P2 2 12 0 1 0 0
1/2
-
P5 0 3 0 0 0 1
7/4
-
P1 3 3 1 0 0 0
3/4
Z 33 0 0 5/4 0 0

Se observa que en la última fila todos los coeficientes son positivos, por lo tanto se cumple la
condición de parada, obteniendo la solución óptima.
La solución óptima viene dada por el valor de Z en la columna de los valores solución, en nuestro
caso: 33. En la misma columna se puede observar el punto donde se alcanza, observando las filas
correspondientes a las variables de decisión que han entrado en la base: (x,y) = (3,12)

EJEMPLO 2

Tabla 5.1. Tabla simplex inicial

Ing. Mary Ruelas Llerena Sesión 3


Laboratorio de Optimización de Operaciones Página 6

Paso inicial: Se introducen las variables de holgura. Se seleccionan las variables de decisión como las
variables no básicas iniciales, (iguales a cero) y las variables de holgura como las básicas iniciales. Esta
elección lleva a la tabla Simplex 5.1., donde la solución BF es (0,0,4,12,18).

Prueba de optimalidad: La solución BF es optima si y solo si todos los coeficientes en el renglón (0) son
no negativos. Si es así el proceso se detiene, de otra manera sigue a una iteración para obtener la siguiente
solución BF, que incluye cambiar una variables no básica en básica (paso 1), y viceversa (paso2) y después
despejar la nueva solución (paso3).

Iteración 1:
Paso 1: se determina la variable básica entrante, seleccionando la variable con el coeficiente negativo que
tiene el mayor valor absoluto en la ecuación (0). Se pone un recuadro alrededor de la columna debajo de
este coeficiente y se le da el nombre de columna pivote. En la tabla, el coeficiente más negativo es –5, de
manera que x2 debe convertirse en variable básica.

Paso 2: Se determina la variable básica que sale con la prueba del cociente mínimo.
• Elegir los coeficientes de la columna pivote que son estrictamente positivos.
• Dividir cada coeficiente entre el elemento del lado derecho en el mismo renglón.
• Identificar el renglón que tiene el menor de estas razones.
• La variable básica en ese renglón es la variable básica que sale, entonces se debe sustituir por la
variable básica entrante en la columna de la variable básica de la siguiente tabla.

Tabla 5.2. Aplicación de la prueba del cociente mínimo para determinar la variable básica que sale.

Luego poner un recuadro en este renglón que se llama renglón pivote. El número que se
encuentra entre los recuadros se llama número pivote.
La variable básica que sale es x4, y x2 sustituye a x4 en el renglón 2, como se indica en la tabla
5.3.

Tabla 5.3. En la parte superior de la tabla se indica el número pivote. La parte inferior
corresponde a la nueva tabla Simplex con x que sustituye a x .
2 4

Ing. Mary Ruelas Llerena Sesión 3


Laboratorio de Optimización de Operaciones Página 7

Paso 3: Se despeja la nueva solución BF mediante operaciones algebraicas elementales con renglones, para
construir una nueva tabla en la forma apropiada de eliminación gaussiana, abajo de la actual y después se
realiza la prueba de optimalidad

Las operaciones elementales con renglones que deben realizarse son:


1) Dividir el renglón pivote entre el número pivote. Usar este nuevo renglón pivote en los pasos 2 y
3.

2) Para los renglones (incluso el (0)), que tienen un coeficiente negativo en la columna pivote, se
suma a este renglón el producto del valor absoluto de este coeficiente por el nuevo renglón pivote.

3) Para los renglones que tienen un coeficiente positivo en la columna pivote, se resta de este renglón
el producto de este coeficiente por el nuevo renglón pivote.
En el ejemplo: debido a que x2 sustituye a x4 como variable básica, se necesita reproducir el patrón de la
primera tabla de coeficientes de la columna de x4 (0,0,1,0) en la columna de x2 en la segunda tabla
Simplex. Para comenzar, se divide el renglón pivote (renglón 2) entre el numero pivote (2), lo que da el
nuevo renglón 2 mostrado en la tabla 5.3. Después se suma al renglón (0) el nuevo renglón (2)
multiplicado por 5. Luego se resta del renglón (3) el nuevo renglón (2) multiplicado por 2. Estos cálculos
llevan a la nueva tabla Simplex que se muestra en la tabla 5.4.

Tabla 5.4. Tabla Simplex después de dividir el primer renglón pivote entre el primer número pivote
y luego de las operaciones con renglones.

Así, la nueva solución BF es (0,6,4,0,6), con Z = 30.

Prueba de optimalidad: Se debe verificar si la nueva BF es óptima. Como el nuevo renglón (0) todavía
tiene un coeficiente negativo (-3) para x1, la solución no es optima y se necesita por lo menos una iteración
mas.

Iteración 2: Se siguen las instrucciones de los pasos 1 y 2, se encuentra que x1 es la variable básica
entrante y x5 es la que sale.

Ing. Mary Ruelas Llerena Sesión 3


Laboratorio de Optimización de Operaciones Página 8

Tabla 5.4.: Pasos 1 y 2 de la Iteración 2.

Para el paso 3, se divide el renglón pivote (renglón 3) entre el numero pivote 3. Después, se suma al
renglón (0) el nuevo renglón 3 multiplicado por 3. Luego, se resta el nuevo renglón 3 del renglón 1. En la
tabla 5.5. se tiene ahora la nueva tabla Simplex.

Tabla 5.5. Tabla Simplex completa y la solución optima obtenida.

La nueva solución BF es (2,6,2,0,0) con Z = 36. Al hacer la prueba de optimalidad se encuentra que la
solución es optima, porque no hay coeficientes negativos en el renglón (0).

V
EJERCICIOS
Ejercicio Nº 1

MAX Z = 5X1 + 4X2


Sujeto a:
6X1 + 4X2 ≤ 24
X1 + 2X2 ≤ 6
X1 ≥ 0, X2 ≥ 0

Ing. Mary Ruelas Llerena Sesión 3


Laboratorio de Optimización de Operaciones Página 9

Ejercicio Nº 2

MAX Z= 2X1 + 6X2 + 4X3


ST
3X1 + 6X2 + 2X3 <= 40
1X1 + 4X2 <= 20
X1 , X2 , X3 >= 0

Ejercicio Nº 3

MAX Z= 12X1 + 10X2 + 14X3


ST
4X1 + 3X2 + X3 <= 240
6X1 + 2X2 + 5X3 <= 100
X1 , X2 , X3 >= 0

Ejercicio Nº 4

MAX Z= 2X1 + 1X2 + 3X3


ST
2X1 + 2X2 + 1X3 <= 100
5X1 + 4X2 <= 80
X2 + 2X3 <= 120
X1 , X2 , X3 >= 0

Ejercicio Nº 5

Una compañía manufacturera descontinuó la producción de cierta línea de productos no


redituable. Esto creó un exceso considerable en la capacidad de producción. La gerencia quiere
dedicar ésta capacidad a uno o más de tres productos; llámense productos 1, 2 y 3. En la siguiente
tabla se resume la capacidad disponible de cada máquina que puede limitar la producción:

Tipo de máquina Tiempo disponible (Horas)


Fresadora 500
Torno 350
Rectificadora 150

El número de horas – máquina que se quiere para cada producto es:

Tipo de Producto 1 Producto 2 Producto 3


máquina
Fresadora 9 3 5
Torno 5 4 0
Rectificadora 3 0 2

El departamento de ventas ha indicado que las ventas potenciales para los productos 1 y 2 exceden
la tasa máxima de producción y que las ventas potenciales del producto 3 son 20 unidades por
semana. La ganancia unitaria sería $50, $20 y $25 respectivamente, para los productos 1, 2 y 3. El
objetivo es determinar cuántos productos de cada tipo debe producir la compañía para maximizar
la ganancia

Ing. Mary Ruelas Llerena Sesión 3


Laboratorio de Optimización de Operaciones Página
10

VI
CUESTIONARIO
1. ¿Qué es el método Simplex?
2. Utilizando el Método Simplex, ¿Cómo se puede detectar que un problema de Programación Lineal
es no acotado?
3. ¿Qué es concepto de dualidad en el método Simplex?
4. ¿Qué es una iteración y cuál es su papel?
5. ¿Qué son precios sombra?

VII
BIBLIOGRAFIA Y REFERENCIAS

• Hamdy T. “Investigación de Operaciones” (7ª ed.) Pearson Education, México. (2004).


• Winston W. “Investigación de Operaciones, Aplicaciones y Algoritmos” (4ª ed.) Thomson, México
(2005).
• Lieberman G, Hillier F. “Introducción a la Investigación de Operaciones” (8ª ed.) McGraw - Hill,
México (2006).

Ing. Mary Ruelas Llerena Sesión 3

You might also like