Está en la página 1de 52

TEMA 1: Programación lineal.

Método Símplex
PARTE 1
4º Grado en Comercio - 2023-2024

Leticia Lorenzo Picado, María Gómez Rúa

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 1/45
Índice

Programación lineal
• Representación de un problema de PL
• Soluciones básicas
• El algoritmo Símplex

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 2/45
Representación de un problema de PL

Como vimos con el ejemplo del cálculo gráfico del óptimo, se observa que
éste estará en uno de los puntos extremos (esquinas) de la región factible.
El método Símplex que estudiaremos en este tema se basa en este
resultado y por lo tanto su objetivo radica en localizar de forma eficiente el
óptimo entre dichas soluciones en las esquinas de nuestra región factible.
Para poder aplicar este método será necesario que nuestro problema se
encuentre en forma estándar.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 3/45
Representación de un problema de PL

Diremos que un problema de PL se encuentra en su forma estándar cuando


se verifica:
• Todas las restricciones han de ser de igualdad.
• Los parámetros a la derecha de las restricciones han de ser no
negativos.
• Todas las variables han de ser no negativas.
• La función objetivo puede ser de maximización o minimización. En
nuestro caso particular, aplicaremos el símplex para maximizar la
función objetivo.
¿Cómo conseguimos todos estos objetivos?

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 4/45
Representación de un problema de PL

Todas las restricciones han de ser de igualdad.

• Dada una restricción del tipo 4x1 + 3x2 − x3 ≤ 5, le sumaremos una


variable s1 ≥ 0 de holgura (slack) y tendremos:

4x1 + 3x2 − x3 + s1 = 5

Esta variable representa un exceso en los recursos.


variable menor o igual se usa variable de holgura> s

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 5/45
Representación de un problema de PL

Todas las restricciones han de ser de igualdad.

• Dada una restricción del tipo 4x1 + 3x2 − x3 ≤ 5, le sumaremos una


variable s1 ≥ 0 de holgura (slack) y tendremos:

4x1 + 3x2 − x3 + s1 = 5

Esta variable representa un exceso en los recursos.

• Dada una restricción del tipo x1 + 6x2 + 2x3 ≥ 10, le restaremos una
variable e1 ≥ 0 de exceso (excess) y tendremos:

x1 + 6x2 + 2x3 − e1 = 10

Esta variable representa el excedente (superávit) en que sobrepasamos


la restricción.
si tengo una restricción de mayor o igual restamos variable de exceso (e).
da cuanto te pasas de esa restricción.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 5/45
Representación de un problema de PL

Los parámetros a la derecha de las restricciones han de ser no negativos.


Cuando tenemos parámetros negativos, será necesario transformar
inicialmente dicha restricción multiplicando ambos miembros de la
desigualdad por −1.
¡Mucho OJO! que entonces cambiará el sentido de la desigualdad.
Una vez realizado dicho cambio de signo, procederíamos como
anteriormente para obtener la restricción en forma de igualdad sumando una
variable de holgura o de exceso según corresponda.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 6/45
Representación de un problema de PL

Los parámetros a la derecha de las restricciones han de ser no negativos.


Cuando tenemos parámetros negativos, será necesario transformar
inicialmente dicha restricción multiplicando ambos miembros de la
desigualdad por −1.
¡Mucho OJO! que entonces cambiará el sentido de la desigualdad.
Una vez realizado dicho cambio de signo, procederíamos como
anteriormente para obtener la restricción en forma de igualdad sumando una
variable de holgura o de exceso según corresponda.

1 Restricción inicial: 3x1 + 2x2 − x3 ≥ −5


no puede ser negativo, por lo que se multiplica
todo por -1. La desigualdad también cambia.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 6/45
Representación de un problema de PL

Los parámetros a la derecha de las restricciones han de ser no negativos.


Cuando tenemos parámetros negativos, será necesario transformar
inicialmente dicha restricción multiplicando ambos miembros de la
desigualdad por −1.
¡Mucho OJO! que entonces cambiará el sentido de la desigualdad.
Una vez realizado dicho cambio de signo, procederíamos como
anteriormente para obtener la restricción en forma de igualdad sumando una
variable de holgura o de exceso según corresponda.

1 Restricción inicial: 3x1 + 2x2 − x3 ≥ −5


2 Cambiamos de signo: −3x1 − 2x2 + x3 ≤ 5
como hay menor o igual se añade variable de holgura
para tener una igualdad

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 6/45
Representación de un problema de PL

Los parámetros a la derecha de las restricciones han de ser no negativos.


Cuando tenemos parámetros negativos, será necesario transformar
inicialmente dicha restricción multiplicando ambos miembros de la
desigualdad por −1.
¡Mucho OJO! que entonces cambiará el sentido de la desigualdad.
Una vez realizado dicho cambio de signo, procederíamos como
anteriormente para obtener la restricción en forma de igualdad sumando una
variable de holgura o de exceso según corresponda.

1 Restricción inicial: 3x1 + 2x2 − x3 ≥ −5


2 Cambiamos de signo: −3x1 − 2x2 + x3 ≤ 5
3 Añadimos la variable de holgura: −3x1 − 2x2 + x3 + s1 = 5

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 6/45
Representación de un problema de PL

Todas las variables han de ser no negativas.


En un problema de programación lineal pueden aparecer variables a las que
no le podemos asignar una restricción de signo (es decir, a priori pueden
tomar valores positivos o negativos, como por ejemplo, la rentabilidad
esperada de un activo). En esta situación podemos reemplazar las variables
xj , con la diferencia de dos variables no negativas del modo siguiente:

xj = xj+ − xj−
un activo financiero puede ser + o - pero para poder resolverlo por simplex
Donde xj+ ≥ 0 y xj− ≥ 0. tiene que ser estrictamente mayor o igual a 0

Hay que tener en cuenta que este cambio se realiza tanto en las
restricciones como en la función objetivo. Una vez resuelto el problema, con
los valores de xj+ y xj− , obtendríamos el valor de nuestra variable original.

todas las variables tienen que ser mayor o iguales de 0 pero hay ciertas variables que
no se puede saber el signo y entonces esa variable se debe dividir en dos para poder
aplicar el simplex.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 7/45
Representación de un problema de PL

El método Símplex se puede aplicar tanto a problemas de maximización


como de minimización, si bien algún paso varía en función del problema que
se pretende resolver. En nuestro caso aplicaremos los pasos destinados a
obtener el óptimo de un problema de maximización.

¿Cómo pasamos de un problema de minimización a uno de maximización?

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 8/45
Representación de un problema de PL

El método Símplex se puede aplicar tanto a problemas de maximización


como de minimización, si bien algún paso varía en función del problema que
se pretende resolver. En nuestro caso aplicaremos los pasos destinados a
obtener el óptimo de un problema de maximización.

¿Cómo pasamos de un problema de minimización a uno de maximización?

Simplemente será necesario cambiar de signo, o multiplicar por −1, nuestra


función objetivo.

Minimizar f (x1 , x2 , ..., xn ) ⇔ Maximizar − f (x1 , x2 , ..., xn )

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 8/45
Actividad

Representa el siguiente problema de PL en su forma estándar.

Minimizar z = 2x1 + 3x2 + 5x3


sujeto a

x1 + x2 − x3 ≥ −4 valor negativo hay que cambiar signo

−5x1 + 6x2 − 8x3 ≤ 5 se añade variable holgura

x1 + x2 + 3x3 = 8 esta bien


variable exceso
x1 , x3 ≥ 0
x2 no restringida no tiene signo, puede ser + o -

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 9/45
Actividad. Solución

1. Pasamos a un problema de maximización, cambiando el signo de la


función objetivo:
Minimizar z = 2x1 + 3x2 + 5x3 ⇔ Maximizar −z = −2x1 − 3x2 − 5x3

2. Para tener todas las variables no negativas consideramos la variable x2 sin


restricciones como diferencia de dos variables no negativas: x2 = x2+ − x2− y
hacemos dicho cambio en la función objetivo y las restricciones:
Maximizar −z = −2x1 − 3x2+ + 3x2− − 5x3
sujeto a

x1 + x2+ − x2− − x3 ≥ −4
−5x1 + 6x2+ − 6x2− − 8x3 ≤ 5
x1 + x2+ − x2− + 3x3 = 8
x1 , x3 , x2+ , x2− ≥ 0

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 10/45
Actividad. Solución

3. Procedemos ahora a modificar la primera restricción para tener todos los


parámetros no negativos. La multiplicamos por −1 y por tanto cambiará el
sentido de la desigualdad.

−x1 − x2+ + x2− + x3 ≤ 4

4. Añadimos las variables de exceso u holgura para obtener restricciones de


igualdad y finalmente el problema en la forma estándar es:
Maximizar −z = −2x1 − 3x2+ + 3x2− − 5x3
sujeto a

−x1 − x2+ + x2− + x3 + s1 = 4


−5x1 + 6x2+ − 6x2− − 8x3 + s2 = 5
x1 + x2+ − x2− + 3x3 = 8
x1 , x3 , x2+ , x2− , s1 , s2 ≥ 0

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 11/45
Solución de un problema de PL

Dado un problema de programación linealcuando


podemos
se mueve,
clasificarlo en una y solo
una de las situaciones siguientes: cada uno de los valores
de esos puntos da al moverse se
lugar al óptimo, todos encuentra en ese
los valores de la línea punto que es una
1 Existe al menos una son soluciones única solución
solución óptima. La
región factible es no
vacía y además
está acotada.
2 La región factible es no tiene límite
superior, no no hay solución al
no vacía, pero el está acotado, problema, es
problema es no beneficios imposible encontrar
infinitos un punto que verifique
acotado. las 3 restricciones a la
vez.
3 La región factible es
vacía.

Nos interesan los problemas enmarcados en el caso 1. Si en algún momento


nos encontramos en las situaciones 2 o 3, conviene reexaminar nuestro
modelo.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 12/45
Métodos para obtener una solución óptima

Vamos a estudiar el método Símplex y para aplicarlo ya sabemos que es


necesario que nuestro problema de PL se encuentre en su forma estándar
(maximización, restricciones de igualdad, variables y parámetros no
negativos). Se n el número de variables y m el de restricciones.
Supondremos que tenemos n ≥ m, es
decir, hay más variables que restricciones
n
en el modelo.
P
Maximizar z = cj xj = cx
j=1
Si la región factible es no vacía sabemos
sujeto a ciertas restricciones
que habrá una solución para nuestro
Ax = b problema. Deberíamos buscar entre todas
x = (x1 , ..., xn ) con xj ≥ 0 ellas la que nos proporciona el valor más
para todo j = 1, ..., n alto de nuestra función objetivo. Hacer
esto “a lo bruto” es tremendamente
complicado y trabajoso.

En lugar de examinar toda la región factible, nos llegará con estudiar lo que
se conoce como soluciones básicas.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 13/45
Soluciones básicas
el nº de variables no nulas es = rango de matriz que coincide con el numero de restricciones.
las soluciones básicas coincide con las esquinas

Dado el sistema de ecuaciones lineales dado por Ax = b, sabemos que:


• A es una matriz de dimensión m × n,
• x es un vector de dimensión n y
• b es otro vector de dimensión m.
Dado que m ≤ n, podemos suponer que el rango de A es m.
Definimos entonces una solución básica xB del sistema de ecuaciones lineal
Ax = b como una solución del sistema BxB = b, donde B es una matriz
formada por m columnas linealmente independientes de la matriz A.
Llamaremos a las variables en xB variables básicas, así mismo, las demás
variables y las columnas asociadas a éstas en A, las llamaremos no básicas:
xN . Esta división entre básicas y no básicas también la podemos aplicar al
vector de coeficientes de la función objetivo, distinguiendo entre cB y cN .

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 14/45
Soluciones básicas

Teorema 1
Dado un problema de PL en forma estándar con A una matriz m × n de
rango m se verifica:
• Si hay una solución factible, entonces hay una solución factible básica.
• Si hay una solución óptima factible, entonces hay una solución factible
básica óptima.
Gráficamente podemos caracterizar las soluciones factibles básicas.

Teorema 2 (Teorema fundamental de la PL)


Dado un problema de PL en forma estándar con A una matriz m × n de
rango m. Hay un único punto extremo en la región factible que corresponde a
una solución factible básica. Además, hay al menos una solución factible
básica correspondiente a cada punto extremo de la región factible.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 15/45
Soluciones básicas: ejemplo

Estos teoremas nos dicen que nos bastará con encontrar los puntos
extremos de nuestra región factible (soluciones factibles básicas) y evaluar
en ellos la función objetivo.
Dado el siguiente problema de PL, busca todas las posibles soluciones
básicas:

Maximizar
z = 2x1 − 4x2 + 5x3 − 6x4

sujeto a

x1 + 4x2 − 2x3 + 8x4 = 2


−x1 +2x2 +3x3 +4x4 = 1
x1 , x2 , x3 , x4 ≥ 0

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 16/45
Soluciones básicas: ejemplo

Estos teoremas nos dicen que nos bastará con encontrar los puntos
extremos de nuestra región factible (soluciones factibles básicas) y evaluar
en ellos la función objetivo.
Dado el siguiente problema de PL, busca todas las posibles soluciones
básicas:

Maximizar z = 2x1 − 4x2 + 5x3 − 6x4


Maximizar
z = 2x1 − 4x2 + 5x3 − 6x4 sujeto a
 
sujeto a   x1  
1 4 −2 8   x2  =
 2
x1 + 4x2 − 2x3 + 8x4 = 2 −1 2 3 4  x3  1
−x1 +2x2 +3x3 +4x4 = 1 x4
x1 , x2 , x3 , x4 ≥ 0
x1 , x2 , x3 , x4 ≥ 0

Nuestra matriz A tiene rango 2, por lo tanto en nuestras soluciones básicas


habrá dos variables no nulas y el resto tomarán el valor 0.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 16/45
Soluciones básicas: ejemplo

 
 x1
  
1 4 −2 8   x2  =
 2
Dada , consideramos como
−1 2 3 4  x3  1
x4
variables básicas x1 y x2 y resolvemos el siguiente sistema de ecuaciones:
     
1 4 x1 2 x1 + 4x2 = 2
B · xB = = =b ⇔
−1 2 x2 1 −x1 + 2x2 = 1

Obtenemos finalmente: x1 = 0 y x2 = 0.5. La solución básica completa sería


considerar dichos valores para x1 y x2 y x3 = x4 = 0.
Por lo tanto x = (0, 0.5, 0, 0), que verifica las restricciones (es factible), y
daría un valor z = −2 en la función objetivo.
Estos cálculos se realizarían para cualquier combinación de pares de
variables hasta encontrar la solución básica factible que maximiza la función
objetivo.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 17/45
Soluciones básicas: ejemplo

A continuación en la siguiente tabla están recogidas las diferentes soluciones


básicas factibles de este problema junto con el valor que proporcionan en la
función objetivo. No se incluye la combinación x2 y x4 porque la submatriz B
correspondiente no tiene rango 2 al ser las columnas linealmente
dependientes (una es el doble de la otra).

Variables Solución básica Función objetivo


x1 , x2 (0, 0.5, 0, 0) −2
x1 , x3 (8, 0, 3, 0) 31
x1 , x4 (0, 0, 0, 0.25) −1.5
x2 , x3 (0, 0.5, 0, 0) −2
x3 , x4 (0, 0, 0, 0.25) −1.5

La solución óptima del problema es la que aparece sombreada en la tabla ya


que es donde se obtiene el máximo valor de la función objetivo.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 18/45
Actividad

Comprueba que en el siguiente problema todas las soluciones básicas son


no factibles:
Maximizar z = x1 + x2

sujeto a

x1 + 2x2 ≤ 6
2x1 + x2 ≥ 16
x1 , x2 ≥ 0

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 19/45
El algoritmo Símplex

El algoritmo del Símplex fue desarrollado en 1947 por


el matemático americano George Dantzig. Se trata de
un procedimiento iterativo eficiente de optimización
para encontrar soluciones de problemas de PL
localizadas en los vértices de la región factible, las
soluciones básicas factibles. Por el Teorema
fundamental de la PL ya sabemos que el óptimo se
encontrará en dichos vértices.

La base de este método son dos condiciones fundamentales:


• La de optimalidad que permite ir mejorando la función objetivo.
• La de factibilidad que garantiza que partiendo de una solución factible
básica sólo se encontrarán soluciones factibles básicas.

La idea es, partiendo de una solución inicial básica factible, ir recorriendo


aquellas soluciones básicas adyacentes hasta alcanzar la óptima.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 20/45
Símplex: fundamentos matemáticos

Hemos dicho que para poder aplicar este algoritmo es necesario que el
problema se encuentre en su forma estándar.
Partiendo del siguiente ejemplo, veremos cuál es la idea detrás del algoritmo.

Maximizar
Maximizar z = (3, 4, −2, 0, 1)(x1 , x2 , x3 , x4 , x5 )T
z = 3x1 + 4x2 − 2x3 + x5
sujeto a
sujeto a 
x1

   
2 1 1 1 0  x2  5
2x1 + x2 + x3 + x4 = 5  0
 
0 1 3 0  x3 = 2 
x3 + 3x4 = 2  
1 0 0 1 1  x4  8
x1 + x4 + x5 = 8
x5
x1 , x2 , x3 , x4 , x5 ≥ 0
x1 , x2 , x3 , x4 , x5 ≥ 0

La matriz A es de orden 3 y vamos a buscar una solución básica inicial.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 21/45
Símplex: fundamentos matemáticos

Empezamos escogiendo una base seleccionando 3 variables, tantas como


restricciones tenemos. En este ejemplo seleccionamos x2 , x3 y x5 . Por lo
tanto, B será la matriz que se obtiene considerando las columnas de A
asociadas a dichas variables.
 
  x1  
2 1 1 1 0  x2 
  5
Ax =  0 0 1 3 0     2 =b
 x3  =
1 0 0 1 1  x4  8
x5
Para calcular la solución inicial, que llamaremos x ∗ , consideramos que las
variables no básicas son nulas, x1∗ = x4∗ = 0, y para obtener xB∗ = (x2∗ , x3∗ , x5∗ )
resolveremos el siguiente sistema:
  ∗   
1 1 0 x2 5
BxB∗ =  0 1 0   x3∗  =  2  = b
0 0 1 x5∗ 8
Necesitamos calcular la inversa de B y la solución sería xB∗ = B −1 b.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 22/45
Símplex: fundamentos matemáticos
   
1 1 0 1 −1 0
−1
Calculamos la inversa de B =  0 1 0 : B =  0 1 0 .
0 0 1 0 0 1
Por lo tanto:
    
1 −1 0 5 3
∗ −1
xB = B b =  0 1 0  2  =  2 
0 0 1 8 8
Nuestra primera solución básica factible es x ∗ = (0, 3, 2, 0, 8). Si la
sustituimos en la función objetivo: z0 = 3 · 0 + 4 · 3 − 2 · 2 + 8 = 16.

¡Pues tampoco ha sido tan complicado! ¡Ni tan mal!

Pero...

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 23/45
Símplex: fundamentos matemáticos
   
1 1 0 1 −1 0
−1
Calculamos la inversa de B =  0 1 0 : B =  0 1 0 .
0 0 1 0 0 1
Por lo tanto:
    
1 −1 0 5 3
∗ −1
xB = B b =  0 1 0  2  =  2 
0 0 1 8 8
Nuestra primera solución básica factible es x ∗ = (0, 3, 2, 0, 8). Si la
sustituimos en la función objetivo: z0 = 3 · 0 + 4 · 3 − 2 · 2 + 8 = 16.

¡Pues tampoco ha sido tan complicado! ¡Ni tan mal!

Pero... tenemos que comprobar si se trata de la solución óptima.


Para ello vamos a ver qué pasaría en nuestra función objetivo si
aumentamos esas variables no básicas x1 y x4 en una unidad. Calcularemos
lo que se llama su coste marginal o coste relativo.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 23/45
Símplex: fundamentos matemáticos

Para calcular dichos costes marginales, vamos a obtener lo que se conoce


como matriz de coordenadas básicas Y , que nos va a facilitar mucho los
cálculos y la interpretación de los resultados.
Nosotros partíamos del sistema Ax = b. Si multiplicamos ambos lados de la
igualdad por la matriz B −1 obtendríamos un sistema equivalente, que tendría
las mismas soluciones.
 
   x1
1 −1 0 2 1 1 1 0  x2 
B −1 Ax = Yx =  0
 
1 0  0 0 1 3 0   x3  =

0 0 1 1 0 0 1 1  x4 
x5
 
  x1     
2 1 0 −2 0  x2  1 −1 0 5 3
0   2  =  2  = B −1 b
 
= 0 0 1 3 0   x3  =
  0 1
1 0 0 1 1  x4  0 0 1 8 8
x5

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 24/45
Símplex: fundamentos matemáticos

Si nos fijamos en detalle en esta matriz, veremos que las columnas


asociadas a las variables básicas forman la matriz identidad:
 
  x1  
2 1 0 −2 0  x2  3
  2  = B −1 b
 
Yx =  0 0 1 3 0   x3  =
1 0 0 1 1  x4  8
x5

Así que podríamos reescribir esta expresión como:


       
x2 2 −2 3
 x3  +  0  x1 +  3  x4 =  2 
x5 1 1 8

Esto nos va a permitir escribir las variables básicas x2 , x3 y x5 en función de


las no básicas x1 y x4 .

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 25/45
Símplex: fundamentos matemáticos

Despejando de la expresión anterior obtenemos:

x2 = 3 − 2x1 + 2x4 x3 = 2 − 3x4 x5 = 8 − x1 − x4

Si sustituimos las variables básicas por estas expresiones en z tenemos que

z = 3x1 + 4x2 − 2x3 + x5


= 3x1 + 4(3 − 2x1 + 2x4 ) − 2(2 − 3x4 ) + (8 − x1 − x4 )
= 16 − 6x1 + 13x4 = z0 − 6x1 + 13x4

Por lo tanto:
• Si se incrementa x1 en una unidad, z decrece 6 unidades.
• Si se incrementa x4 en una unidad, z aumenta 13 unidades.

Como queremos maximizar z está claro que nuestra primera solución NO es


la óptima, ya que nos interesa incluir la variable x4 en la base. Pero,

¿Qué variable entre x2 , x3 y x5 ha de salir para que entre x4 ?

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 26/45
Símplex: fundamentos matemáticos
Criterio de salida. Para añadir x4 a la base, ha de salir una de las variables
que seleccionamos en un principio. Esto significa que pasaremos a lo que se
conoce como una solución adyacente.

Recordemos la relación que


Tenemos que tener en cuenta que:
había entre nuestra primera
• nuestra variable x1 seguirá siendo
base y las variables no básicas.
no básica y por lo tanto valdrá 0.
x2 = 3 − 2x1 + 2x4 • para que la solución sea factible,
x3 = 2 − 3x4 todas las variables han de ser
x5 = 8 − x1 − x4 mayores e iguales a 0.

Si tenemos esto en cuenta, podemos reescribir las anteriores ecuaciones:

x2 = 3 + 2x4 ≥ 0 ⇒ Se da siempre al ser x4 ≥ 0


2
x3 = 2 − 3x4 ≥ 0 ⇒ x4 ≤
3
x5 = 8 − x4 ≥ 0 ⇒ x4 ≤ 8

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 27/45
Símplex: fundamentos matemáticos

x2 = 3 + 2x4 ≥ 0 ⇒ Se da siempre al ser x4 ≥ 0


2
x3 = 2 − 3x4 ≥ 0 ⇒ x4 ≤
3
x5 = 8 − x4 ≥ 0 ⇒ x4 ≤ 8

2
Entonces entrará la variable x4 tomando el valor .
3
Sustituyendo en las expresiones anteriores, obtendremos el resto de la base
y los valores de dichas variables.
2 13 2 2 22
x2 = 3 + 2 · = x3 = 2 − 3 · =0 x5 = 8 − =
3 3 3 3 3
Por lo tanto será x3 la variable que abandone la base.
Nuestra nueva solución será xeB = 0, 13 , 0, 32 , 22

3 3
, pasando a valer la función
objetivo z = 16 + 13 · 32 = 74
3
.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 28/45
Tabla del Símplex
Todas estas cuentas se pueden trasladar a una tabla de la siguiente forma:
c c1 c2 c3 c4 c5
cB xB x1 x2 x3 x4 x5 RHS
c2 x2
c3 x3 Y = B −1 A B −1 b
c5 x5
c1′ c2′ c3′ c4′ c5′ z − z0
Donde:
• Fila c: coeficientes en z asociados a cada variable de decisión.
• Columna cB : coeficientes en z asociados a las variables básicas.
• Columna xB : variables básicas seleccionadas.
• Columna RHS (right hand side): recoge los valores a la derecha de las
restricciones. Se corresponde con la primera solución básica factible.
• Fila costes marginales cj′ = cj − cB Yj : para detectar si estamos en el
óptimo. Son nulos para las básicas.
• Celda z − z0 : recoge el valor de la función objetivo para dicha base.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 29/45
Tabla del Símplex

Dada la tabla inicial del Símplex.


c c1 c2 c3 c4 c5
cB xB x1 x2 x3 x4 x5 RHS
c2 x2
c3 x3 Y = B −1 A B −1 b
c5 x5
c1′ c2′ c3′ c4′ c5′ z − z0

• Si todos los costes marginales c ′ son menores o iguales que 0 no es


posible mejorar la solución y habríamos alcanzado el óptimo.
• Si hay algún coste marginal positivo, nos indica que es posible mejorar z
incluyendo dicha variable en la base. Como Criterio de entrada
seleccionamos la variable con el mayor coste marginal positivo.
• Criterio de salida: calculamos el cociente entre la solución inicial
(columna RHS) y la columna de Y asociada a la variable de entrada,
siempre y cuando el valor en dicha columna sea positivo. Saldrá de la
base la variable con el cociente más pequeño.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 30/45
Tabla del Símplex

Si retomamos el ejemplo que hemos usado para ver los fundamentos


matemáticos del Símplex, nuestra tabla será como sigue:

Maximizar
z = 3x1 + 4x2 − 2x3 + x5 c 3 4 -2 0 1
cB xB x1 x2 x3 x4 x5 RHS
sujeto a
4 x2 2 1 0 -2 0 3
2x1 + x2 + x3 + x4 = 5 −2 x3 0 0 1 3 0 2
x3 + 3x4 = 2 1 x5 1 0 0 1 1 8
x1 + x4 + x5 = 8 −6 0 0 13 0 z − 16
x1 , x2 , x3 , x4 , x5 ≥ 0
Los costes marginales se calculaban como
xB∗ = (x2∗ , x3∗ , x5∗ ) = (3, 2, 8) cj′ = cj − cB Yj , siendo esta última la columna

2 1 1 −2 0
 j-ésima de la matriz Y.
Y = 0 0 1 3 0  Como x4 tiene un coste marginal positivo hay
1 0 0 1 1 que incluirla en la base. Aplicamos ahora el
Función objetivo z0 = 16 criterio de salida.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 31/45
Tabla del Símplex

Vamos a calcular los cocientes de la solución inicial divididos entre los


valores de la columna de Y asociada a la variable que entra, siempre y
cuando estos valores sean estrictamente positivos. Saldrá la variable con
menor cociente.
c 3 4 -2 0 1
cB xB x1 x2 x3 x4 x5 RHS Razón
4 x2 2 1 0 -2 0 3 -
−2 x3 0 0 1 3 0 2 2/3
1 x5 1 0 0 1 1 8 8
−6 0 0 13 0 z − 16
Una vez identificadas ambas variables se procede a actualizar la matriz del
Símplex. Para ello llamaremos:
• Columna pivote: aquella asociada a la variable de entrada.
• Fila pivote: aquella asociada a la variable de salida.
• Elemento pivote: el valor en la confluencia de la fila y la columna pivote.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 32/45
El algoritmo Símplex: actualización
Llegados a este punto ya no sería necesario ni la fila ni la columna de los
coeficientes de la función objetivo.
xB x1 x2 x3 x4 x5 RHS Razón
x2 2 1 0 -2 0 3 -
x3 0 0 1 3 0 2 2/3
x5 1 0 0 0 1 8
−6 0 0 13 0 z − 16
Cambios:
1 Dividimos los elementos de la fila pivote por el elemento pivote.
2 Para el resto de los valores de la tabla calculamos:
valor nuevo = valor actual - valor col piv * valor fila piv / elem piv
xB x1 x2 x3 x4 x5 RHS Razón
x2 2 1 0 0 0 13/3
x4 0 0 1/3 1 0 2/3
x5 1 0 -1/3 0 1 22/3
−6 0 −13/3 0 0 z − 74/3

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 33/45
El algoritmo Símplex: actualización

Dada la nueva tabla actualizada:

xB x1 x2 x3 x4 x5 RHS Razón
x2 2 1 0 0 0 13/3
x4 0 0 1/3 1 0 2/3
x5 1 0 -1/3 0 1 22/3
−6 0 −13/3 0 0 z − 74/3

Hemos de comprobar si es posible mejorar la función objetivo. Es decir, ¿hay


costes marginales positivos? En este caso son todos negativos, por lo tanto
ya no es posible mejorar la función objetivo.

¡Hemos alcanzado el óptimo!

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 34/45
El algoritmo Símplex: ejemplo

Paso 0
Transformar nuestro problema a la forma estándar.

Maximizar Maximizar
z = 2x1 + 3x2 z = 2x1 + 3x2

sujeto a sujeto a

− x1 + x2 ≤ 5 − x1 + x2 + s1 = 5
x1 + 3x2 ≤ 35 x1 + 3x2 + s2 = 35
x1 ≤ 20 x1 + s3 = 20
x1 , x2 ≥ 0 x1 , x2 , s1 , s2 , s3 ≥ 0

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 35/45
El algoritmo Símplex: ejemplo

Paso 1
Obtener una solución básica factible inicial.

Maximizar
z = 2x1 + 3x2  
  x1  
sujeto a −1 1 1 0 0 
 x2 
 5
 1 3 0 1 0  s1  =  35 
− x1 + x2 + s1 = 5
 
1 0 0 0 1  s2  20
x1 + 3x2 + s2 = 35 s3
x1 + s3 = 20
x1 , x2 , s1 , s2 , s3 ≥ 0

En este caso, por simplicidad, podemos considerar como matriz B la


asociada a las columnas de las variables de holgura (s1 , s2 , s3 ). Se trata de
la matriz identidad, así que Y = B −1 A = A y la solución inicial básica factible
xB∗ = B −1 b = b = (5, 35, 20) o lo que es lo mismo x ∗ = (0, 0, 5, 35, 20) con
un valor inicial de la función objetivo z0 = 0.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 36/45
El algoritmo Símplex: etapas

Maximizar La solución inicial propuesta,


z = 2x1 + 3x2 (x1 , x2 , s1 , s2 , s3 ) = (0, 0, 5, 35, 20)
claramente no es óptima.
sujeto a
Se puede ver a simple vista que se
− x1 + x2 + s1 = 5 podrían aumentar las variables x1 y
x1 + 3x2 + s2 = 35 x2 , ambas con coeficientes
positivos en z, produciéndose un
x1 + s3 = 20
incremento en la función objetivo.
x1 , x2 , s1 , s2 , s3 ≥ 0

Una vez se dispone de la solución básica factible inicial procedemos a


elaborar la tabla del símplex.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 37/45
El algoritmo Símplex: ejemplo

Maximizar z = 2x1 + 3x2 sujeto a


 
  x1  
−1 1 1 0 0  x2 
  5
 1 3 0 1 0   s1  =
  35 
1 0 0 0 1  s2  20
s3
x1 , x2 , s1 , s2 , s3 ≥ 0

c 2 3 0 0 0
cB xB x1 x2 s1 s2 s3 RHS Razón
0 s1 -1 1 1 0 0 5 5
0 s2 1 3 0 1 0 35 35/3
0 s3 1 0 0 0 1 20 -
2 3 0 0 0 z-0

Al fijarnos en los costes marginales, vemos, como ya intuíamos, que es


posible mejorar z. Seleccionamos x2 para entrar en la base y calculamos los
cocientes para ver qué variable ha de salir.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 38/45
El algoritmo Símplex: ejemplo

Procedemos a actualizar los valores de la tabla actualizando la base.


xB x1 x2 s1 s2 s3 RHS Razón
s1 -1 1 1 0 0 5 5
s2 1 3 0 1 0 35 35/3
s3 1 0 0 0 1 20 -
2 3 0 0 0 z-0

La fila pivote se divide por el elemento pivote. Praa los demás valores: valor
nuevo = valor antiguo - fila pivote * columna pivote / elemento pivote.

xB x1 x2 s1 s2 s3 RHS Razón
x2 -1 1 1 0 0 5
s2 4 0 -3 1 0 20
s3 1 0 0 0 1 20
5 0 -3 0 0 z-15

Hay de nuevo un coste marginal positivo, por lo tanto es necesaria una nueva
iteración para mejorar la función objetivo.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 39/45
El algoritmo Símplex: ejemplo

Entra la variable x1 y saldrá la variable de menor cociente que es s2 .

xB x1 x2 s1 s2 s3 RHS Razón
x2 -1 1 1 0 0 5 -
s2 4 0 -3 1 0 20 5
s3 1 0 0 0 1 20 20
5 0 -3 0 0 z-15
Procedemos a actualizar la tabla del Símplex.

xB x1 x2 s1 s2 s3 RHS Razón
x2 0 1 1/4 1/4 0 10
x1 1 0 -3/4 1/4 0 5
s3 0 0 3/4 -1/4 1 15
0 0 3/4 -5/4 0 z-40

Hay de nuevo un coste marginal positivo, por lo tanto es necesaria una nueva
iteración para mejorar la función objetivo.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 40/45
El algoritmo Símplex: ejemplo

Entra la variable s1 y saldrá la variable de menor cociente que es s3 .

xB x1 x2 s1 s2 s3 RHS Razón
x2 0 1 1/4 1/4 0 10 40
x1 1 0 -3/4 1/4 0 5 -
s3 0 0 3/4 -1/4 1 15 20
0 0 3/4 -5/4 0 z-40

Procedemos a actualizar la tabla del Símplex.

xB x1 x2 s1 s2 s3 RHS Razón
x2 0 1 0 1/3 -1/3 5
x1 1 0 0 0 1 20
s1 0 0 1 -1/3 4/3 20
0 0 0 -1 -1 z-55

Finalmente hemos alcanzado el óptimo ya que todos los costes marginales


son negativos. No es posible mejorar la función objetivo. La solución es
(x1 , x2 , s1 , s2 , s3 ) = (20, 5, 20, 0, 0) dando lugar a z = 55.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 41/45
El algoritmo Símplex

Maximizar
z = 2x1 + 3x2 15

sujeto a 10

− x1 + x2 ≤ 5 (20, 5)
5
x1 + 3x2 ≤ 35
x1 ≤ 20 región factible
0
x1 , x2 ≥ 0 0 5 10 15 20 25 30
z = 55

En los sucesivos pasos del Símplex encontramos las siguientes soluciones:


Etapa (x1 , x2 , s1 , s2 , s3 ) (x1 , x2 ) función objetivo
0 (0, 0, 5, 35, 20) (0, 0) 0
1 (0, 5, 0, 20, 20) (0, 5) 15
2 (5, 10, 0, 0, 15) (5, 10) 40
3 (20, 5, 20, 0, 0) (20, 5) 55

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 42/45
Actividad

Se quiere fabricar cerveza artesanalmente para su venta. Además de agua y


levadura, necesitaremos tres tipos de cereales: maíz, lúpulo y malta.
Queremos fabricar dos tipos de cerveza que llamaremos C1 y C2 . La tabla
siguiente nos indica las proporciones de cereales que debemos emplear
para obtener cerveza de buena calidad de cada tipo, el precio de venta de
cada barril y la cantidad de cereal disponible.

Tipo de cerveza Maíz Lúpulo Malta Precio


C1 1 1 2 45
C2 2 1 1 38
Disponibilidad 80 30 40

1 Plantea esta situación como un problema de PL.


2 Resuelve el problema gráficamente.
3 Resuelve el problema usando el método Símplex.

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 43/45
Actividad: solución

Planteamiento del problema.


Llamamos x1 al número de cervezas del tipo 1 y x2 al número de cervezas
del tipo 2.
Función objetivo. Maximizar los beneficios que dependerán del precio de
venta de cada tipo de cerveza:

Maximizar z = 45x1 + 38x2

Sujeto a las restricciones de la disponibilidad de cada tipo de cereal.

x1 + 2x2 ≤ 80 disponibilidad de maíz


x1 + x2 ≤ 30 disponibilidad de lúpulo
2x1 + x2 ≤ 40 disponibilidad de malta
x1 , x2 ≥ 0 producción no negativa

2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 44/45
Actividad: solución
Resolución gráfica.

50

40

30
2x1 + x2 ≤ 40
20 (10, 20)

10 x1 + x2 ≤ 30 x1 + 2x2 ≤ 80

región factible
0
0 10 20 30 40 50 60 70 80 90
z = 1210 z = 1710 z = 2250

El óptimo z = 1210 se alcanza en el punto (10, 20) que implica preparar 10


unidades de la cerveza tipo 1 y 20 unidades de la cerveza tipo 2.
2023-2024 Leticia Lorenzo Picado © TEMA 1: Introducción a las técnicas de Investigación Operativa 45/45

También podría gustarte