You are on page 1of 17

2- SIMPLEX

DEFINICIONES
Sea (P) el siguiente problema de programacin
lineal:
(P) Min c
T
x /
Ax = b
x > 0,
donde c e R
n
, b e R
m
y A es una matriz de
rango completo mxn con n>m.
Sea la regin factible
S = { x e R
n
, / Ax = b, x > 0 }
y su interior relativo:
S
0
= { x e R
n
, / Ax = b, x >0 }

Sea (D) el problema dual asociado a (P):
(D) Max b
T
w /
A
T
w +z = c, z > 0,
donde las variales z e R
m
son las variables de holgura

Sea cualquier par (x,z) donde x e S y (w,z) es una
solucin factible para (D) para algn w e R
m
, se define
el gap de dualidad (A) como:
A= c
T
x - b
T
w = x
T
z

TEO: Un par de soluciones primal (x) y dual (z) factibles
son ptimas sii cuando una de estas soluciones
factibles tiene una holgura estrictamente positiva, el
valor de la variable asociada en el dual es cero, o sea:
x
T
z = 0 = A
Forma tableau del SIMPLEX





A
B
A
NB
b


0 c
T
NB
-c
T
B
A
-1
B
A
NB
z

T
= c
T
B
*A
-1
B
costo reducido= c-
T
A

Forma tableau:

Clculo de costos reducidos
Gap de dualidad
Ubicacin de la inversa de la base y frmula
recurrente
Variables duales en el tableau Simplex, holguras
duales como costos reducidos
Soluciones primales y duales factibles
Interpretacin dual

SIMPLEX REVISTO
Sea el problema (P), con una matriz A de mxn,
consideremos un paso genrico del simplex,
sean:
B la base elegida en ese paso
X
B
un vector bsico y
B
la solucin dual
c
B
el vector de costos asociado a la base
Algoritmo:
Calcular X
B
resolviendo: B.X
B
=b
Calcular
B
resolviendo
B
.B= c
B

Calcular los costos reducidos c=c
j
-
T
aj j.
Si c
j
> 0 j fin
Encontrar s / c
s
< 0 y seleccionar x
S
para entrar en la
base
Calcular A
S
resolviendo: B.A
S
=A
S
Si A
S
< 0 fin
Pivoteo: encontrar r = b
r
/ a
rs
= min{b
i
/ a
is,
con a
is
>0.
Borrar de la base B a r e incluir A
S
. Ir al comienzo

NOTAS:
Normalmente todos los vectores , se obtienen a
partir del correspondiente vector calculado en el
paso anterior y actualizndolo.
En el mtodo simplex revisto en lugar de calcular
B
-1
explcitamente, se calcula como el producto
de una secuencia de matrices pivot. El
inconveniente es que los errores se acumulan y
se recomienda que cada un cierto nmero de
iteraciones se calcule B
-1
desde el tableau
original.
Para el clculo de B
-1
desde el tableau original se
puede usar la descomposicin LU o la
factorizacin de Cholesky.
Ejemplo:
Sea el siguiente PL:
Max x
1
+2x
2
/
-x
1
+2x
2
+x
3
= 4
-x
1
+ x
2
+ x
4
= 1
x
1
- 4x
2
+ x
5
= 4
x
1
,x
2
,x
3
,x
4
,x
5
>0
1. Resolver grficamente
2. Sea {2,3,5} los ndices de la base inicial, encontrar la
solucin de base inicial correspondiente.
3. Calcular las ganancias marginales, mostrar que la solucin
de base anterior no es ptima.
4. Resolver por simplex revisto

x
1
x
2
2
1
4
Funcin objetivo (max)
SIMPLEX DUAL

Comienza con una base dual factible, pero primal
infactible y recorre soluciones duales factibles
adyacentes
Criterio de optimalidad: cuando se encuentra una
solucin primal y dual factible.
Algoritmo:
Mientras la solucin primal sea no factible:
Elegir i/ b
i
<0
Si a
ij
>0 j=1..n, entonces problema no factible, fin.
Eleccin de la columna s a entrar en la base: elegir s/
-(c
s
/a
rs
)=mnimo{- c
j
/a
rj
, j/ a
rj
<0}
Pivoteo como en el primal
fin mientras


Resumen comparativo mtodos primal y dual:

Primal: necesita una base inicial primal factible
Dual: necesita una base inicial dual factible
Comienza con una base primal factible y el algoritmo trata de
alcanzar la factibilidad dual, manteniendo la factibilidad primal.
Comienza con una base dual factible y el algoritmo trata de
alcanzar la factibilidad primal, manteniendo la factibilidad dual.
Criterio de optimalidad: factibilidad dual
Criterio de optimalidad: factibilidad primal
Fin: o alcanza el ptimo o el primal no acotado (infactibilidad
dual)
Fin: o alcanza el ptimo o el dual no acotado (infactibilidad
primal)
Todas las soluciones intermedias son primales factibles y duales
infactibles
Todas las soluciones intermedias son duales factibles y primales
infactibles




PRIMITIVO- DUAL


DEF: Problema restringido asociado al primal, dada
una solucin dual :
Min 1
T
y /
Ax+y=b, con x
i
=0 ie P
x>0, y>0
donde P= {i /
T
A
i
=c
i
} = ndices de holguras duales
nulas
NOTA: Este problema es similar al planteado para resolver la
fase 1 del simplex (slo figuran las columnas de A
cuya holgura dual sea nula)

TEO: (Optimalidad primal-dual) Sea una solucin
factible dual y (x,y=0) factible para el problema
restringido asociado al primal, entonces (x, ) son
soluciones ptimas para el primal y el dual.

Algoritmo PRIMITIVO- DUAL

1- Sea una solucin factible dual y z una holgura dual factible
(z>0), tal que z
j
=0 para j=1..r y z
j
>0 para j=r+1..n
2- Construir el problema restringido primal correspondiente a
j=1..r y resolverlo con un algortimo fase I, agregando
variables artificiales y. Sea w el valor ptimo del problema
restringido.
3- Si w=0 entonces fin, se encontr solucin ptima.
4- Sea o la solucin dual obtenida al final de la fase I. Calcular
d
j
=0- o*A
.j
para j=1..n.
5- Clculo de una nueva solucin dual factible: sea
o
= + o*o
con o / z
1
=c
T
-(+o *o)
T
*A=c
1
+ o*d >0, c
1
= c-
T
*A
Sea o =+ si d
0j
>0 j=r+1..n y
o = Min -c
1j
/d
i
j=r+1..n / d
j
<0.
6- Si o =+, primal infactible, fin.
7- Ir a 2 con + o*o y z c-*A / z
j
=0 para j=1..r y z
j
>0
para j=r+1..n


Observaciones:
1- o >0
2- El algoritmo se detiene cuando encuentra la primera
solucin bsica factible primal (y dual factible) o el primal
es no factible.
3- Si w=0 entonces fin, se encontr solucin ptima.
4- Hay un nmero finito de combinaciones de variables para
construir las posibles soluciones bsicas y el objetivo dual
es creciente de una iteracin a otra, entonces, si no hay
degeneracin, se alcanza el ptimo en un nmero finito de
pasos.
5- Se elige o / haya la mxima cantidad posible de ceros en z
1
6- Cmo cambia el conjunto P?: Si x
j
>0, c
1j
=0 y z
1j
=0
entonces salvo que la fase 1 la retire, la variable sigue
estando en la base en la iteracin siguiente.
7- Uso del mtodo: es eficiente cuando una solucin dual
factible inicial puede ser calculada fcilmente y cuando un
algoritmo eficiente de fase 1 puede ser aplicado al
problema restringido. Ejemplo: problema del transporte y
flujos en redes.


DEGENERACION EN EL SIMPLEX PRIMAL

Sea una solucin bsica factible (sbf) de (P).
DEF: se dice una sbf es degenerada si el valor de al menos una
de las variables bsicas es cero.
En una bsf degenerada, si hacemos una operacin de pivoteo
para mejorar la funcin objetivo, el mnimo cociente entre los b y
la columna de A elegida, es cero, con lo cual si bien la operacin
de pivoteo cambia la base, no mejora la funcin objetivo.
Este efecto se puede encontrar en los sucesivos pasos luego de
haber encontrado una bsf degenerada y puede provocar la
repeticin de bases.
Si no hay degeneracin, todas las bsf tienen valores positivos,
los cocientes entre los b y la columna de A que entra son
positivos, con lo cual se asegura un decrecimiento de la funcin
objetivo en cada paso.
Los ciclos en la secuencias de bsf se dan nicamente cuando
hay degeneracin

Interpretacin geomtrica

DEF: una solucin dual es no degenerada si las holguras duales
tienen al menos n-m componentes no nulas

Problema perturbado: sea b(c)= b+(c , c
2
,... c
m
)
T
, el problema
perturbado (P
c
) correspondiente a (P) es:
(P
c
) Min c
T
x /
Ax = b(c), x > 0,
TEO 1: dado un vector b e R
m
existe un nmero positivo c
1
>0 tal
que cuando 0< c < c
1
el problema perturbado (P
c
) es primal no
degenerado

TEO 2: Si B es una base factible para (P
c
) cuando c es
arbitrariamente pequeo, entonces B es una base factible para
(P)
DEF: orden lexicogrfico positivo( L> 0): un vector se dice lexico
positivo si su primera componente no nula es positiva.

TEO 3: B es una base factible para (P
c
) para c suficientemente
pequeo sii (B
-1
.b B
-1
) L>0
Idea bsica: trabajar con (P
c
) en forma implcita (sin
poner un valor explcito a c ) desde (P) de forma de
asegurarnos que no habr degeneracin en (P
c
).

Se elige el pivote para conservar el orden
lexicogrfico positivo: en la eleccin del pivote se
sustituye el mnimo por el lxico mnimo

REGLA DE PIVOTEO MODIFICADA PARA DEGENERACIN:

1. Encontrar i / , si el mnimo es nico,
entonces i es la fila pivote y fin, si no j=1.
2. Si hay empate, encontrar i / alcanza el

si el mnimo es nico, la fila i es el pivote y fin.
3. j=j+1, ir a 2.

0 / ) / ( min
_ _ _
>
is is i
i
a a b
empate hay i a lex
is
ij
i
/ ) / ( . min_
_
|

You might also like