Está en la página 1de 92

1/92

Ant.
M etodos Matem aticos de Especialidad
Ingeniera El ectrica
Programaci on Lineal
El m etodo SIMPLEX
1
Jos e Luis de la Fuente OConnor
jl.delafuente@iberdrola.es
jldelafuente@etsii.upm.es
Escuela T ecnica Superior de Ingenieros Industriales
Universidad Polit ecnica de Madrid
Clase_simplex_1_06.pdf
2/92

Ant.

Indice
Introducci on
Mejora de una soluci on b asica factible
Finalizaci on
El algoritmo SIMPLEX
Degeneraci on y ciclado
Soluci on b asica factible inicial
3/92

Ant.
Introducci on
Para resolver un problema de programaci on lineal,
min. c
T
x
s. a Ax = b
x 0,
se pueden estudiar los puntos extremos del politopo
P = {x R
n
: Ax = b, x 0}, donde A R
mn
y b R
n
, y buscar
aquel en el que la funci on objetivo c
T
x se hace mnima.
Analizar todos esos puntos extremos, dado el n umero posible de
ellos,
n!
m!(n m)!
para m y n grandes puede resultar prohibitivo.
4/92

Ant.
En 1947, George B. Dantzig, culminando el trabajo de un importante
equipo de matem aticos y economistas, desarroll o el denominado
M

ETODO SIMPLEX.
La idea que lo anima es la siguiente:
Primero, encontrar un punto extremo del politopo P, o soluci on
b asica factible;
luego, desplazarse desde ese punto extremo a otro, a lo largo de
alguna arista de P, mejorando (haga menor) la funci on objetivo.
Repetir el paso anterior cuantas veces sea necesario hasta que
se alcance la soluci on optima o la arista escogida lleve a .
5/92

Ant.
Mejora de una soluci on b asica
factible
Supongamos que:
Partimos de una soluci on b asica factible (punto extremo).
La matriz A R
mn
(m < n) es de rango completo y la regi on
factible no es el conjunto vaco.
En una soluci on b asica factible los m primeros componentes de x
son no negativos b asicos.
6/92

Ant.
Ordenando A de la forma A = [B, N], y, de la misma manera,
c
T
= [c
T
B
, c
T
N
], se tendr a que
Bx
B
+ Nx
N
= b,
de donde, despejando x
B
,
x
B
= B
1
b B
1
Nx
N
.
El valor de la funci on objetivo para esta soluci on es
z = [c
T
B
, c
T
N
]
_
x
B
x
N
_
= c
T
B
B
1
b + (c
T
N
c
T
B
B
1
N)x
N
.
El punto que dene esta soluci on est a en la intersecci on en R
n
de
los m hiperplanos correspondientes a las condiciones Ax = b y los
n m correspondientes a x
N
= 0 (no degenerada) .
En ese punto extremo del politopo P que dene la soluci on b asica
factible no degenerada conuyen n m aristas.
7/92

Ant.
Consideremos la matriz
M =
_
B N
0 I
_
,
cuyos vectores la son los vectores caractersticos de los n hiperplanos
que determinan la soluci on b asica. Como la matriz B es regular, M
tambi en es regular.
Las direcciones de esas aristas son las que determinan los n m
ultimos vectores columna de la inversa de la matriz M:
M
1
=
_
B
1
B
1
N
0 I
_
.
Moverse a lo largo de cada una de esas n m aristas equivale a
incrementar el valor de una variable no b asica manteniendo las
dem as jas a cero.
8/92

Ant.
Para mejorar una funci on objetivo desde un punto extremo, interesa
encontrar, de esas posibles n m aristas por las que moverse, una
que consiga hacer decrecer la funci on objetivo: direcci on de
descenso.
Para determinar esas direcciones se calculan los denominados costes
reducidos:
c
j
= c
j
c
T
B
B
1
a
j
= c
T

j
= c
T
M
1
e
j
, j > m.
Si c
j
< 0, el vector c y el
j
hacen angulo obtuso (> 90

) por lo que la
funci on objetivo decrece, al incrementar , movi endose a lo largo de
j
.
El coste reducido c
j
es la derivada direccional de z = c
T
x en la direcci on
j
.
El concepto coste reducido surge del hecho de que c
j
expresa el cambio que
supone en la funci on objetivo un incremento unitario en la variable no b asica x
j
manteniendo todas las dem as no b asicas jas.
Es decir,
z() = c
T
x() = c
T
x + c
T

j
= c
T
B
B
1
b +
_
c
j
c
T
B
B
1
a
j
_
.
9/92

Ant.
En la pr actica, para mejorar la funci on objetivo se escoge como
variable no b asica a incrementar aquella cuyo coste reducido sea
m as negativo, es decir, la que potencialmente decremente m as la
funci on objetivo.
La direcci on que se elige con este criterio no es la de m axima pendiente (recordemos).

Esta sera aquella


q
tal que
c
T

q
_
_

q
_
_
2
= mn.

j
j>m
_
c
T

j
_
_

j
_
_
2
_
,
es decir, aquella de las
j
que formase el angulo m as obtuso,
q
, con respecto al vector
c. Ese angulo sera

q
= arc cos
_
c
T

q
c
2

_
_

q
_
_
2
_
.
10/92

Ant.
OJO! Si la soluci on es b asica degenerada, como el valor de alguna
variable b asica es cero, puede ocurrir que en alguna direcci on cualquier
desplazamiento haga que
x() = x +
q
viole la factibilidad del problema.
Esto ocurre pues en una soluci on b asica degenerada conuyen m as
de n hiperplanos.
P
d
1
d
2
x
1
x
2
d
1
es una direcci on de movimiento factible; d
2
no.
11/92

Ant.
Ejemplo
Consideremos el programa lineal:
min. x
1
+ x
2
s. a x
1
+ 2x
2
4
x
2
1
x
1
, x
2
0.
A nadamos las variables de holgura x
3
y x
4
para transformarlo en forma
est andar:
min. x
1
+ x
2
s. a x
1
+ 2x
2
+ x
3
= 4
x
2
+ x
4
= 1
x
1
, x
2
, x
3
, x
4
0.
12/92

Ant.
La matriz A es
A = [a
1
, a
2
, a
3
, a
4
] =
_
1 2 1 0
0 1 0 1
_
.
Consideremos B = [a
1
, a
2
]:
x
B
=
_
x
1
x
2
_
= B
1
b =
_
1 2
0 1
_
1
_
4
1
_
=
_
1 2
0 1
_ _
4
1
_
=
_
2
1
_
;
x
N
=
_
x
3
x
4
_
=
_
0
0
_
.
13/92

Ant.
La soluci on b asica factible que estamos considerando se puede ver en
la gura.
x
1
x
2
P
c
c
d
1
d
2

4
0

0
1

0
2

2
1

14/92

Ant.
Los costes reducidos de las variables no b asicas son
c
3
= c
3
c
T
B
B
1
a
3
= 0 [1, 1]
_
1 2
0 1
_ _
1
0
_
= 1
y
c
4
= c
3
c
T
B
B
1
a
4
= 0 [1, 1]
_
1 2
0 1
_ _
0
1
_
= 1.
La funci on objetivo decrece siguiendo la direcci on
3
(d
2
en la gura):
incrementando x
3
. La direcci on
3
es
M
1
e
3
=
_

_
1 2 1 2
0 1 0 1
0 0 1 0
0 0 0 1
_

_
_

_
0
0
1
0
_

_
=
_

_
1
0
1
0
_

_
.
15/92

Ant.
Las variables b asicas se deben mover de la forma
x
B
= B
1
b B
1
a
3
;
es decir, en la direcci on
d
2
= B
1
a
3
=
_
1 2
0 1
_ _
1
0
_
=
_
1
0
_
u
16/92

Ant.
Los costes reducidos de las variables b asicas son cero y los de las
variables no b asicas se pueden calcular obteniendo en primer lugar el
vector de multiplicadores simplex,
T
= c
T
B
B
1
, y luego asignar
precio (price out) a las columnas no b asicas; es decir, calcular
c
j
= c
j

T
a
j
, j > m.
Toda esta la terminologa se deriva de la interpretaci on
esencialmente econ omica de los componentes del vector como
multiplicadores de Lagrange y como precios o valores de
equilibrio en el optimo.
17/92

Ant.
Una vez elegida la variable no b asica x
q
que saldr a de la base,
1
la
siguiente cuesti on a resolver en el m etodo simplex es: cu anto
moverse en esa direcci on?
La respuesta la dar a aquella variable b asica que antes llegue a su
lmite, es decir, a cero, y bloquee el posible desplazamiento en la
direcci on escogida.
Si se hace
y = B
1
a
q
y en la direcci on
q
se avanza una cantidad , amplitud de paso,
de las expresiones de x() y x
B
() se deduce que se
mantendr a la factibilidad del problema,
x() 0
si y s olo si x
B
y 0 y 0.
1
Direcci on
q
a lo largo de la cual se mejora la funci on objetivo
18/92

Ant.
Si y tiene positivo alguno de sus componentes, el paso m as
amplio que se puede dar en la direcci on
q
, manteniendo la
factibilidad del problema, ser a el que determine el valor m aximo
en que se puedan modicar las variables b asicas hasta que una
de ellas llegue a cero:
Si las variables b asicas se modican seg un
x
B
= B
1
b y,
o, desarrollando,
_

_
x
B
1
x
B
2
.
.
.
x
B
m
_

_
=
_

b
1

b
2
.
.
.

b
m
_

_
y
1
y
2
.
.
.
y
m
_

_
,
donde

b = B
1
b, ese valor m aximo de movimiento,
vendr a dado por
= x
q
= mn.
_

b
i
y
i
: y
i
> 0, 1 i m
_
=
x
B
p
y
p
.
19/92

Ant.
El valor de la variable no b asica x
q
se ver a incrementado despu es de
este paso desde cero a x
q
, pasando a ser b asica en detrimento de la
variable x
B
p
que pasar a a ser no b asica.
Teorema 1 Si c
q
es negativo y el vector y = B
1
a
q
es no positivo, el
programa lineal
min. c
T
x
s. a Ax = b
x 0
no est a acotado: x() es factible para todo 0 y z(x()) cuando
. En este caso d =
q
es una direcci on con c
T
d = c
q
< 0.
Para completar una iteraci on del m etodo simplex lo que resta por
hacer es reemplazar el vector a
p
por el a
q
en la base, es decir, hacer

B = B + (a
q
a
p
)e
T
p
.
quedando

B = [a
B
1
, a
B
2
, . . . , a
B
p1
, a
q
, a
B
p+1
, . . . , a
B
m
].
20/92

Ant.

Indice
Introducci on
Mejora de una soluci on b asica factible
Finalizaci on
El algoritmo SIMPLEX
Degeneraci on y ciclado
Soluci on b asica factible inicial
21/92

Ant.
Finalizaci on
Soluci on optima, soluci on no acotada y soluciones
optimas alternativas
Teorema 2 Una soluci on b asica factible es una soluci on optima del progra-
ma lineal
min. c
T
x
s. a Ax = b
x 0,
si todos los costes reducidos (relativos a la base dada) son no negativos.
En el caso no degenerado, el recproco de este teorema tambi en es
cierto.
22/92

Ant.
En el caso degenerado, sin embargo, una soluci on b asica factible
puede ser optima aun en el caso de que algunos de los costes
reducidos sean negativos, pues las direcciones de movimiento
asociadas a esas variables no b asicas pueden no ser factibles: en un
punto x donde x
j
= 0, si el componente j de esa direcci on es negativo.
Corolario 1 Una soluci on b asica factible x es el unico optimo del programa
lineal
min. c
T
x
s. a Ax = b
x 0,
si los costes reducidos de las variables no b asicas son estrictamente positivos.
23/92

Ant.
Corolario 2 Soluciones optimas alternativas
Si x es una soluci on b asica factible optima y los costes reducidos de las
variables no b asicas c
1
= c
2
= = c
k
= 0, cualquier punto y P de la
forma
y = x +
k

i=1
y
i

i
,
es tambi en optimo.
Si una soluci on b asica factible es optima y degenerada, y los costes
reducidos correspondientes a algunas de las variables no b asicas son
cero, del ultimo corolario no se deduce que la soluci on optima sea
m ultiple.
Esto es as pues en el caso degenerado x puede ser el unico punto
en P expresable en la forma enunciada en el corolario, por ser todas
las direcciones
i
no factibles.
24/92

Ant.

Indice
Introducci on
Mejora de una soluci on b asica factible
Finalizaci on
El algoritmo SIMPLEX
Degeneraci on y ciclado
Soluci on b asica factible inicial
25/92

Ant.
El Algoritmo SIMPLEX
El algoritmo simplex para resolver
min. c
T
x
s. a Ax = b
x 0
inicia su actuaci on desde una soluci on b asica factible x
B
correspondiente a B = [a
j
1
, a
j
2
, . . . , a
j
m
].
El conjunto B = {j
1
, . . . , j
m
} es el de ndices de las variables b asicas;
x
j
i
designa la variable b asica i- esima y N el conjunto de ndices de las
variables no b asicas.
La forma en que se presenta el algoritmo en la tabla es la que se
conoce habitualmente en la literatura como simplex revisado.
26/92

Ant.
Paso 1 Asignaci on de precios. Comprobaci on de optimo.
(a) Calcular los multiplicadores simplex resolviendo el sistema B
T
= c
B
.
(b) Calcular los costes reducidos de las variables no b asicas, c
j
= c
j

T
a
j
, para todo j N.
(c) Comprobar que se ha llegado al optimo: si c
j
0 para todo j N, PARAR: la soluci on es
optima.
Paso 2 Determinar columna de pivotaci on.
(a) Determinar la variable no b asica x
q
que debe entrar en la base (encontrar una direcci on de
descenso): escoger q N tal que c
q
= mn.
jN
{ c
j
< 0}.
(b) Resolver
By = a
q
.
Si y 0, PARAR; hay un rayo factible de soluciones a lo largo del cual c
T
x . Si no, seguir.
Paso 3 Determinar la de pivotaci on. An alisis de Ratios.
Determinar la variable b asica x
j
p
que sale de la base: calcular
=
x
j
p
y
p
= mn.
1im
_
x
j
i
y
i
: y
i
> 0
_
.
Paso 4 Pivotaci on.
Adaptar la soluci on, la matriz B y las estructuras de datos. Hacer:
x
q
= x
j
p
/y
p
x
j
i
x
j
i
y
i
, 1 i m
B B + (a
q
a
j
p
)e
T
p
B B {q}\{j
p
}
N N {j
p
}\{q}, e ir al paso 1.
Algoritmo Simplex revisado
27/92

Ant.
En Matlab.
function [sol,fobj,pi] = ProgLineal(c,A,b,eps1,bfs)
% Resuelve min. cx sujeto a Ax <= b & x >= 0
% B_indices vector de columnas de A en la base = B
% N_indices vector de columnas de A fuera de la base = N
[m n] = size(A);
B_indices = find(bfs);
N_indices = find(ones(1,n)-abs(sign(bfs)));
iters=0;
while 1==1 % Itera Simplex
iters=iters+1;
Binv = inv(A(:,B_indices)); % calculo de B-1
d = Binv
*
b; % d=B-1
*
b vector solucion actual
% Costes reducidos: c_tilde=c_N-c_B
*
B-1
*
N
c_tilde = zeros(1,n);
pi=c(:,B_indices)
*
Binv; % Multiplicadores simplex
c_tilde(:,N_indices)=c(:,N_indices)-pi
*
A(:,N_indices);
% Coste reducido mas negativo, j; entra variable j
[cj j]=min(c_tilde); % Regla de Bland implcitamente
if cj >= -eps1 % si todos cj >= 0, optimo
sol = zeros(n,1);
sol(B_indices,:) = d;
fobj=c(:,B_indices)
*
sol(B_indices,:);
return;
end;
% Variable a salir de B:mn. d(i)/w(i), cuando w(i)>0; sale i
y = Binv
*
A(:,j); % y = B-1
*
a[j]
mn=inf; i=0;
zz = find(y>eps1); if isempty(zz) error(Problema no acotado.); end
[yy,ii] = min(d(zz)./y(zz));
i = zz(ii); % Regla de Bland implcita
% Adaptacion estructura de datos
k = B_indices(i); B_indices(i) = j; N_indices(j==N_indices) = k;
end
28/92

Ant.
Ejemplo 1
Resolvamos el problema de programaci on lineal:
min. x
1
3x
2
s. a 2x
1
+ 3x
2
6
x
1
+ x
2
1
x
1
, x
2
0.
Introduzcamos las variables de holgura x
3
y x
4
; resulta:
min. x
1
3x
2
s. a 2x
1
+ 3x
2
+ x
3
= 6
x
1
+ x
2
+ x
4
= 1
x
1
, x
2
, x
3
, x
4
0.
Escojamos como base de partida
B = [a
3
, a
4
] =
_
1 0
0 1
_
y N = [a
1
, a
2
] =
_
2 3
1 1
_
.
29/92

Ant.
La soluci on inicial, x
B
= B
1
b, x
N
= 0, es pues
_

_
x
1
x
2
x
3
x
4
_

_
=
_

_
0
0
6
1
_

_
.
La funci on objetivo para esta soluci on es z = c
T
B
B
1
b = [0, 0]
_
6
1
_
= 0.
Iteraci on 1. Paso 1
Calculemos los multiplicadores simplex resolviendo B
T
= c
B
:
=
_
1 0
0 1
_
1
_
0
0
_
=
_
0
0
_
.
30/92

Ant.
Los costes reducidos de las variables no b asicas son
c
1
= c
1

T
a
1
= 1 [0, 0]
_
2
1
_
= 1
y
c
2
= c
2

T
a
2
= 3 [0, 0]
_
3
1
_
= 3.
Todava no se ha llegado al optimo pues los costes reducidos de las
variables no b asicas son negativos.
Iteraci on 1. Paso 2
Elijamos la variable no b asica x
2
como aquella que ha de entrar en la
base pues tiene el coste reducido m as negativo.
31/92

Ant.
Resolvamos el sistema By = a
2
:
y =
_
1 0
0 1
_
1
_
3
1
_
=
_
3
1
_
.
Iteraci on 1. Paso 3
La variable b asica a salir de la base se obtendr a de calcular
= mn.
_
x
B
1
y
1
,
x
B
2
y
2
_
= mn.
_
6
3
,
1
1
_
= 1.
Es decir, saldr a x
B
2
= x
4
. Esto se puede deducir tambi en analizando la
expresi on
_
x
B
1
x
B
2
_
=
_
x
3
x
4
_
= B
1
b y =
_
6
1
_

_
3
1
_
,
comprob andose que x
4
es la primera variable que llega a cero al
incrementar x
2
.
32/92

Ant.
Iteraci on 1. Paso 4
Readaptemos la soluci on y las estructuras correspondientes:
x
2
= 1
x
3
x
3
y
1
= 6 1 3 = 3
x
4
x
4
y
2
= 1 1 1 = 0.
La soluci on queda, por tanto,
_

_
x
1
x
2
x
3
x
4
_

_
=
_

_
0
1
3
0
_

_
con
B = [a
3
, a
2
] =
_
1 3
0 1
_
y N = [a
1
, a
4
] =
_
2 0
1 1
_
.
33/92

Ant.
La nueva funci on objetivo es
z = c
T
B
B
1
b = [0, 3]
_
1 3
0 1
_ _
6
1
_
= 3.
Iteraci on 2. Paso 1
Calculemos los nuevos multiplicadores simplex resolviendo B
T
= c
B
:
=
_
1 0
3 1
_
1
_
0
3
_
=
_
1 0
3 1
_ _
0
3
_
=
_
0
3
_
.
Los costes reducidos de las variables no b asicas son
c
1
= c
1

T
a
1
= 1 [0, 3]
_
2
1
_
= 4
y
c
4
= c
4

T
a
4
= 0 [0, 3]
_
0
1
_
= 3.
34/92

Ant.
Como todava existe un coste reducido negativo, no se ha llegado al
optimo.
Iteraci on 2. Paso 2
Elegimos la unica variable no b asica capaz de mejorar la funci on
objetivo, x
1
, como aquella que ha de entrar en la base.
Resolvamos el sistema By = a
1
:
y =
_
1 3
0 1
_
1
_
2
1
_
=
_
1 3
0 1
_ _
2
1
_
=
_
5
1
_
.
Iteraci on 2. Paso 3
La variable b asica a salir de la base se obtendr a de calcular
= mn.
_
x
B
1
y
1
_
= mn.
_
3
5
_
=
3
5
.
35/92

Ant.
Es decir, saldr a x
B
1
= x
3
.
Analizando el porqu e de esto mediante la expresi on
_
x
B
1
x
B
2
_
=
_
x
3
x
2
_
= B
1
b y =
_
3
1
_

_
5
1
_
,
se comprueba que x
3
es la primera variable que llega a cero al
incrementar x
1
.
Iteraci on 2. Paso 4
Readaptemos la soluci on y las estructuras correspondientes:
x
1
=
3
5
x
2
x
2
y
2
= 1
3
5
(1) =
8
5
x
3
x
3
y
1
= 3
3
5
5 = 0.
36/92

Ant.
La soluci on queda:
_

_
x
1
x
2
x
3
x
4
_

_
=
_

_
3/5
8/5
0
0
_

_
con
B = [a
1
, a
2
] =
_
2 3
1 1
_
y N = [a
3
, a
4
] =
_
1 0
0 1
_
.
La nueva funci on objetivo es
z = c
T
B
B
1
b = [1, 3]
_
2 3
1 1
_
1
_
6
1
_
= [1, 3]
_
1
5

3
5
1
5
2
5
_
_
6
1
_
=
27
5
.
Iteraci on 3. Paso 1
Calculemos los nuevos multiplicadores simplex resolviendo B
T
= c
B
:
=
_
2 1
3 1
_
1
_
1
3
_
=
_
1
5
1
5

3
5
2
5
_ _
1
3
_
=
_
4/5
3/5
_
.
37/92

Ant.
Los costes reducidos de las variables no b asicas son
c
3
= c
3

T
a
3
= 0 [4/5, 3/5]
_
1
0
_
=
4
5
y
c
4
= c
4

T
a
4
= 0 [4/5, 3/5]
_
0
1
_
=
3
5
.
Todos los costes reducidos son positivos por lo que se ha llegado al
unico optimo del problema. La soluci on optima es
_

_
x
1
x
2
x
3
x
4
_

_
=
_

_
3/5
8/5
0
0
_

_
.
La funci on objetivo
z =
T
b = [4/5, 3/5]
_
6
1
_
=
27
5
.
38/92

Ant.
Las soluciones b asicas factibles que se han ido obteniendo en el
proceso se indican en la gura.
x
1
x
2
P
c

3
0

3/5
8/5

0
1

u
39/92

Ant.
Con el programa de Matlab que hemos presentado antes sera:
min. x
1
3x
2
s. a 2x
1
+ 3x
2
+ x
3
= 6
x
1
+ x
2
+ x
4
= 1
x
1
, x
2
, x
3
, x
4
0.
>> cEje1=[-1 -3 0 0];
>> AEje1=[2 3 1 0;-1 1 0 1];
>> bEje1=[6;1];
>> bfsEje1=[0 0 1 1];
>> [sol fobj pi]=ProgLineal(cEje1,AEje1,bEje1,sqrt(eps),bfsEje1)
sol =
0.6000
1.6000
0
0
fobj =
-5.4000
pi =
-0.8000 -0.6000
>>
40/92

Ant.
Ejemplo 2
Soluci on no acotada. Resolver el siguiente problema lineal:
min. x
1
3x
2
s. a x
1
2x
2
4
x
1
+ x
2
3
x
1
, x
2
0.
Introduzcamos las variables de holgura x
3
y x
4
; el problema queda:
min. x
1
3x
2
s. a x
1
2x
2
+ x
3
= 4
x
1
+ x
2
+ x
4
= 3
x
1
, x
2
, x
3
, x
4
0.
41/92

Ant.
Escojamos como base de partida
B = [a
3
, a
4
] =
_
1 0
0 1
_
y N = [a
1
, a
2
] =
_
1 2
1 1
_
.
La soluci on inicial, x
B
= B
1
b, x
N
= 0, es
_

_
x
1
x
2
x
3
x
4
_

_
=
_

_
0
0
4
3
_

_
.
La funci on objetivo para esta soluci on es z =
T
b = [0, 0]
_
4
3
_
= 0.
42/92

Ant.
La regi on factible de este problema es la que se ilustra en la gura.
x
1
x
2
P
c =

1
3

4
0

0
3

Iteraci on 1. Paso 1
Calculemos los multiplicadores simplex resolviendo B
T
= c
B
:
=
_
1 0
0 1
_
1
_
0
0
_
=
_
0
0
_
.
43/92

Ant.
Los costes reducidos de las variables no b asicas son
c
1
= c
1

T
a
1
= 1 [0, 0]
_
1
1
_
= 1
y
c
2
= c
2

T
a
2
= 3 [0, 0]
_
2
1
_
= 3.
Al ser negativos los costes reducidos, esta soluci on no es optima.
Iteraci on 1. Paso 2
Elegimos la variable no b asica x
2
como aquella que ha de entrar en la
base pues su coste reducido es el m as negativo.
Resolvamos el sistema By = a
2
:
y =
_
1 0
0 1
_
1
_
2
1
_
=
_
2
1
_
.
44/92

Ant.
Iteraci on 1. Paso 3
La variable b asica a salir de la base se obtendr a de calcular
= mn.
_
x
B
2
y
2
_
= mn.
_
3
1
_
= 3.
Es decir saldr a x
B
2
= x
4
.
Como venimos haciendo, esto tambi en de puede comprobar a partir de
la expresi on
_
x
B
1
x
B
2
_
=
_
x
3
x
4
_
= B
1
b y =
_
4
3
_

_
2
1
_
,
constat andose que, efectivamente, x
4
es la primera variable que llega a
cero al incrementar x
2
.
45/92

Ant.
Iteraci on 1. Paso 4
Readaptemos la soluci on y las estructuras correspondientes:
x
2
= 3
x
3
x
3
y
1
= 4 3 (2) = 10
x
4
x
4
y
2
= 3 3 1 = 0.
La soluci on queda:
_

_
x
1
x
2
x
3
x
4
_

_
=
_

_
0
3
10
0
_

_
con
B = [a
3
, a
2
] =
_
1 2
0 1
_
y N = [a
1
, a
4
] =
_
1 0
1 1
_
.
46/92

Ant.
Iteraci on 2. Paso 1
Calculemos los multiplicadores simplex resolviendo B
T
= c
B
:
=
_
1 0
2 1
_
1
_
0
3
_
=
_
1 0
2 1
_ _
0
3
_
=
_
0
3
_
.
Los costes reducidos de las variables no b asicas son
c
1
= c
1

T
a
1
= 1 [0, 3]
_
1
1
_
= 4
y
c
4
= c
4

T
a
4
= 0 [0, 3]
_
0
1
_
= 3.
Como existe un coste reducido negativo, todava no se ha alcanzado el
optimo.
47/92

Ant.
Iteraci on 2. Paso 2
Elegimos la unica variable no b asica posible, x
1
, como aquella que ha
de entrar en la base.
Resolvamos el sistema By = a
1
:
y =
_
1 2
0 1
_
1
_
1
1
_
=
_
1 2
0 1
_ _
1
1
_
=
_
1
1
_
.
Como todos los y
i
, i = 1, 2 son negativos, hay un rayo de soluciones
factibles a lo largo del cual c
T
x . La soluci on es pues no acotada.
u
48/92

Ant.
Ejemplo 3
Soluciones optimas alternativas. Resolver el problema lineal
min. 2x
1
4x
2
s. a x
1
+ 2x
2
4
x
1
+ x
2
1
x
1
, x
2
0,
que se describe en la gura.
x
1
x
2
Soluciones optimas
alternativas
P
c

4
0

2/3
5/3

0
1

49/92

Ant.
Introduzcamos las variables de holgura x
3
y x
4
. El problema queda:
min. 2x
1
4x
2
s. a x
1
+ 2x
2
+ x
3
= 4
x
1
+ x
2
+ x
4
= 1
x
1
, x
2
, x
3
, x
4
0.
Escojamos como base de partida
B = [a
1
, a
4
] =
_
1 0
1 1
_
y N = [a
2
, a
3
] =
_
2 1
1 0
_
.
La soluci on inicial, x
B
= B
1
b, x
N
= 0, es pues
_
x
1
x
4
_
=
_
1 0
1 0
_
1
_
4
1
_
=
_
1 0
1 1
_ _
4
1
_
=
_
4
5
_
por lo que
_

_
x
1
x
2
x
3
x
4
_

_
=
_

_
4
0
0
5
_

_
.
50/92

Ant.
La funci on objetivo para esta soluci on es
z =
T
b = [2, 0]
_
4
1
_
= 8.
Iteraci on 1. Paso 1
Calculemos los multiplicadores simplex resolviendo B
T
= c
B
:
=
_
1 1
0 1
_
1
_
2
0
_
=
_
1 1
0 1
_ _
2
0
_
=
_
2
0
_
.
Los costes reducidos de las variables no b asicas son
c
2
= c
2

T
a
2
= 4 [2, 0]
_
2
1
_
= 0
y
c
3
= c
3

T
a
3
= 0 [2, 0]
_
1
0
_
= 2.
51/92

Ant.
Hemos llegado a un punto optimo. Este, sin embargo, no es unico.
Si incrementamos x
2
, manteniendo x
3
= 0, las variables x
1
y x
4
se
modican de la siguiente manera:
_
x
1
x
4
_
= B
1
b B
1
a
2
x
2
=
_
1 0
1 1
_ _
4
1
_

_
1 0
1 1
_ _
2
1
_
x
2
=
_
4
5
_

_
2
3
_
x
2
.
Para cualquier x
2
<
5
3
, la soluci on
_

_
x
1
x
2
x
3
x
4
_

_
=
_

_
4 2x
2
x
2
0
5 3x
2
_

_
es optima con funci on objetivo z = 8.
u
52/92

Ant.

Indice
Introducci on
Mejora de una soluci on b asica factible
Finalizaci on
El algoritmo SIMPLEX
Degeneraci on y ciclado
Soluci on b asica factible inicial
53/92

Ant.
Degeneraci on y ciclado
Aunque hasta ahora se ha supuesto que la soluci on de un programa
lineal, x, no es degenerada, el que lo sea no causa grandes dicultades
pr acticas.
Lo peor que puede ocurrir es que, en el paso 3, x
j
p
sea cero, lo que
dar a lugar a una iteraci on con = 0: x no cambiar a.
Es decir, a lo largo de
q
se llegar a sin desplazamiento a la
condici on x
j
p
0.
Si esto ocurre, aunque x no cambie si lo har a la base.
Como x, y por tanto c
T
x, no cambian, es te oricamente posible
que el algoritmo cicle indenidamente a trav es de una sucesi on de
bases, y sus correspondientes soluciones.
54/92

Ant.
El problema
min.
3
4
x
4
+ 20x
5

1
2
x
6
+ 6x
7
s. a x
1
+
1
4
x
4
8x
5
x
6
+ 9x
7
= 0
x
2
+
1
2
x
4
12x
5

1
2
x
6
+ 3x
7
= 0
x
3
+ x
6
= 1
x
1
, x
2
, x
3
, x
4
, x
5
, x
6
, x
7
0.
expuesto por E.M.L. Beale en 1955, muestra c omo el m etodo simplex
puede quedar atrapado en un ciclo innito, si se escoge como variable a
entrar en la base aquella que posee el coste reducido m as negativo y
para salir de ella una de las que proporcionan el mnimo .
El optimo de este problema es x = [3/4, 0, 0, 1, 0, 1, 0]
T
y su funci on
objetivo optima -5/4.
55/92

Ant.
Si se comienza a resolver partiendo de la base B = [a
1
, a
2
, a
3
]:
Siguiendo el m etodo simplex ordinario se obtienen las bases
[a
4
, a
2
, a
3
], [a
4
, a
5
, a
3
], [a
6
, a
5
, a
3
], [a
6
, a
7
, a
3
], [a
1
, a
7
, a
3
] y otra vez
[a
1
, a
2
, a
3
].
Si se vuelve a utilizar la misma secuencia de variables a entrar y
salir de la base, el m etodo entra en un ciclo innito.
En la pr actica, evitar el ciclado no es complicado pues existen reglas
sencillas para ello.
Se basan en el hecho de que, en ausencia de degeneraci on, los valores
de la funci on objetivo que se suceden en el m etodo simplex forman una
sucesi on estrictamente mon otona decreciente, lo que garantiza que las
bases no se repitan.
56/92

Ant.
La regla lexicogr aca. G.B. Dantzig, A. Orden y P.
Wolfe (1955)
1. Primero se usa la relaci on
=
x
j
p
y
p
= mn.
1im
_
x
j
i
y
i
: y
i
> 0
_
,
para determinar la variable b asica x
j
p
que ha de salir de la base.
2. Si s olo hay una candidata, se elige esta.
3. Si hay varias, se vuelven a evaluar los ratios de aquellas
variables que quedan como candidatas, pero esta vez, en lugar
de utilizar los x
j
i
resultantes de B
1
b, se utilizan los
correspondientes elementos del vector B
1
a
p
1
, donde a
p
1
es el
vector columna de la matriz A que corresponde a la variable b asica
x
p
1
de ndice m as bajo.
4. Si aun as, los nuevos ratios siguen siendo iguales, se calculan otros
utilizando B
1
a
p
2
, donde a
p
2
es el vector columna correspondiente a
la variable b asica x
p
2
con segundo ndice m as bajo, etc.
57/92

Ant.
La regla de Bland (1977))
Mediante esta regla se elige como variable que ha de entrar en la base,
de entre las de coste reducido negativo, aquella con menor ndice.
Para salir de la base, si el ratio es igual en varias, tambi en aquella con
menor ndice.
Esta regla crea la siguiente propiedad mon otona:
Si una variable x
q
entra en la base, no la abandonar a hasta
que alguna otra con ndice mayor, que era no b asica cuando
x
q
entr o en la base, tambi en entre en la base.
La regla de Bland evita el ciclado puesto que en un ciclo cualquier
variable que entre en la base debe salir de ella, lo que implica que
existe alguna variable de ndice mayor que entra y sale de la base.
58/92

Ant.

Indice
Introducci on
Mejora de una soluci on b asica factible
Finalizaci on
El algoritmo SIMPLEX
Degeneraci on y ciclado
Soluci on b asica factible inicial
59/92

Ant.
Soluci on b asica factible inicial
Hasta ahora hemos supuesto que exista una soluci on inicial b asica
factible desde la que iniciar el m etodo simplex.
C omo puede obtenerse una?
Si las condiciones del problema son de la forma Ax b, x 0, donde
A R
mn
, y b R
m
tiene todos sus componentes no negativos, el
problema de encontrar la soluci on inicial b asica factible es trivial:
a nadiendo las variables de holgura a las condiciones se tendr a que
Ax + x
h
= b
x, x
h
0.
La matriz [A, I] es de rango m.
Una soluci on b asica factible ser a x
h
= b, x = 0; la matriz b asica
correspondiente, B = I.
60/92

Ant.
Normalmente la b usqueda de una soluci on inicial b asica factible no es
tan sencilla:
Por ejemplo, si se diesen las mismas condiciones de antes pero el
vector b tuviese alg un componente negativo, la soluci on obtenida no
sera v alida pues violara la condici on de no negatividad que han de
cumplir las variables del problema.
Otra situaci on similar tiene lugar cuando las condiciones son de la
forma Ax b, x 0.
A nadiendo a estas el vector de variables de holgura, x
h
, se
tendra que Ax x
h
= b, x 0, x
h
0.
Si el vector b no tuviese todos sus componentes no positivos, a
priori, difcilmente se podra determinar una base B a partir de la
matriz [A, I], de tal forma que x
B
= B
1
b cumpliese la
condici on de no negatividad.
61/92

Ant.
Ejemplo 1
Consideremos las condiciones siguientes:
x
1
+ 2x
2
4
x
1
+ x
2
1
x
1
, x
2
0.
A nadiendo las variables de holgura x
3
y x
4
las condiciones se
transforman en
x
1
+ 2x
2
+ x
3
= 4
x
1
+ x
2
+ x
4
= 1
x
1
, x
2
, x
3
, x
4
0.
Una soluci on inicial b asica factible sera
B = [a
3
, a
4
] =
_
1 0
0 1
_
: x
B
=
_
x
3
x
4
_
= B
1
b =
_
1 0
0 1
_ _
4
1
_
=
_
4
1
_
y
x
N
=
_
x
1
x
2
_
=
_
0
0
_
.
62/92

Ant.
Ejemplo 2
Sean ahora las siguientes condiciones:
x
1
+ x
2
+ x
3
6
2x
1
+ 3x
2
+ 3x
3
3
x
2
, x
3
0.
Recordemos que cuando una variable x
i
no est a restringida a tomar
valores no negativos, como es el caso aqu de x
1
, una forma de tratarla
consiste en sustituirla por x

i
x

i
, x

i
0, x

i
0.
Si introducimos tambi en las variables de holgura x
4
y x
5
, las condiciones
quedan:
x

1
x

1
+ x
2
+ x
3
+ x
4
= 6
2x

1
+ 2x

1
+ 3x
2
+ 3x
3
x
5
= 3
x

1
, x

1
, x
2
, x
3
, x
4
, x
5
0.
No es inmediato determinar una base B que nos permita obtener una
soluci on inicial b asica factible.
63/92

Ant.
Ejemplo 3
Consideremos las siguientes condiciones:
x
1
+ x
2
2x
3
3
2x
1
+ x
2
+ 3x
3
7
x
1
, x
2
, x
3
0.
Si para hacer todos los componentes del vector b no negativos
multiplicamos la primera condici on por 1, e introducimos las variables
de holgura x
4
y x
5
, las condiciones resultar an:
x
1
x
2
+ 2x
3
x
4
= 3
2x
1
+ x
2
+ 3x
3
+ x
5
= 7
x
1
, x
2
, x
3
, x
4
, x
5
0.
Tampoco de aqu se puede determinar de una manera sencilla una base
inicial del problema.
64/92

Ant.
Variables articiales
La forma m as utilizada para evitar los problemas apuntados y determinar
de inmediato una soluci on b asica factible de partida, consiste en
introducir, temporalmente, adem as de las variables de holgura, un
conjunto similar de variables denominadas variables articiales.
La idea es muy simple: a las condiciones del problema en forma
est andar
min. c
T
x
s. a Ax = b
x 0,
donde, para simplicar y sin p erdida de generalidad, se supone que
b 0, se le a nade un vector de variables articiales, x
a
, resultando
Ax + x
a
= b,
con x 0 y x
a
0.
65/92

Ant.
Si se quiere conseguir una soluci on factible del problema habr a que
forzar a que los componentes del vector x
a
sean cero. Es decir, resolver
el problema
min.
m

i=1
x
a
i
s. a Ax + x
a
= b
x, x
a
0.
Si el problema original admite una soluci on factible, en la
soluci on del transformado se tendr a que x
a
= 0.
Si tal soluci on factible no existe, el problema transformado
acabar a con alg un componente de x
a
positivo.
Para resolver este nuevo problema se utiliza el mismo m etodo
simplex: El m etodo simplex completo, por consiguiente, consta de
las dos fases que se indican en la tabla.
66/92

Ant.
Fase I Partiendo de la soluci on inicial x = 0, x
a
= b, resolver
min.
m

i=1
x
a
i
s. a Ax + x
a
= b
x, x
a
0.
Si x
a
= 0, parar: el problema no tiene soluci on b asica
factible. Si x
a
= 0, ir a la fase II tomando como B inicial
la de la ultima iteraci on de esta fase.
Fase II Partiendo de x
B
= B
1
b y x
N
= 0, resolver
min. c
T
B
x
B
+ c
T
N
x
N
s. a Bx
B
+ Nx
N
= b
x
B
, x
N
0.
67/92

Ant.
Si la soluci on de la fase I es degenerada, cualquier variable articial
x
a
i
= 0 que est e en la base se puede intercambiar por una no b asica x
j
,
o suprimirse sin m as que eliminar la condici on redundante
correspondiente.
Concretamente, si x
a
k
= 0 es la variable b asica k- esima al nal de la
fase I y se cumple que e
T
k
B
1
a
j
= 0, la variable x
a
k
se puede
reemplazar por la x
j
.
Si e
T
k
B
1
a
j
= 0 para todo a
j
N, el sistema original Ax = b es
redundante y, por tanto, se puede eliminar la la k- esima de la
matriz A as como la la y columna k- esimas de B.
68/92

Ant.
Ejemplo
Resolver el siguiente problema:
min. x
1
2x
2
s. a x
1
+ x
2
2
x
1
+ x
2
1
x
2
3
x
1
, x
2
0.
Para empezar, introduzcamos como siempre las variables de holgura:
min. x
1
2x
2
s. a x
1
+ x
2
x
3
= 2
x
1
+ x
2
x
4
= 1
x
2
+ x
5
= 3
x
1
, x
2
, x
3
, x
4
, x
5
0.
69/92

Ant.
Como la base de partida no es de f acil obtenci on, introducimos las
variables articiales y planteamos el siguiente problema dentro de la
fase I:
min. x
6
+ x
7
s. a x
1
+ x
2
x
3
+ x
6
= 2
x
1
+ x
2
x
4
+ x
7
= 1
x
2
+ x
5
= 3
x
1
, x
2
, x
3
, x
4
, x
5
, x
6
, x
7
0.
Obs ervese que en la tercera condici on no es necesario introducir
variable articial alguna.
Del problema as planteado se puede obtener inmediatamente la base
de partida; esta es
B = [a
5
, a
6
, a
7
] =
_
_
0 1 0
0 0 1
1 0 0
_
_
y N = [a
1
, a
2
, a
3
, a
4
] =
_
_
1 1 1 0
1 1 0 1
0 1 0 0
_
_
.
70/92

Ant.
La soluci on inicial, x
B
= B
1
b, x
N
= 0, es:
_
x
5
x
6
x
7
_
=
_
0 1 0
0 0 1
1 0 0
_
1
_
2
1
3
_
=
_
0 0 1
1 0 0
0 1 0
_ _
2
1
3
_
=
_
3
2
1
_
.
Por tanto,
_

_
x
1
x
2
x
3
x
4
x
5
x
6
x
7
_

_
=
_

_
0
0
0
0
3
2
1
_

_
.
Fase I. Iteraci on 1. Paso 1
Calculemos los multiplicadores simplex resolviendo B
T
= c
B
:
=
_
_
0 0 1
1 0 0
0 1 0
_
_
1
_
_
0
1
1
_
_
=
_
_
0 1 0
0 0 1
1 0 0
_
_
_
_
0
1
1
_
_
=
_
_
1
1
0
_
_
.
71/92

Ant.
Los costes reducidos de las variables no b asicas son
c
1
= c
1

T
a
1
= 0 [1, 1, 0]
_
_
1
1
0
_
_
= 0,
c
2
= c
2

T
a
2
= 0 [1, 1, 0]
_
_
1
1
1
_
_
= 2,
c
3
= c
3

T
a
3
= 0 [1, 1, 0]
_
_
1
0
0
_
_
= 1
y
c
4
= c
4

T
a
4
= 0 [1, 1, 0]
_
_
0
1
0
_
_
= 1.
No se ha llegado todava al optimo pues existe un coste reducido
negativo.
72/92

Ant.
Fase I. Iteraci on 1. Paso 2
Elegimos la unica variable no b asica posible, x
2
, como aquella que ha
de entrar en la base.
Resolvemos el sistema By = a
2
:
y =
_
_
0 1 0
0 0 1
1 0 0
_
_
1
_
_
1
1
1
_
_
=
_
_
0 0 1
1 0 0
0 1 0
_
_
_
_
1
1
1
_
_
=
_
_
1
1
1
_
_
.
Fase I. Iteraci on 1. Paso 3
La variable b asica a salir de la base se obtendr a de calcular
= mn.
_
x
B
1
y
1
,
x
B
2
y
2
,
x
B
3
y
3
_
= mn.
_
3
1
,
2
1
,
1
1
_
= 1;
es decir, saldr a x
B
3
= x
7
.
73/92

Ant.
O, como solemos utilizar, de evaluar la expresi on x
B
= B
1
b y. Es
decir,
_
_
x
B
1
x
B
2
x
B
3
_
_
=
_
_
x
5
x
6
x
7
_
_
=
_
_
3
2
1
_
_

_
_
1
1
1
_
_
,
comprob andose que x
7
es la primera variable que llega a cero al
incrementar x
2
.
Fase I. Iteraci on 1. Paso 4
Readaptemos la soluci on y las estructuras de datos correspondientes:
x
2
= 1
x
5
x
5
y
1
= 3 1 1 = 2
x
6
x
6
y
2
= 2 1 1 = 1
x
7
x
7
y
3
= 1 1 1 = 0.
74/92

Ant.
La soluci on queda por tanto,
_

_
x
1
x
2
x
3
x
4
x
5
x
6
x
7
_

_
=
_

_
0
1
0
0
2
1
0
_

_
siendo
B = [a
5
, a
6
, a
2
] =
_
_
0 1 1
0 0 1
1 0 1
_
_
y
N = [a
1
, a
7
, a
3
, a
4
] =
_
_
1 0 1 0
1 1 0 1
0 0 0 0
_
_
.
75/92

Ant.
Fase I. Iteraci on 2. Paso 1
Calculemos de nuevo los multiplicadores simplex resolviendo
B
T
= c
B
:
=
_
_
0 0 1
1 0 0
1 1 1
_
_
1
_
_
0
1
0
_
_
=
_
_
0 1 0
1 1 1
1 0 0
_
_
_
_
0
1
0
_
_
=
_
_
1
1
0
_
_
.
Los costes reducidos de las variables no b asicas son
c
1
= c
1

T
a
1
= 0 [1, 1, 0]
_
_
1
1
0
_
_
= 2,
c
7
= c
7

T
a
7
= 1 [1, 1, 0]
_
_
0
1
0
_
_
= 2,
c
3
= c
3

T
a
3
= 0 [1, 1, 0]
_
_
1
0
0
_
_
= 1
y
76/92

Ant.
c
4
= c
4

T
a
4
= 0 [1, 1, 0]
_
_
0
1
0
_
_
= 1.
No se ha llegado todava al optimo.
Fase I. Iteraci on 2. Paso 2
Elegimos la variable no b asica x
1
como aquella que ha de entrar en la
base por ser la de coste reducido m as negativo.
Resolvemos el sistema By = a
1
:
y =
_
_
0 1 1
0 0 1
1 0 1
_
_
1
_
_
1
1
0
_
_
=
_
_
0 1 1
1 1 0
0 1 0
_
_
_
_
1
1
0
_
_
=
_
_
1
2
1
_
_
.
77/92

Ant.
Fase I. Iteraci on 2. Paso 3
La variable b asica a salir de la base se obtendr a de calcular
= mn.
_
x
B
1
y
1
,
x
B
2
y
2
_
= mn.
_
2
1
,
1
2
_
=
1
2
;
es decir, saldr a x
B
2
= x
6
. Esto tambi en se puede deducir de la expresi on
_
_
x
B
1
x
B
2
x
B
3
_
_
=
_
_
x
5
x
6
x
2
_
_
= B
1
b y =
_
_
2
1
1
_
_

_
_
1
2
1
_
_
,
constat andose que x
6
es la primera variable que llega a cero al
incrementar x
1
.
78/92

Ant.
Fase I. Iteraci on 2. Paso 4
Readaptemos la soluci on y las estructuras de datos correspondientes:
x
1
= =
1
2
x
5
= x
5
y
1
= 2
1
2
1 =
3
2
x
6
= x
6
y
2
= 1
1
2
2 = 0
x
2
= x
2
y
3
= 1
1
2
(1) =
3
2
.
La soluci on queda por tanto
_

_
x
1
x
2
x
3
x
4
x
5
x
6
x
7
_

_
=
_

_
1/2
3/2
0
0
3/2
0
0
_

_
79/92

Ant.
siendo
B = [a
5
, a
1
, a
2
] =
_
_
0 1 1
0 1 1
1 0 1
_
_
y N = [a
6
, a
7
, a
3
, a
4
] =
_
_
1 0 1 0
0 1 0 1
0 0 0 0
_
_
.
Fase I. Iteraci on 3. Paso 1
Calculemos los multiplicadores simplex resolviendo B
T
= c
B
:
=
_
_
0 0 1
1 1 0
1 1 1
_
_
1
_
_
0
0
0
_
_
=
_
_

1
2
1
2
1
2

1
2

1
2
1
2
1 0 0
_
_
_
_
0
0
0
_
_
=
_
_
0
0
0
_
_
.
80/92

Ant.
Los costes reducidos de las variables no b asicas son
c
6
= c
6

T
a
6
= 1 [0, 0, 0]
_
_
1
0
0
_
_
= 1,
c
7
= c
7

T
a
7
= 1 [0, 0, 0]
_
_
0
1
0
_
_
= 1,
c
3
= c
3

T
a
3
= 0 [0, 0, 0]
_
_
1
0
0
_
_
= 0,
y
c
4
= c
4

T
a
4
= 0 [0, 0, 0]
_
_
0
1
0
_
_
= 0.
Todos los costes reducidos son no negativos por lo que se ha llegado al
optimo de la fase I.
81/92

Ant.
La base de partida de la fase II es
B = [a
5
, a
1
, a
2
] =
_
_
0 1 1
0 1 1
1 0 1
_
_
y N = [a
3
, a
4
] =
_
_
1 0
0 1
0 0
_
_
.
Fase II. Iteraci on 1. Paso 1
Calculemos como siempre los multiplicadores simplex resolviendo
B
T
= c
B
:
=
_
_
0 0 1
1 1 0
1 1 1
_
_
1
_
_
0
1
2
_
_
=
_

1
2
1
2
1
2

1
2

1
2
1
2
1 0 0
_

_
_
_
0
1
2
_
_
=
_
_
1/2
3/2
0
_
_
.
Los costes reducidos de las variables no b asicas son
c
3
= c
3

T
a
3
= 0 [1/2, 3/2, 0]
_
_
1
0
0
_
_
=
1
2
,
y
c
4
= c
4

T
a
4
= 0 [1/2, 3/2, 0]
_
_
0
1
0
_
_
=
3
2
.
82/92

Ant.
Como c
3
y c
4
son negativos, no se ha llegado a un al optimo.
Fase II. Iteraci on 1. Paso 2
Elegimos la variable no b asica x
4
como aquella que ha de entrar en la
base.
Resolvamos el sistema By = a
4
:
y =
_
_
0 1 1
0 1 1
1 0 1
_
_
1
_
_
0
1
0
_
_
=
_

1
2

1
2
1
1
2

1
2
0
1
2
1
2
0
_

_
_
_
0
1
0
_
_
=
_
_
1/2
1/2
1/2
_
_
.
Fase II. Iteraci on 1. Paso 3
La variable b asica a salir de la base se obtendr a de calcular
= mn.
_
x
B
1
y
1
,
x
B
2
y
2
_
= mn.
_
3
2
1
2
,
1
2
1
2
_
= 1.
83/92

Ant.
Es decir, saldr a x
B
2
= x
1
. Si se analiza la expresi on
_
_
x
B
1
x
B
2
x
B
3
_
_
= B
1
b y =
_
_
x
5
x
1
x
2
_
_
=
_
_
3/2
1/2
3/2
_
_

_
_
1/2
1/2
1/2
_
_
,
tambi en se comprueba que, efectivamente, la primera variable que llega
a cero al incrementar x
4
es x
1
.
Fase II. Iteraci on 1. Paso 4
Readaptemos la soluci on y las estructuras de datos correspondientes:
x
4
= 1
x
5
x
5
y
1
=
3
2
1
1
2
= 1
x
1
x
1
y
2
=
1
2
1
1
2
= 0
x
2
x
2
y
3
=
3
2
+ 1
1
2
= 2.
84/92

Ant.
La nueva soluci on es, por tanto,
_

_
x
1
x
2
x
3
x
4
x
5
_

_
=
_

_
0
2
0
1
1
_

_
con
B = [a
5
, a
4
, a
2
] =
_
_
0 0 1
0 1 1
1 0 1
_
_
y N = [a
3
, a
1
] =
_
_
1 1
0 1
0 0
_
_
.
Fase II. Iteraci on 2. Paso 1
Calculemos los multiplicadores simplex resolviendo B
T
= c
B
:
=
_
_
0 0 1
0 1 0
1 1 1
_
_
1
_
_
0
0
2
_
_
=
_
_
1 1 1
0 1 0
1 0 0
_
_
_
_
0
0
2
_
_
=
_
_
2
0
0
_
_
.
85/92

Ant.
Los costes reducidos de las variables no b asicas son
c
3
= c
3

T
a
3
= 0 [2, 0, 0]
_
_
1
0
0
_
_
= 2,
y
c
1
= c
1

T
a
1
= 1 [2, 0, 0]
_
_
1
1
0
_
_
= 3.
Todava no se ha llegado al optimo.
Fase II. Iteraci on 2. Paso 2
Elegimos la variable no b asica x
3
como aquella que ha de entrar en la
base.
86/92

Ant.
Resolvemos el sistema By = a
3
:
y =
_
_
0 0 1
0 1 1
1 0 1
_
_
1
_
_
1
0
0
_
_
=
_
_
1 0 1
1 1 0
1 0 0
_
_
_
_
1
0
0
_
_
=
_
_
1
1
1
_
_
.
Fase II. Iteraci on 2. Paso 3
La variable b asica a salir de la base se obtendr a de calcular
= mn.
_
x
B
1
y
1
_
= mn.
_
1
1
_
= 1;
es decir, saldr a x
B
1
= x
5
. Vi endolo a partir de la expresi on
_
_
x
B
1
x
B
2
x
B
3
_
_
=
_
_
x
5
x
4
x
2
_
_
= b
1
b y =
_
_
1
1
2
_
_

_
_
1
1
1
_
_
,
se comprueba tambi en que la primera variable que llega a cero al
incrementar x
3
es x
5
.
87/92

Ant.
Fase II. Iteraci on 2. Paso 4
Readaptemos la soluci on y las estructuras de datos correspondientes:
x
3
= 1
x
5
x
5
y
1
= 1 1 1 = 0
x
4
x
4
y
2
= 1 + 1 1 = 2
x
2
x
2
y
3
= 2 + 1 1 = 3.
La nueva soluci on es
_

_
x
1
x
2
x
3
x
4
x
5
_

_
=
_

_
0
3
1
2
0
_

_
con
B = [a
3
, a
4
, a
2
] =
_
_
1 0 1
0 1 1
0 0 1
_
_
y N = [a
5
, a
1
] =
_
_
0 1
0 1
1 0
_
_
.
88/92

Ant.
Fase II. Iteraci on 3. Paso 1
Calculemos los multiplicadores simplex resolviendo B
T
= c
B
:
=
_
_
1 0 0
0 1 0
1 1 1
_
_
1
_
_
0
0
2
_
_
=
_
_
1 0 0
0 1 0
1 1 1
_
_
_
_
0
0
2
_
_
=
_
_
0
0
2
_
_
.
Los costes reducidos de las variables no b asicas son
c
5
= c
5

T
a
5
= 0 [0, 0, 2]
_
_
0
0
1
_
_
= 2,
y
c
1
= c
1

T
a
1
= 1 [0, 0, 2]
_
_
1
1
0
_
_
= 1.
Todos los costes reducidos de las variables no b asicas son
positivos por lo que se ha alcanzado el unico optimo del problema.
89/92

Ant.
La soluci on nal es
_

_
x
1
x
2
x
3
x
4
x
5
_

_
=
_

_
0
3
1
2
0
_

_
.
El valor optimo de la funci on objetivo es 6. El proceso iterativo que se
ha seguido en el ejemplo se representa en la gura.
x
1
x
2
P
c

2
3

1/2
3/2

0
1

0
3

90/92

Ant.
Soluci on b asica factible inicial
M etodo de penalizaci on o de la gran M
Consiste en combinar en una las fases I y II del m etodo simplex y
resolver
min.
n

i=1
c
i
x
i
+ M
m

j=1
x
a
j
s. a Ax + x
a
= b
x, x
a
0.
La constante M se elige sucientemente grande de tal forma que
est e muy penalizado que en la soluci on x
a
= 0.
Eventualmente, si existe soluci on factible, las variables articiales se
ver an obligadas a tomar valor cero en el optimo de este problema.
91/92

Ant.
Esta alternativa tiene dos importantes inconvenientes:
La necesidad de escoger un determinado valor jo de M que
asegure que las variables articiales no van a estar en la base de la
soluci on optima.
Que un valor muy grande de M, que domine por completo el de los
elementos del vector c y los coecientes de la matriz A, puede
hacer que los errores de redondeo de los c alculos y la inestabilidad
num erica del proceso lleguen a ser importantes.
92/92

Ant.
En cualquier caso, el problema del ejemplo anterior se planteara as:
min. x
1
2x
2
1000x
6
+ 1000x
7
s. a x
1
+ x
2
x
3
+ x
6
= 2
x
1
+ x
2
x
4
+ x
7
= 1
x
2
+ x
5
= 3
x
1
, x
2
, x
3
, x
4
, x
5
, x
6
, x
7
0.
Con el programa de Matlab que hemos presentado antes sera:
>> cM=[1 -2 0 0 0 1000 1000];
>> AM=[1 1 -1 0 0 1 0;-1 1 0 -1 0 0 1;0 1 0 0 1 0 0];
>> bM=[2;1;3];
>> bfsM=[0 0 0 0 1 1 1];
>> [sol fobj pi]=ProgLineal(cM,AM,bM,sqrt(eps),bfsM)
sol =
0
3
1
2
0
0
0
fobj =
-6
pi =
0 0 -2
>>

También podría gustarte