Está en la página 1de 128

Tema 2.

Optimización Lineal Continua


Algoritmo del Simplex

Investigación Operativa
Universidad Rey Juan Carlos

Antonio Alonso Ayuso


antonio.alonso@urjc.es

. . . .... .... .... . . . . .


Contenidos
1 Introducción al Algoritmo del Simplex

2 Resultados Teóricos

3 Teoremas fundamentales

4 Algoritmo del simplex

5 Unicidad de la solución óptima

6 Fórmulas de cambio de base

7 Tabla del simplex


logoURJC

8 Búsqueda de una solución Básica Inicial .


.
.
.
.
. . . . .
. . . .
. . . .
. . . .
. . . .
. . . . .
.
.
.
.
.
.
.
.
.

Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 2 / 128
Algoritmos de resolución

Los métodos de resolución se basan en:


La región factible es un conjunto convexo: dados dos puntos, el
segmento que los une también pertenece al conjunto.
La función objetivo es lineal y, por tanto, cóncava y convexa.
Estas dos propiedades permiten asegurar:
Cualquier óptimo local es global

Clave
Reconoce la optimalidad de un punto utilizando
CONDICIONES DE OPTIMALIDAD LOCALES

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 3 / 128
Resolución del problema
Las dos alternativas más importantes son:
1 Algoritmo del simplex (Dantzig, 1949).

2 Métodos de punto interior (Karmarkar, 1986).

Consideremos el siguiente ejemplo:

−x1 + x2 = 2
z = mı́n −x1 − x2 ,
s.a −x1 + x2 ≤ 2, Óptimo z = 4
x1 + x2 ≤ 4,
5x1 + 3x2 ≤ 15, x1 + x2 = 4
x1 , x2 ≥ 0.

logoURJC
5x1 + 3x2 = 15
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 4 / 128
Resolución del problema
El primer método se mueve por la frontera de la región factible, hasta
llegar a un punto óptimo.
Se basa en un resultado básico:
Si el problema de programación lineal tiene solución, entonces se
alcanza al menos en un punto extremo

Óptimo z = 4

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 5 / 128
Resolución del problema
Los métodos de punto interior se mueven por el interior de la región
factible.
Utiliza técnicas de programación no lineal.
Se basa en el uso de funciones barrera que penalizan la violación de alguna
restricción.

Óptimo z = 4

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 6 / 128
Resolución del problema

Algoritmo del simplex Métodos de punto interior

Exponencial Polinomial

Rápido en problemas de gran-


des dimensiones

Muchas iteraciones rápidas Muy pocas iteraciones (lentas)

Arranque en caliente muy rápi- Arranque en caliente lento


do
logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 7 / 128
Algoritmo del simplex (Dantzig, 1949)

Procedimiento que permite moverse de un punto extremo a otro,


mejorando cada vez (o, por lo menos, no empeorando) el objetivo.

Detecta si la región factible es vacía o si la solución óptima es no acotada.

A pesar de que han aparecido otros algoritmos, sigue siendo el más


utilizado:
Hay implementaciones muy eficientes del algoritmo.
Proporciona mucha información sobre la estructura de la región
factible.
Si el número de variables (n) es muy superior al de restricciones (m),
el número de iteraciones oscila entre 23 m y 3m (n = 60 y m = 20,
30-60 iteraciones).

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 8 / 128
Algoritmo del simplex

A continuación se muestra un esquema del algoritmo del simplex.

Como se puede comprobar, el algoritmo tiene dos criterios de parada:


Se encuentra la solución óptima.
Se demuestra que la solución es no acotada.
La potencia de este algoritmo radica en que se basa en condiciones locales,
esto es, no es necesario saber qué ocurre con la función objetivo en
toda la región factible.

Simplemente sabiendo qué ocurre en el entorno del punto actual, es


posible saber si este punto es óptimo o no.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 9 / 128
Algoritmo del simplex

Punto extremo >Es factible?


>Hay redundancia algebraica?
Sol. Básica factible

Contraste de Solución óptima


Optimalidad FIN

Contraste de
Solución no acotada FIN
no acotación

Nuevo punto extremo


(cambio de base)

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 10 / 128
Algoritmo del simplex
Se mueve de punto extremo a punto extremo.
Sólo se mueve si mejora.
Selecciona los cambios más prometedores.

Ejemplo

máx 3x1 + 2x2 3x1 + 2x2 = 8

s.a −x1 + x2 ≤ 1,
x1 ≤ 2,
u (2, 1
z=
x1 + x2 ≤ 3,
x1 , x2 ≥ 0. u u
(0, 0), z = 0 (2, 0), z = 6

Punto inicial Iteración 1 Iteración 2 (fin)

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 11 / 128
Contenidos
1 Introducción al Algoritmo del Simplex

2 Resultados Teóricos

3 Teoremas fundamentales

4 Algoritmo del simplex

5 Unicidad de la solución óptima

6 Fórmulas de cambio de base

7 Tabla del simplex


logoURJC

8 Búsqueda de una solución Básica Inicial .


.
.
.
.
. . . . .
. . . .
. . . .
. . . .
. . . .
. . . . .
.
.
.
.
.
.
.
.
.

Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 12 / 128
Bases y Soluciones Básicas

Definición
Sea el problema

mı́n z =cT x,
s.a Ax = b,
x ≥ 0,

donde A = (a1 , . . . , am ) es una matriz m × n, (m < n), con rango igual a


I n tal que:
m. Sea B = (aj1 , . . . , ajm ) una base de A. Sea x un vector de R

x = (xB , 0).

donde xB = B−1 b. x se denomina Solución Básica de (LP).


logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 13 / 128
Bases y Soluciones Básicas

Observación
Si además, xB ≥ 0, x es una Solución Básica Factible.

Observación
Según esta definición, toda solución básica factible es un punto extremo
del poliedro definido por las restricciones.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 14 / 128
Ejemplo mı́n 3x1 − 5x2 + x3
s.a. x1 − x3 = 1
3x1 + 2x2 − 7x3 = 5
x1 , x2 , x3 ≥ 0
Los elementos de este problema son:
   
3 x1 ( ) ( )
1 1 0 −1
c = −5 , x = x2  , b = , A=
5 3 2 −7
1 x3

Una base de la matriz A es (hay otras):


( )
1 0
B=
3 2

Como sus columnas son linealmente independientes, siempre se puede


calcular su inversa: ( )
−1 1 0
logoURJC B =
− 23 12 . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 15 / 128
Ejemplo

La solución básica se obtiene fijando a 0 las variables de las columnas que


no están en la base (x3 ) y resolviendo el sistema de ecuaciones resultante.
( )( ) ( ) ( x1 )( ) ( )
1 0 −1 1 1 0 x1 1
Ax = b ⇐⇒ x2 = ⇐⇒ =
3 2 −7 5 3 2 x2 5
0

Resulta:
( ) ( )( ) ( )
−1 x1 1 0 1 1
BxB = b ⇐⇒ xB = B b ⇐⇒ = =
x2 − 32 1
2 5 1

La solución básica es x1 = 1, x2 = 1, x3 = 0.
x1 y x2 son variables básicas.
x3 es una variable no básica.
logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 16 / 128
Teorema Fundamental de la Programación Lineal

Teorema: Fundamental de la Programación Lineal


Sea el problema de programación lineal:

mı́n z = ct x
s.a. A x = b,
x ≥ 0,

I n es el vector de costes, b ∈ R
donde c ∈ R I m el vector de recursos,
A ∈ Mm×n la matriz de restricciones y x ∈ R I n el vector de variables.
Entonces:
1 Si admite una solución factible, admite una solución básica factible.
2 Si admite una solución óptima finita, admite una solución básica
óptima finita.
logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 17 / 128
Teorema Fundamental de la Programación Lineal
Demostración
Sin pérdida de generalidad, podemos suponer que A es de rango máximo
(en otro caso, se pueden eliminar las restricciones redundantes).
1 Sea x una solución factible del problema no necesariamente básica:

xT = (x1 , . . . , xk , 0, . . . , 0)

con k ≤ n y xi > 0, para i = 1, . . . , k.


Sean A1 = (a1 , . . . , ak ) la matriz definida por los k vectores columna
asociados a las variable no nulas de x; se tiene


k
Ax = xj aj = b.
j=1

logoURJC
Se pueden presentar dos situaciones distintas:
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 18 / 128
Teorema Fundamental de la Programación Lineal

Demostración (cont)
a) Los k vectores son linealmente independientes. En este caso k ≤ m y
por el teorema de la base, es posible encontrar m − k vectores
columna de la matriz A que junto con los k iniciales, formen una
base. Por tanto, x es una solución básica.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 19 / 128
Teorema Fundamental de la Programación Lineal

Demostración (cont)
b) Los k vectores son linealmente dependientes. Entonces, existen
escalares λi , i = 1, . . . , k no todos nulos tales que:


k
λj aj = 0. (1)
j=1

Se puede suponer que al menos un λj es positivo (en otro caso, basta


con multiplicarlos todos por −1). Sea r el índice tal que:
xr {x }
j
= mı́n .
λr λj >0 λj

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 20 / 128
Teorema Fundamental de la Programación Lineal

Demostración (cont)
b) Puesto que λr ̸= 0, podemos despejar ar en (2):

1 ∑
ar = − λj aj .
λr
j=1,k / j̸=r

Sustituyendo ar en el sistema inicial de restricciones,



aj xj = b,
j

resulta:
∑ xr ∑ ∑( xr )
aj xj − aj λj = xj − λj aj = b
λr λr
j̸=r j̸=r j̸=r
logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 21 / 128
Teorema Fundamental de la Programación Lineal

Demostración (cont)
b) Por la elección de r, el vector
( xr xr xr xr )
x1 − λ1 , . . . , xr−1 − λr−1 , xr+1 − λr+1 , . . . , xk − λk
λr λr λr λr
tiene k − 1 todas las componentes no negativas. Completando este
vector con 0 se obtiene una solución factible con k − 1 componentes
no nulas.
Si los k − 1 vectores son linealmente independientes, aplicamos el
primer caso, en otro caso, con un razonamiento similar se puede
obtener una nueva solución con sólo k − 2 variables no nulas. Así se
repite hasta que los vectores asociados a las variables no nulas sean
linealmente independientes.
logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 22 / 128
Teorema Fundamental de la Programación Lineal

Demostración (cont)
2 Para demostrar la segunda parte, sea x una solución óptima del
problema no necesariamente básica:

xT = (x1 , . . . , xk , 0, . . . , 0)

con k ≤ n y xi > 0, para i = 1, . . . , k. Sean A1 = (a1 , . . . , ak ) la


matriz definida por los k vectores columna asociados a las variable no
nulas de x.
a) Si los k vectores son linealmente independientes, la solución ya es
básica.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 23 / 128
Teorema Fundamental de la Programación Lineal
Demostración (cont)
b) Los k vectores son linealmente dependientes. Entonces, existen
escalares λi , i = 1, . . . , k no todos nulos tales que:


k
λj aj = 0. (2)
j=1

Sea λ = (λ1 , . . . , λk , 0, . . . , 0) y consideremos los vectores

x1 = x − ϵ1 λ, x2 = x + ϵ2 λ,

con ϵ1 , ϵ2 > 0 tales que x1 , x2 ≥ 0. Entonces:

Ax1 = A(x − ϵ1 λ) = Ax + ϵ1 Aλ = b − ϵ1 (a1 , . . . , an )λ = b

logoURJC y, por la misma razón Ax2 = b.


. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 24 / 128
Teorema Fundamental de la Programación Lineal

Demostración (cont)
b) Por tanto, ambos son puntos factibles. Por otro lado:

cT x ≤ cT x1 = c(x − ϵ1 λ) = cT x − ϵ1 cT λ,
cT x ≤ cT x2 = c(x + ϵ2 λ) = cT x + ϵ2 cT λ.

De donde ct λ = 0. Entonces, sea cual sea el valor de ϵ1 ó ϵ2 ,


mientras que x1 y x2 tengan su coordenadas no negativas, los puntos
x1 y x2 van a ser soluciones óptimas. Por tanto, tomando ϵ1 ó ϵ2 tales
que al menos una de las coordenadas de x no nula sea cero en x1 ó
x2 , tenemos una solución con sólo k − 1 variables no nulas. Así,
podemos ir reduciendo el número de variables no nulas hasta estar en
las condiciones del apartado anterior.
logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 25 / 128
Teorema Fundamental de la Programación Lineal

Corolario
Una solución factible es básica si y sólo si los vectores asociados a las
variables no nulas son linealmente independientes.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 26 / 128
Ejemplo

Sea el siguiente problema:

mı́n 3x1 + 2x2 + x3


s.a 3x1 + 2x2 + 2x3 = 8,
3x1 + 4x2 + x3 = 7,
x1 , x2 , x3 ≥ 0.

donde
   
3 ( ) ( ) x1
8 3 2 2
c = 2 b= A= x = x2 
7 3 4 1
1 x3

Las posibles bases de A son:

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 27 / 128
Ejemplo

( )
3 2
1 B= con:
3 4
( )
x
xB = 1 y xN = x3 = 0.
x2

Entonces:
( )( ) ( )
−1 1 4 −2 8 3
xB = B b= = ,
6 −3 3 7 − 12

que no es factible.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 28 / 128
Ejemplo

( )
3 2
2 B= con:
3 1
( )
x
xB = 1 y xN = x2 = 0.
x3

Entonces:
( )( ) ( )
1 1 −2 8 2
xB = B−1 b = − = .
3 −3 3 7 1

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 29 / 128
Ejemplo
( )
2 2
3 B= con:
4 1
( )
x
xB = 2 y xN = x1 = 0.
x3

Entonces:
( )( ) ( )
−1 1 1 −2 8 1
xB = B b=− = .
6 −4 2 7 3

Si evaluamos la función objetivo resulta 7 y 5 para la segunda y tercera


solución, respectivamente. Por tanto, la tercera es la solución óptima del
problema:
x1 = 0, x2 = 1, x3 = 3.
logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 30 / 128
Sistema explícito
Sea el problema

mı́n z =cT x,
s.a Ax ≤ b, (3)
x ≥ 0.

Sea B = (aj1 , . . . , ajm ) una base de A (por tanto, A = (B, N)) y sea
x = (xB , xN ) la solución básica que se obtiene anulando las variables
asociadas a las columnas que no están en la base:

x = (xB , 0).

Entonces, resulta:
−1
z = cT x = cT
BB b

y
logoURJC Ax = b ⇒ BxB = b ⇒ xB = B−1 b.
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 31 / 128
Sistema Explícito
Por otra parte, al ser B una base de RI m , todo vector de R
I m se puede poner
como combinación lineal de los vectores de B; en concreto, los vectores aj ,
j = m + 1, . . . , n:

aj = yij ai ⇐⇒ aj = Byj ∀j ∈ J , (4)
i∈I

donde:

I = conjunto de vectores en la base,


J =conjunto de vectores no básicos,
yj = vector de coordenadas de aj respecto de la base actual.

y, puesto que (4) es cierto para todo j ∈ J , matricialmente resulta la


siguiente expresión para las coordenadas de los vectores no básicos
respecto de B:
N = BY ⇒ Y = B−1 N.
logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 32 / 128
Sistema Explícito
Por otra parte, el sistema de restricciones original:

Ax = b

se verifica para toda solución factible:


( x )
B
(B, N) = b.
xN
Esto es:
xB + B−1 NxN = B−1 b,
y el sistema original de restricciones resulta:

xB + YxN = xB (5)

o, equivalentemente:

xi + yij xj = xi ∀i ∈ I. (6)
logoURJC
j∈J
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 33 / 128
Sistema Explícito
Este sistema se denomina sistema explícito y permite expresar el sistema
de restricciones original en función de cualquier solución básica factible.
Por otra parte:
z = cT T
B xB + cN xN , (7)
y, multiplicando (5) por cB resulta

cT T T
B xB + cB YxN = cB xB .

Restando (7) resulta:



(cj − cT T
B yj )xj = z − cB xB .
j∈J

Llamando zj = cTB yj , ∀j ∈ J , resulta:


∑ ∑
(cj − zj )xj = z − z ⇐⇒ z=z+ (cj − zj )xj . (8)
logoURJC
j∈J j∈J
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 34 / 128
Sistema Explícito

Observación
xB representa las componentes de una solución cualquiera que están
asociadas a B mientras que xB representa el valor que toma las variables
básicas asociadas a la base B.

Observación
Las cantidades cj − zj reciben el nombre de costes reducido, crj y se
interpretan como la variación que se produce en la función objetivo si la
variable no básica xj se introduce en la base con valor igual a 1.

Observación
La cantidad cT B xB se conoce como valor objetivo. Es el resultado de
sustituir la solución óptima en la función objetivo.
logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 35 / 128
Observaciones

Toda solución básica factible tiene asociada un punto extremo


de la región factible y viceversa.
Los puntos extremos son una forma analítica de representar los
vértices de la región factible.
Para ir de un vértice a otro vértice contiguo es suficiente con
cambiar un vector de la matriz B que define la solución básica
asociada a cada punto extremo.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 36 / 128
Ejemplo (cont): Cambio de base

Conseguir formulación canónica → conseguir que todas las


restricciones son de igualdad → añadir variables de holgura si es
necesario

máx 3x1 + 2x2 máx 3x1 + 2x2


s.a −x1 + x2 ≤ 1, s.a −x1 + x2 + x3 = 1,
x1 ≤ 2, ≡ x1 = 2, + x4
x1 + x2 ≤ 3, x1 + x2 + x5 = 3,
x1 , x2 ≥ 0. x1 , x2 , x3 , x4 , x5 ≥ 0.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 37 / 128
Ejemplo
máx 3x1 + 2x2
s.a −x1 + x2 + x3 = 1,
x1 + x4
= 2,
x1 + x2 + x5 = 3,
x1 , x2 , x3 , x4 , x5 ≥ 0.
Para este problema, el algoritmo del simplex encuentra la solución en dos
iteraciones. El siguiente gráfico muestra la relación entre los vértices que recorre
el algoritmo y su correspondiente solución básica.

u (2, 1), z = 8

u u
(0, 0), z = 0 (2, 0), z = 6

     
logoURJC 1 0 0 1 −1 0 1 −1 1
B = 0 1 0 B = 0 1 0 B = 0 1 0
. . . . . . . . . . . . . . . . . . . .
0 0 1 0 1 1 0 1 1
. . . . . . . . . . . . . . . . . . . .
Básicas: x3 , x4 , x5
Antonio Alonso-Ayuso Opt. Lineal Continua (versión
Básicas: x3 , x1 ,profesor)
x5 MEGI
Básicas: x3 , x(URJC) 38 / 128
1 , x2
Algoritmo del simplex
1. Se obtiene una solución básica factible (SBF) inicial. Hay dos
métodos:
1.1. Método de las dos fases.
1.2. Método de las penalizaciones (o de la gran M).
2. Desde la SBF actual se estudia si se puede obtener una SBF mejor
2.1. No se estudian otras bases, sólo la dirección.
2.2. Para cada dirección se calcula el coste reducido (cr), que indica la
variación en la función objetivo al moverse en esa dirección.
 
1 0 0
B = 0 1 0 
0 0 1
Básicas: x3 , x4 , x5
cr = 2

u No básicas: x1 , x2
(0, 0) cr = 3

z=0
logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 39 / 128
Algoritmo del simplex

2.3. Se selecciona el mejor coste reducido.


2.4. Se avanza en la dirección asociada a ese coste reducido, hasta
obtener el siguiente punto extremo.

 
1 −1 0
B = 0 1 0
0 1 1

Básicas: x3 , x1 , x5
cr = 2

u No básicas: x4 , x2
cr = −3
(2, 0)
z=6

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 40 / 128
Algoritmo del simplex
3. Al cambiar de solución básica (punto extremo), sólo cambia un
variable:
3.1. Una variable básica pasa a no básica (de ≥ 0 a = 0).
3.2. Una variable no básica pasa a básica (de = 0 a ≥ 0).
4. Dada una base, el coste reducido se puede asociar a la variable no
básica que entra en la base al hacer un cambio (al moverse al otro
punto extremo).
5. El coste reducido de la variable no básica es el valor de la función
objetivo si entra en la base con valor igual a 1.

 
1 0 0
B = 0 1 0
0 0 1
cr = 2 u
Básicas: x3 , x4 , x5

u u No básicas: x1 , x2
logoURJC cr = 3
(0, 0)
. . . . . . . . . . . . . . . . . . . .
z=0
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 41 / 128
Algoritmo del simplex
5.1. Puede ocurrir que al fijar esa variable a 1, la solución sea infactible.

máx 3x1 + 2x2


s.a −3x1 + 2x2 ≤ 1,
x1 ≤ 2,
x1 + x2 ≤ 3,
x1 , x2 ≥ 0.

 
1 0 0
B = 0 1 0
0 0 1
cr = 2 u
Básicas: x3 , x4 , x5

u u No básicas: x1 , x2
logoURJC (0, 0) cr = 3
El algoritmo calcula el punto exacto hasta el que puede llegar.
z=0 . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 42 / 128
Algoritmo del simplex
5.2. Puede ocurrir que al avanzar en ese dirección de mejora no encuentre
ningún punto.
máx 3x1 + 2x2
s.a x1 − x2 ≤ 1,
x1 + x2 ≥ 3,
x1 , x2 ≥ 0.

La solución es no acotada.
El óptimo es +∞
u u

cr = −0,5 cr = 2,5
u
(2, 1)
logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 43 / 128
Algoritmo del simplex

El algoritmo PARA cuando detecta que no hay solución, que la solución es


no acotada o cuando encuentra la solución óptima.
En el último caso, una solución es óptima si el coste reducido para las
variables no básicas es:
1 Positivo si el problema es de minimizar.

2 Negativo si el problema es de maximizar.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 44 / 128
Contenidos
1 Introducción al Algoritmo del Simplex

2 Resultados Teóricos

3 Teoremas fundamentales

4 Algoritmo del simplex

5 Unicidad de la solución óptima

6 Fórmulas de cambio de base

7 Tabla del simplex


logoURJC

8 Búsqueda de una solución Básica Inicial .


.
.
.
.
. . . . .
. . . .
. . . .
. . . .
. . . .
. . . . .
.
.
.
.
.
.
.
.
.

Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 45 / 128
Teorema Existencia Soluciones Óptimas Finitas

Teorema
Dada una Solución Básica Factible asociada a B, si para un k ∈ J se tiene
que crk < 0 y yk ≤ 0, entonces no existe solución óptima finita.

Demostración
Según el sistema explícito, tenemos que:

xB + YxN = xB .

A partir de la solución básica factible actual se puede construir una nueva


solución, utilizando para ello la expresión anterior. Esta nueva solución va
a ser tal que xj = 0, ∀j ∈ J , j ̸= k.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 46 / 128
Teorema Existencia Soluciones Óptimas Finitas
Demostración (cont)
Entonces, resulta:
x′B = xB − yk x′k .
Puesto que yk ≤ 0, los valores x′B son siempre positivos, para cualquier
valor positivo de x′k .
Esta nueva solución no es básica, ya que puede tener m + 1 componentes
no nulas:  −1 
B b − x′k yk
 0 
 
 ... 
 
x =

 ′


 xk 
 .. 
 . 
0
Pero es factible.
logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 47 / 128
Teorema Existencia Soluciones Óptimas Finitas

Demostración (cont)
Efectivamente:

Ax′ = [B, N]x′ = b − Bx′k yk + x′k ak = b − x′k ak + x′k ak = b.

Además:
z′ = z + crk x′k .
y tomando x′k tan grande como se quiera, el valor de z′ tiende a menos
infinito y la solución es no acotada.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 48 / 128
Teorema Existencia Soluciones Óptimas Finitas.
Observaciones
Recuérdese que yj = B−1 aj y que por el teorema de caracterización
de direcciones extremas, si yj ≤ 0, entonces hemos encontrado una
dirección extrema de la región factible, esto es, la región factible es no
acotada.  
−yj
 0 
 
 .. 
 . 
La dirección extrema viene dada por el vector: d =  
 1  donde el
 
 .. 
 . 
0
1 está colocado en la posición j-ésima.
Si, además, crj > 0, entonces la dirección extrema está en sentido de
logoURJC
crecimiento de la función objetivo.
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 49 / 128
Teorema del Cambio de Solución Básica

Teorema
Dada una Solución Básica factible asociada a B, si para un k ∈ J se tiene
que crk ≤ 0 y para algún i ∈ I es yik > 0, la solución básica asociada a B′ ,
donde B′ se obtiene introduciendo el vector ak y sacando aℓ de B de modo
que: {x }
xℓ i
= mı́n
yℓk i/yik >0 yik
es una nueva solución básica factible tal que z′ ≤ z.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 50 / 128
Teorema del Cambio de Solución Básica

Demostración
Veamos cuál es la solución básica asociada a la nueva base B′ :

B′ = {a1 , a2 , . . . , aℓ−1 , aℓ+1 , . . . , am , ak }.

Para ello, tomando xj = 0, ∀j ∈ J , j ̸= k, resulta:

x′i = xi − yik x′k , ∀i ∈ I.

Para que la nueva solución sea factible debe verificarse que todas sus
componentes sean no negativas:

x′i = xi − yik x′k ≥ 0, ∀i ∈ I.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 51 / 128
Teorema del Cambio de Solución Básica
Demostración (cont)
Si yik ≤ 0, entonces x′i ≥ 0.
Si yik > 0, dependiendo del valor asignado a x′k , xi puede ser negativo.
Para que esto no ocurra debe verificarse que:
{x } xℓ
i
x′k ≤ mı́n = .
i/yik >0 yik yℓk

Tomando
xℓ
x′k = > 0,
yℓk
la variable xℓ se anula y la nueva base resulta ser:

B′ = {a1 , a2 , . . . , aℓ−1 , aℓ+1 , . . . , am , ak }.

Al ser yℓk > 0, se puede garantizar que B′ es una base.


logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 52 / 128
Teorema del Cambio de Solución Básica

Demostración (cont)
Además:
xℓ
z′ = z + crk ≤ z.
yℓk
Si xℓ > 0, la nueva solución obtenida mejora a la solución anterior,
mientras que si xℓ = 0, se obtiene la misma solución (corresponde al
mismo punto extremo, que se puede expresar a partir de las dos bases B y
B′ ). En este caso se puede producir un ciclo.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 53 / 128
Teorema de la Solución Óptima

Teorema
Dada una solución Básica Factible asociada a B, si crj ≥ 0, ∀j ∈ J ,
entonces la solución es óptima.

Demostración
De (8) tenemos que ∑
z′ = z + crj x′j ,
j∈J

y puesto que crj ≥ 0 y x′j ≥ 0, ∀j ∈ J , entonces:

z′ ≥ z.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 54 / 128
Teorema de la Solución Óptima

Corolario
Dada una solución básica factible óptima, si se consideran las cantidades
crj ≥ 0 asociadas a j ∈ J , una solución factible distinta x′ será óptima si y
sólo si x′j > 0 implica que crj = 0.

Corolario
Dada una solución básica factible óptima, si crj > 0, ∀j ∈ J , la solución es
única.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 55 / 128
Contenidos
1 Introducción al Algoritmo del Simplex

2 Resultados Teóricos

3 Teoremas fundamentales

4 Algoritmo del simplex

5 Unicidad de la solución óptima

6 Fórmulas de cambio de base

7 Tabla del simplex


logoURJC

8 Búsqueda de una solución Básica Inicial .


.
.
.
.
. . . . .
. . . .
. . . .
. . . .
. . . .
. . . . .
.
.
.
.
.
.
.
.
.

Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 56 / 128
Algoritmo del Simplex

Sea el siguiente problema de Programación lineal en forma canónica

mı́n cT x,
s.a Ax = b,
x ≥ 0.

Una posible redacción del algoritmo es:

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 57 / 128
Algoritmo del Simplex

1 Determinar una base B, con solución Básica Factible inicial asociada,


xB = B−1 b, y determinar los conjuntos:

I: Índices de las columnas ai que están en B,


J : Resto de los índices.

2 Calcular la matriz Y = (yj )j∈J = (yij )i∈I, j∈J = B−1 N.


Hallar crj = cj − zj = cj − cT −1 T
B B aj = cj − cB yj , ∀j ∈ J .
3 Analizar los crj , para j ∈ J :
1 Si crj ≥ 0, ∀j ∈ J , la solución actual es óptima, PARAR.
2 Sea J1 ⊆ J tal que J1 = {j ∈ J | crj < 0}.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 58 / 128
Algoritmo del Simplex

4 Analizar los vectores yj , para j ∈ J1 .


1 Si ∃j ∈ J1 tal que yj ≤ 0, la solución del problema es no acotada,
PARAR.
2 En caso contrario, determinar k tal que:

crk = máx|crj | (criterio de entrada).


j∈J1

3 Determinar ℓ tal que:


xℓ {x }
i
= mı́n (criterio de salida).
yℓk i, yik >0 yik

5 Definir la nueva base B ← B \ {aℓ } ∪ {ak }, actualizar I y J , calcular


xB e ir al paso 2.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 59 / 128
Algoritmo del Simplex. Ejemplo

Sea el siguiente problema:

mı́n x1 − 3x2 − x3
s.a x1 + 4x2 + 3x3 = 12,
x1 + 2x2 − x3 = 4,
x1 , x2 , x3 ≥ 0.

donde
   
1 ( ) ( ) x1
12 1 4 3
c = −3 b= A= x = x2 
4 1 2 −1
−1 x3

Los pasos del simplex para resolver este problema son.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 60 / 128
Algoritmo del Simplex. Ejemplo

Paso 1: Seleccionar una Solución Básica Factible. Para x1 y x3


resulta: ( ) (1 )
3
1 3 −1 4 4
B= B = 1 1
1 −1 4 −4
y el valor de las variables básicas es:
( )
−1 6
xB = B b=
2

Entonces:

I ={1, 3}
J ={2}

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 61 / 128
Algoritmo del Simplex. Ejemplo

Paso 2: Calcular los vectores de coordenadas yj , ∀j ∈ J :


( 1 ) ( ) (5)
−1 − 4 − 34 4
y2 = B a2 = = 21
− 14 1
4 2 2

y cr2 resulta:
(5)
cr2 = c2 − z2 = c2 − cT
B y2 = −3 − (1, −1) 2
1 = −5
2

Paso 3: Como cr2 < 0, resulta J1 = {2}.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 62 / 128
Algoritmo del Simplex. Ejemplo

Paso 4: Como y2 /≤ 0, se aplica el criterio de entrada. Entre la


variable con mínimo crj . En este caso, k = 2.
Una vez seleccionada la variable que entra en la base, se aplica el
criterio de salida para determinar la variable que sale de la base:
xℓ { 6 2 } 12
= mı́n , = ,
yℓ2 5/2 1/2 5

y entonces ℓ = 1, es decir, sale la variable x1 de la base.


Paso 5: La nueva base es:

B′ = {a1 , a3 } \ {a1 } ∪ {a2 } = {a2 , a3 }.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 63 / 128
Algoritmo del Simplex. Ejemplo

Paso 1: La nueva base es:


( ) ( 1 3
)
4 3 −1 10 10
B= , B = 2 4 .
2 −1 10 − 10

y el valor de las variables básicas es:


( 12 )
xB = B−1 b = 5
4 ,
5

con

I ={2, 3},
J ={1}.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 64 / 128
Algoritmo del Simplex. Ejemplo

Paso 2: Calcular los vectores de coordenadas yj , ∀j ∈ J :


(1 3
)( ) ( 2 )
1
y1 = B−1 a1 = 10 2
10
4 = 5 .
10 − 10 1 − 15

y cr1 resulta:
( 2
)
cr1 = c1 − z1 = c1 − cT
B y1 = 1 − (−3, −1) 5 = 2.
− 15

Paso 3: Como cr1 ≥ 0, la solución es óptima. PARAR.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 65 / 128
Algoritmo del Simplex. Ejemplo 2

Sea el siguiente problema:

mı́n 3x1 − 5x2 + x3


s.a. x1 − x3 = 1
3x1 + 2x2 − 7x3 = 5
x1 , x2 x3 ≥ 0.

donde
   
3 ( ) ( ) x1
1 1 0 −1
c = −5 , b= , A= , x = x2  .
5 3 2 −7
1 x3

Los pasos del simplex para resolver este problema son.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 66 / 128
Algoritmo del Simplex. Ejemplo 2

Paso 1: Seleccionar una Solución Básica Factible. Para x1 y x2


resulta: ( ) ( )
1 0 −1 1 0
B= , B = .
3 2 − 23 12
y el valor de las variables básicas es:
( )
−1 1
xB = B b=
1

Entonces:

I ={1, 2},
J ={3}.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 67 / 128
Algoritmo del Simplex. Ejemplo 2

Paso 2: Calcular los vectores de coordenadas yj , ∀j ∈ J :


( )( ) ( )
−1 1 0 −1 −1
y3 = B a 3 = = ,
− 23 12 −7 −2

y cr3 resulta:
( )
−1
cr3 = c3 − cT
B y3 = 1 − (3, −5) = −6.
−2

Paso 3: Como cr3 < 0, resulta J1 = {3}.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 68 / 128
Algoritmo del Simplex. Ejemplo 2

Paso 4: Como y3 ≤ 0, la solución es no acotada. La dirección


extrema es:  
( −1
) ( ) 1
−B aj −y3
d= = 
= 2 .
ej e3
1

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 69 / 128
Ejemplo 3

min −3x1 − 2x2


s.a 2x1 + x2 ≤ 100
x1 + x2 ≤ 80
x1 ≤ 40
x1 , x2 ≥ 0

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 70 / 128
Ejemplo 4

max x1 + x2
s.a −2x1 + x2 ≤ 1
2x1 + 2x2 ≤ 5
x1 , x2 ≥ 0

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 71 / 128
Contenidos
1 Introducción al Algoritmo del Simplex

2 Resultados Teóricos

3 Teoremas fundamentales

4 Algoritmo del simplex

5 Unicidad de la solución óptima

6 Fórmulas de cambio de base

7 Tabla del simplex


logoURJC

8 Búsqueda de una solución Básica Inicial .


.
.
.
.
. . . . .
. . . .
. . . .
. . . .
. . . .
. . . . .
.
.
.
.
.
.
.
.
.

Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 72 / 128
Unicidad de la solución óptima

Según los resultados obtenidos hasta el momento si en una iteración


del algoritmo del simplex obtenemos crj ≥ 0,∀j ∈ J , entonces la
solución es óptima.

Además, tenemos una condición suficiente de unicidad: si los costes


reducidos de las variables básicas son estrictamente positivos,
entonces la solución actual es única.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 73 / 128
Unicidad de la solución óptima

Analicemos que ocurre cuando alguna variable básica tiene un coste


reducido nulo. Sea j0 el índice de una variable no básica tal que
crj0 = 0. Recordando el sistema explícito, tenemos que:

z=z+ crj xj
j∈J

Si anulamos todas la variables xj con j ∈ J \ {j0 }, resulta:

z = z + crj0 xj0

Si sobre esta solución realizamos una nueva iteración del algoritmo


del simplex, pivotando sobre la columna j0 , puede ocurrir que la
variable básica xℓ seleccionada para salir de la base sea igual a 0 o no:
logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 74 / 128
Unicidad de la solución óptima

1 Si xℓ = 0, la nueva solución obtenida toma los mismos valores. Por


tanto, la solución es la misma, aunque expresada en función de otra
base.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 75 / 128
Ejemplo

máx 2x1 + 3x2


s.a −2x1 + x2 ≤ 1,
x1 ≤ 2,
x1 + x2 ≤ 3,
x2 ≤ 2,
x1 , x2 ≥ 0.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 76 / 128
Ejemplo (cont)

3x1 + 2x2 = 8
(1, 2)
s

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 77 / 128
Ejemplo (cont)

El punto (1,2) se puede poner como intersección de la primera y tercera


restricción o como intersección de la primera y la cuarta restricción.

En ambos casos, las variables x1 = 1, x2 = 2 y xh2 = 1 son básicas.

En el primero, la variable xh3 es básica, mientras que en el segundo es xh4 .

. Por tanto, las bases en cada iteración son B = (a1 , a2 , ah2 , ah3 ) y
B = (a1 , a2 , ah2 , ah4 ).

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 78 / 128
Unicidad de la solución óptima

2 Si xℓ ̸= 0, la solución obtenida es distinta. Por tanto, hemos obtenido


una nueva solución básica óptima. Además, en este caso, también son
soluciones óptimas todas las posibles combinaciones lineales convexas
de estas dos soluciones.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 79 / 128
Ejemplo

máx x1 + x2
s.a −2x1 + x2 ≤ 1,
x1 ≤ 2,
x1 + x2 ≤ 3,
x1 , x2 ≥ 0.
Son solución todos los puntos de la forma:
( ) ( )
2 1
λ + (1 − λ) con λ ∈ [0, 1].
1 2

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 80 / 128
Ejemplo (cont)

x1 + x2 = 3

s (1, 2)

s (2, 1)

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 81 / 128
Contenidos
1 Introducción al Algoritmo del Simplex

2 Resultados Teóricos

3 Teoremas fundamentales

4 Algoritmo del simplex

5 Unicidad de la solución óptima

6 Fórmulas de cambio de base

7 Tabla del simplex


logoURJC

8 Búsqueda de una solución Básica Inicial .


.
.
.
.
. . . . .
. . . .
. . . .
. . . .
. . . .
. . . . .
.
.
.
.
.
.
.
.
.

Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 82 / 128
Fórmulas de cambio de base

1 En cada iteración del simplex es necesario calcular los nuevos


elementos referidos a la nueva base B′ (su inversa, el valor de las
variables, coordenadas, etc…).
2 La diferencia entre las bases de dos iteraciones consecutivas sólo es de
un vector: el elemento ℓ-ésimo es sustituido por el k-ésimo.
3 Los nuevos elementos que hay que calcular son B′ , x′B , y′ y
crj = (cj − zj )′ , ∀j ∈ J .
4 En esta sección veremos cómo hacerlo aprovechando la información
de que se dispone de la iteración anterior.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 83 / 128
Fórmulas de cambio de base. Ejemplo

Considérese uno de los ejemplos anteriores:

mı́n x1 − 3x2 − x3 ,
s.a. x1 + 4x2 + 3x3 = 12,
x1 + 2x2 − x3 = 4,
x1 , x2 x3 ≥ 0.

donde
   
1 ( ) ( ) x1
12 1 4 3
c = −3 b= A= x = x2 

4 1 2 −1
−1 x3

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 84 / 128
Fórmulas de cambio de base. Ejemplo

Los pasos del simplex para resolver este problema son.


Paso 1: Una solución básica factible inicial es x1 = 6, x2 = 0 y x3 = 2
con I = {1, 3} y J = {2}.
Paso 2: Los vectores de coordenadas yj , ∀j ∈ J son
( ) (5)
y12 −1
y2 = = B a2 = 21 ,
y32 2

y cr2 resulta:
cr2 = c2 − cT
B y2 = −5.
( ) ( ) ( ) ( )
y11 1 y 0
NOTA: y1 = = y y3 = 13 =
y31 0 y33 1

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 85 / 128
Fórmulas de cambio de base. Ejemplo

Paso 3: Como cr2 < 0, resulta J1 = {2}.


Paso 4: Como y2 /≤ 0, se aplica el criterio de entrada. Entra la
variable con mínimo crj . En este caso, k = 2.
Una vez seleccionada la variable que entra en la base, se aplica el
criterio de salida para determinar la variable que sale de la base:
xℓ { 6 2 } 12
= mı́n , = ,
yℓ2 5/2 1/2 5

y entonces ℓ = 1, es decir, sale la variable x1 de la base.

Candidata a entrar x2 → k = 2

Candidata a salir x1 → l = 1
logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 86 / 128
Fórmulas de cambio de base. Actualización de B

La diferencia entre las bases de dos iteraciones consecutivas sólo es de


un vector: el elemento ℓ-ésimo es sustituido por el k-ésimo.

B′ = {a1 , · · · , am } \ {al } ∪ {ak }

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 87 / 128
Fórmulas de cambio de base. Ejemplo (cont)

En el ejemplo anterior, la nueva base es:

B′ = {a1 , a3 } \ {a1 } ∪ {a2 } = {a2 , a3 }.

Es decir:
( ) ( )
1 3 ′ 4 3
B= →B =
1 −1 2 −1

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 88 / 128
Fórmulas de cambio de base. Actualización de x′B
Para el cálculo del valor de las nuevas variables, del sistema explícito se
obtiene que:
x′i = xi − yik x′k , ∀i ∈ I ′ \ {k}.
Y el valor asignado a xk era
{x } xℓ
i
x′k = mı́n = ,
yik >0 yik yℓk

de donde resulta:

yik
x′i =xi − xℓ , ∀i ∈ I ′ \ {k},
yℓk
xℓ
x′k = .
yℓk
logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 89 / 128
Fórmulas de cambio de base. Ejemplo (cont)

Paso 1: Para calcular el nuevo valor de las variables básicas, se


aplican las fórmulas de cambio de base:

y32 1/2 4
x′3 =x3 − x1 = 2 − 6= ,
y12 5/2 5
x1 6 12
x′2 = = = .
y12 5/2 5

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 90 / 128
Fórmulas de cambio de base. Actualización de y

Para las coordenadas de los vectores de A respecto de la nueva base


(y′ ):
Al ser B = {a1 , . . . , am } una base, se tiene que:

aj = y1j a1 + · · · + ymj am , ∀j ∈ J .

En particular, para el k-ésimo resulta:

ak = y1k a1 + · · · + yℓk aℓ + · · · + ymk am .

Por ser yℓk > 0, es posible despejar aℓ y resulta:


1 y1k yℓ−1 yℓ+1 ymk
aℓ = ak − a1 − · · · − aℓ−1 − aℓ+1 − · · · − am . (9)
yℓk yℓk yℓk yℓk yℓk

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 91 / 128
Fórmulas de cambio de base. Actualización de y

Por otra parte, las coordenadas de los vectores no básicos respecto de la


base B′ son:

aj = y′1j a1 + · · · + y′ℓ−1j aℓ−1 + y′ℓ+1j aℓ+1 + · · · + y′mj am , +y′kj ak ∀j ∈ J ′ .


(10)
En concreto, para el vector aℓ , igualando (9) y (10) resulta:

Actualización de yℓ :
yik
y′iℓ = − , ∀i ∈ I ′ \ {k},
yℓk
1
y′kℓ = ,
yℓk

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 92 / 128
Fórmulas de cambio de base. Ejemplo (cont)

Paso 2.1 : El vector de coordenadas y′1 es:

1 1 2
y′21 = = = ,
y12 5/2 5
1 1 1 1
y′31 =− y32 = 0 − =− .
y12 5/2 2 5

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 93 / 128
Fórmulas de cambio de base. Actualización de y
Para el resto de los elementos de J ′ teníamos:

aj = y1j a1 + · · · + yℓ−1j aℓ−1 + yℓj aℓ + yℓ+1j aℓ+1 + · · · + ymj am , ∀j ∈ J .

y sustituyendo (9) en esta expresión resulta:

aj = y1j a1 + · · · + yℓ−1j aℓ−1 +


( 1 y1k yℓ−1 yℓ+1 ymk )
yℓj ak − a1 − · · · − aℓ−1 − aℓ+1 − · · · − am
yℓk yℓk yℓk yℓk yℓk
+ yℓ+1j aℓ+1 + · · · + ymj am , ∀j ∈ J .

y reagrupando términos,
( y1k ) ( yℓ−1k ) ( yℓ+1k )
aj = y1j − a1 +· · ·+ yℓ−1j − aℓ−1 + yℓ+1j − aℓ+1 +· · · +
yℓk yℓk yℓk
( ymk ) yℓj
logoURJC ymj − am + ak
yℓk yℓk . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 94 / 128
Fórmulas de cambio de base. Actualización de y

Igualando término a término en esta expresión y (10) resulta:

Actualización yj /j ∈ J ′
yik
y′ij =yij − yℓj , ∀i ∈ I ′ \ {k},
yℓk
yℓj
y′kj = .
yℓk

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 95 / 128
Fórmulas de cambio de base. Actualización de crj
Por último, falta determinar el valor de los costes reducidos cr′j para la
nueva base:
∑ ∑
cr′j = cj − ci y′ij = cj − ci y′ij − ck y′kj =
i∈I ′ i∈I ′ \{k}
∑ ∑ yik yℓj
= cj − ci yij + ci yℓj − ck =
yℓk yℓk
i∈I ′ \{k} i∈I ′ \{k}

yℓj ( ∑ )
= cj − zj + cℓ yℓj + ci yik − ck =
yℓk ′ i∈I \{k}

yℓj ( ∑ ) yℓj
= crj − ck − ci yik − cℓ yℓk = crj − crk .
yℓk ′
yℓk
i∈I \{k}

yℓj
logoURJC cr′j = crj − crk j ∈ ∀J ′
yℓk . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 96 / 128
Fórmulas de cambio de base. Ejemplo (cont)

Paso 3: cr1 resulta:


y11 1
cr′1 = cr1 − cr2 = 0 − (−5) = 2.
y12 5/2

Como cr1 ≥ 0, la solución es óptima. PARAR.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 97 / 128
Fórmulas de cambio de base. Resumen
Vectores A
▶ yℓ :

yik 1
y′iℓ = − ∀i ∈ I ′ \ {k} y′kℓ =
yℓk yℓk
▶ yj j ̸= ℓ

yik yℓj
yij′ = yij − yℓj ∀i ∈ I ′ \ {k} y′kj = ,
yℓk yℓk
Variables:
yik
x′i =xi − xℓ , ∀i ∈ I ′ \ {k},
yℓk
xℓ
x′k = .
yℓk
Costes Reducidos
yℓj
cr′j = crj − j ∈ ∀J ′
logoURJC
crk
yℓk .
.
.
.
.
. . . . .
. . . .
. . . .
. . . .
. . . .
. . . . .
.
.
.
.
.
.
.
.
.

Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 98 / 128
Contenidos
1 Introducción al Algoritmo del Simplex

2 Resultados Teóricos

3 Teoremas fundamentales

4 Algoritmo del simplex

5 Unicidad de la solución óptima

6 Fórmulas de cambio de base

7 Tabla del simplex


logoURJC

8 Búsqueda de una solución Básica Inicial .


.
.
.
.
. . . . .
. . . .
. . . .
. . . .
. . . .
. . . . .
.
.
.
.
.
.
.
.
.

Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 99 / 128
Tabla del Simplex

Todos los cálculos anteriores se pueden simplificar si utilizamos una


representación adecuada de los datos necesarios para llevarlas a cabo
Esta representación puede ser la siguiente tabla:
c1 c2 . . . ci . . . cn
x1 x2 . . . xi . . . xn
ci1 xi1 yi1 1 yi1 2 . . . 0 . . . yi1 n xi1
ci2 xi2 yi2 1 yi2 2 . . . 0 . . . yi2 n xi2
.. .. .. .. .. ..
. . . . 0 . .
ci xi yi1 yi2 ... 1 ... yin xi
.. .. .. .. .. ..
. . . . 0 . .
cim xim yim 1 yim 2 ... 0 ... yim n xim
cr1 cr2 … 0 ... crn z
logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 100 / 128
Tabla del Simplex

En cada columna se representan los vectores de coordenadas de cada


variable respecto de la base asociada a la solución actual
El valor de las variables básicas en la última columna.
Por último, se incluye una fila con los costes reducidos de todas las
variables.
Nótese, por tanto, que esta tabla está representando el sistema
explícito.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 101 / 128
Tabla del Simplex

Si en esta tabla marcamos el elemento yℓk :


. . . cl . . . ck . . . cj ...
ci1 xi1 . . . 0 . . . yi1 k . . . yi1 j ... xi1
.. .. .. .. .. .. .. ..
. . . . . . . .
cs xs . . . 0 . . . ysk . . . ysj ... xs
.. .. .. .. .. .. .. ..
. . . . . . . .
cℓ xℓ ... 1 ... yℓk ... yℓj ... xℓ
.. .. .. .. .. .. .. ..
. . . . . . . .
... 0 … crk . . . crj . . . z
es inmediato comprobar como las fórmulas de cambio de base coinciden
con la realización de la siguiente operación:
logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 102 / 128
Tabla del Simplex. Cambio de base

Selección del elemento de fila ℓ y columna k ≡ yℓk . Este elemento


recibe el nombre de elemento pivote.
Dividir la fila ℓ por yℓk .
Sustituir el resto de los elementos de la matriz por:
yik yℓj
yij − .
yℓk

Como se puede ver, estas operaciones buscan obtener un nuevo sistema


explícito sumando a cada restricción la restricción asociada a la variable
que sale de la base de forma que el coeficiente de la nueva variable básica
sea 1 en la restricción asociada a ella y 0 en el resto.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 103 / 128
Tabla del Simplex. Ejemplo (cont)

Del problema anterior se habían obtenido en la SBF inicial:


( ) ( ) ( ) ( ) ( )
1 5/2 0 x 6
y1 = y2 = y3 = xB = 1 =
0 1/2 1 x3 2
De aquí se construye la tabla inicial:
c→ 1 -3 -1
cB ↓ xB ↓ x1 x2 x3 xB ↓
5
1 x1 1 2 0 6
1
-1 x3 0 2 1 2
crj → 0 -5 0 z=4

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 104 / 128
Tabla del Simplex. Ejemplo (cont)

Después de realizar las operaciones de cambio de base se obtiene la tabla:


c→ 1 -3 -1
cB ↓ xB ↓ x1 x2 x3 xB ↓
-3 x2 2/5 1 0 12/5
-1 x3 -1/5 0 1 4/5
crj → 2 0 0 z=-8

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 105 / 128
Contenidos
1 Introducción al Algoritmo del Simplex

2 Resultados Teóricos

3 Teoremas fundamentales

4 Algoritmo del simplex

5 Unicidad de la solución óptima

6 Fórmulas de cambio de base

7 Tabla del simplex


logoURJC

8 Búsqueda de una solución Básica Inicial .


.
.
.
.
. . . . .
. . . .
. . . .
. . . .
. . . .
. . . . .
.
.
.
.
.
.
.
.
.

Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 106 / 128
Solución Inicial

El algoritmo del simplex que acabamos de presentar que acabamos


de presentar se inicia con un primer paso en el que se supone
conocida una primera solución básica inicial.
Encontrar la solución inicial ni es trivial ni tiene porqué ser eficiente.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 107 / 128
Variables Artificiales
Sea el problema

mı́n z =cT x,
s.a Ax = b, (LP)
x ≥ 0,

Si tuviéramos una situación en la que la matriz identidad Im apareciera


como submatriz de la matriz A y el vector b tuviera sus componentes no
negativas, el problema estaría resuelto:

A = (Im , N)

La solución básica sería:

x = I−1
m b = b ≥ 0,
logoURJC
que es factible.
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 108 / 128
Variables Artificiales

Entonces, una primera aproximación al problema sería:


1 Garantizarse que todas las componentes de b sean no negativas (en
caso contrario, multiplicar la correspondiente restricción por −1).
2 Si, una vez que b ≥ 0, la matriz Im aparece como submatriz de A, ya
tenemos una solución básica inicial. Esta submatriz puede aparecer:
▶ En las restricciones originales del problema.
▶ Al añadir variables de holgura para conseguir la formulación estándar.
▶ En caso de que una vez introducidas las variables de holgura,
todavía no sea posible encontrar las columnas de Im en A, se
introducirán variables artificiales en el problema.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 109 / 128
Variables Artificiales. Ejemplo

Consideremos el siguiente problema:

mı́n 3x1 − 5x2 + x3


s.a. 2x1 − 3x2 + x3 ≤7
x1 + x2 + 3x3 ≥5
x1 + x3 =8
x1 , x2 x3 ≥ 0.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 110 / 128
Variables Artificiales. Ejemplo

Incluimos las variables de holgura y resulta:

mı́n 3x1 − 5x2 + x3


s.a. 2x1 − 3x2 + x3 + xh1 =7
x1 + x2 + 3x3 − xh2 = 5
x1 + x3 =8
x1 , x2 x3 ≥ 0.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 111 / 128
Variables Artificiales. Ejemplo

Faltan dos vectores para logra la matriz I3 :

mı́n 3x1 − 5x2 + x3


s.a. 2x1 − 3x2 + x3 + xh1 =7
x1 + x2 + 3x3 − xh2 + xa1 =5
x1 + x3 a
+ x2 = 8
x1 , x2 x3 ≥ 0.

Ahora tenemos I3 = (ah1 , aa1 , aa2 ) y la solución básica inicial es:

x = (x1 , x2 , x3 , xh1 , xh2 , xa1 , xa2 ) = (0, 0, 0, 7, 0, 5, 8).

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 112 / 128
Variables Artificiales

El sistema original ha cambiado de Ax = b a Ax + Ixa = b.


Las variables artificiales no tienen sentido en el problema original →
encontrar métodos que permitan eliminarlas del sistema.
Si logramos una solución inicial en la que ninguna variable
artificial sea básica, tendremos una solución básica factible para
el problema original.
Existen varios métodos que hacen esto. Aquí desarrollaremos los dos
siguientes:
▶ Método de las penalizaciones (o de la M grande).
▶ Método de las dos fases.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 113 / 128
Método de las penalizaciones

Este método consiste en penalizar las variables artificiales con un


coste muy alto en la función objetivo (si estamos maximizando,
será un coste muy bajo), de forma que cualquier solución que no
tenga variables artificiales en la base sea mejor que una solución con
variables artificiales básicas.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 114 / 128
Método de las penalizaciones

Si asignamos a cada variable artificial un coste M en la función objetivo, el


problema original:

mı́n z =cT x,
s.a Ax = b, (P)
x≥0

se transforma en:

mı́n z =cT x + MT xa ,
s.a Ax + Im xa = b, (P(M))
x ≥ 0.

donde MT = (M, . . . , M).


logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 115 / 128
Método de las penalizaciones

Vamos a ver la relación que existe entre ambos problemas:


Lema
x es una solución de (P) si y sólo si (x, 0) es solución de (P(M)).

Demostración
Trivial.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 116 / 128
Método de las penalizaciones

Lema
Si (x, xa ) es una solución óptima de (P(M)), con xa ̸= 0, entonces (P) no
tiene solución.

Demostración
Sea x′ una solución factible de (P); entonces, por el lema anterior, (x′ , 0)
es una solución factible de (P(M)) y

cT x′ + MT 0 ≤ cT x + MT xa ,

ya que M es arbitrariamente grande. Esto es un absurdo con la hipótesis


de optimalidad de (x, xa )

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 117 / 128
Método de las penalizaciones
Se pueden presentar las siguientes situaciones:

El problema (P(M)) tiene solución óptima finita:


▶ Caso 1.-: Todas las variables artificiales sean igual a 0: x∗ es una
solución óptima de (P).
▶ Caso 2.-: Alguna variable artificial tome un valor estrictamente
positivo: el problema (P) no tiene solución factible.

El problema (P(M)) tiene solución óptima no acotada.


▶ Caso 1.-: Si todas las variables artificiales son nulas, el problema (P)
tiene solución no acotada
▶ Caso 2.- Si alguna variable artificial toma un valor estrictamente
positivo y (P(M)) tiene solución no acotada, el problema original no
tiene solución.
logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 118 / 128
Método de las penalizaciones. Ejemplo

Dado el problema (P), se trata de encontrar una solución inicial a partir


del problema (P(M)):

mı́n 4x1 + x2 mı́n 4x1 + x2 + Mxa1 + Mxa2


s.a 3x1 + x2 = 3 s.a 3x1 + x2 + xa1 = 3
4x1 + 3x2 − x3 = 6 → 4x1 + 3x2 − x3 + xa2 = 6
x1 + 2x2 + x4 = 3 x1 + 2x2 + x4 = 3
x1 , x2 , x3 x1 , x2 , x3
min 4 1 0 0 M M
x1 x2 x3 x4 xa1 xa2
M xa1 3 1 0 0 1 0 3
M xa2 4 3 -1 0 0 1 6
0 x4 1 2 0 1 0 0 3
crj 4-7M 1-4M M 0 0 0 9M
logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 119 / 128
Método de las penalizaciones. Ejemplo

Después de dos iteraciones se obtiene la tabla:

min 4 1 0 0 M M
x1 x2 x3 x4 xa1 xa2
4 x1 1 0 1/5 0 3/5 0 3/5
1 x2 0 1 -3/5 0 -4/5 0 6/5
0 x4 0 0 1 1 1 1 0
crj 0 0 -1/5 0 M-8/5 M 4

Como ya se han eliminado las variables artificiales, hemos encontrado una


SBF inicial y podemos usarla en el problema original.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 120 / 128
Método de las penalizaciones. Ejemplo

Después de una iteración se obtiene la tabla:

min 4 1 0 0
x1 x2 x3 x4
4 x1 1 0 0 -1/5 3/5
1 x2 0 1 0 3/5 6/5
0 x3 0 0 1 1 0
crj 0 0 0 1/5 4

Solución óptima finita:

x1 = 3/5 ; x2 = 6/5 ; x3 = 0 ; x4 = 0 ; z∗ = 4

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 121 / 128
Método de las Dos Fases

Fase I.- El problema a resolver es:

mı́n z =1T xa ,
s.a Ax + Im xa = b, (P(M))
x ≥ 0.

▶ Si el problema tiene función objetivo 0 se pasa a la fase II. Esto


puede suceder si:
⋆ En la solución óptima todas las variables artificiales son no básicas
⋆ Las variables artificiales básicas tienen valor 0 → Eliminarlas todas →
Seleccionarlas una a una, y pivotar sobre cualquier elemento no nulo de
la fila de la variable artificial.
Si no es posible pivotar, la restricción asociada a esa variable es
algebraicamente redundante y se puede eliminar del sistema original.
logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 122 / 128
Método de las Dos Fases

Fase II.- El problema a resolver es:

mı́n z =cT x,
s.a Ax = b, (P)
x ≥ 0.

Tomando como solución inicial la obtenida en la fase I.

Nótese que la tabla inicial de la fase II será la última tabla obtenida


en la fase I eliminando todas las columnas de las variables artificiales
y calculando los costes reducidos con la función objetivo original.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 123 / 128
Método de las Dos Fases.

Se pueden presentar las siguientes situaciones:

El problema (P(M)) tiene valor objetivo 0:


▶ Caso 1.-: Todas las variables artificiales son no básicas: x∗ es una
solución óptima o no acotada de (P).
▶ Caso 1.-: Existen variables artificiales básicas pero tienen valor 0: se
eliminan las variables artificiales de la base y las ecuaciones
redundantes si las hubiera.
▶ Caso 3.-: Alguna variable artificial tome un valor estrictamente
positivo: el problema (P) no tiene solución factible.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 124 / 128
Método de las Dos Fases. Ejemplo
Tomamos de nuevo el problema (P), se trata de encontrar una solución
inicial a partir del problema (P(M)):

mı́n 4x1 + x2 mı́n xa1 + xa2


s.a 3x1 + x2 = 3 s.a 3x1 + x2 + xa1 = 3
4x1 + 3x2 − x3 = 6 → 4x1 + 3x2 − x3 + xa2 = 6
x1 + 2x2 + x4 = 3 x1 + 2x2 + x4 = 3
x1 , x2 , x3 x1 , x2 , x3

Fase I:
min 0 0 0 0 1 1
x1 x2 x3 x4 xa1 xa2
1 xa1 3 1 0 0 1 0 3
1 xa2 4 3 -1 0 0 1 6
0 x4 1 2 0 1 0 0 3
logoURJC crj -7 -4 1 0 0 0 9
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 125 / 128
Método de las dos fases. Ejemplo

Después de dos iteraciones se obtiene la tabla:

min 0 0 0 0 1 1
x1 x2 x3 x4 xa1 xa2
0 x1 1 0 1/5 0 3/5 0 3/5
0 x2 0 1 -3/5 0 -4/5 0 6/5
0 x4 0 0 1 1 1 1 0
crj 0 0 0 0 1 1 0

Como ya se han eliminado las variables artificiales, hemos encontrado una


SBF inicial y podemos usarla en la fase II.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 126 / 128
Método de las dos fases. Ejemplo
Fase II: Eliminamos las columnas de las variables artificiales, recuperamos
función objetivo y recalculamos costes reducidos:
min 4 1 0 0
x1 x2 x3 x4
4 x1 1 0 1/5 0 3/5
1 x2 0 1 -3/5 0 6/5
0 x4 0 0 1 1 0
crj 0 0 -1/5 0 4
Después de una iteración se obtiene de nuevo la tabla:
min 4 1 0 0
x1 x2 x3 x4
4 x1 1 0 0 -1/5 3/5
1 x2 0 1 0 3/5 6/5
0 x3 0 0 1 1 0
logoURJC
crj 0 0 0 1/5 4
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 127 / 128
Comparación

El método de las penalizaciones tiene como inconveniente que


determinar cuánto debe valer M y se pueden presentar errores de
computacionales de redondeo.

A favor de este método, de las penalizaciones, está el que utiliza la


función objetivo original durante todo el proceso. Esto hace que, a
diferencia del método de las dos fases, que la obvia hasta encontrar la
primera solución básica, el método de las penalizaciones obtenga
soluciones iniciales “buenas”.

logoURJC
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Antonio Alonso-Ayuso Opt. Lineal Continua (versión profesor) MEGI (URJC) 128 / 128

También podría gustarte