Simplex
Simplex
Simplex
Método Simplex
Febrero 2019
Conjunto convexo
Definición: Un conjunto S es convexo cuando:
∀ X, Y ∈ S y ∀ λ ∈ [ 0,1] se cumple:
λ X + (1− λ ) Y ∈ S
Conjunto no convexo:
1
Ejemplos de conjuntos convexos
2
Puntos extremos
Definición: Un punto x de un conjunto convexo S es
extremo o vértice de S si no puede expresarse como
combinación lineal convexa de otros dos puntos de S.
No extremos
3
Direcciones de un conjunto convexo
Definición: Un rayo es un conjunto convexo de la forma:
x = x 0 + ld; l ³ 0; d ¹ 0
Definición: Una dirección de un conjunto convexo es:
Dado un conjunto convexo, un vector d distinto de cero es una
dirección del conjunto si para cada x 0 en el conjunto, el rayo
{x 0 + λ d; λ ≥ 0} también pertenece al conjunto.
4
Funciones convexas
Definición: Una función es convexa cuando se cumple:
f ( λ x1 + (1− λ )x2 ) ≤ λ f ( x1 ) + (1− λ ) f ( x2 ) ∀λ ∈ [ 0,1]
5
Puntos extremos y optimalidad
Considere el problema de Programación lineal:
Minimizar cx
s.a. Ax=b
x≥0
Sean x1, x2, …, xk los puntos extremos y d1, d2, …, dl las direcciones
extremas del conjunto de restricciones, de modo que Ax=b y x ≥ 0 se
puede expresar como:
Y el problema de programación lineal se
k l
x = å li x i + å µ j d j
i =1 j =1
podrá expresar como sigue:
å (cx )l + å (cd )µ
k k l
ål i =1 Minimizar i i j j
i =1 s.a. i =1 j =1
l ³0 i = 1, 2 , ..., k k
ål =1
i
µ ³0 j
j = 1, 2 , ..., l i =1
i
l ³0
i
i = 1, 2 , ..., k
µ ³0 j
j = 1, 2 , ..., l
6
Ejemplo 1
Considerar el siguiente conjunto de restricciones:
-x1+ x2 ≤ 2
-x1+2x2 ≤ 6
x1, x2 ≥ 0
Minimizar x1 - 3x2
x3
Minimizar 4x1 - x2
x2
d2
x1 d1
7
Solución básica factible
Definición: Considérese el sistema Ax=b y x≥0
= Supóngase que el rango (A, b) = rango (A) = m.
A x b
mx1 Después de un posible rearreglo de las columnas
mxn
nx1 de A, sea A = [B, N]:
x ≥
nx1
0
nx1
A
mxn
= B N
mxm mx(n-m)
En donde B es una
matriz invertible.
éxB ù x B = B -1b
El punto x = ê ú , en donde se conoce como solución básica
x
ë Nû xN = 0
Si además xB≥0, entonces x es una solución básica
factible.
nx1
x = xB mx1
x1=0
x4=0
é3ù
ê3ú x2=0
é0 ù ë û
ê 3ú
ë û
é0 ù é6 ù
ê0 ú ê0 ú
ë û ë û 10
Ejemplo 3
Considerar las ! 1 1 0 $
# &
siguientes restricciones: B = [ a1, a 2 , a 4 ] = # 0 1 1 &
# 1 2 0 &
x1 + x2 ≤ 6 " %
! x $
x2 ≤ 3 # 1 &
! 2 0 −1 $! 6 $ ! 3 $
# &# & # & ! x $ ! $
x B = # x2 & = B−1b = # −1 0 1 &# 3 & = # 3 & ; xN = #
3
&=# 0 &
x1 + 2x2 ≤ 9 # & # 1 1 −1 &# 9 & # 0 & #" x5 &% " 0 %
#" x4 &% " %" % " %
x1, x2 ≥ 0
é3ù
ê3ú
é0 ù ë û
ê 3ú
ë û
é0 ù é6 ù
ê0 ú ê0 ú
ë û ë û
12
Método Simplex
Problema en forma estándar
Minimizar
=
1xn 1xn 1x(n-m)
c c cB cN
nx1 mx1
x
=
xB
x
Sujeto a: mx1
(n-m)x1
xN
A
x
= b mxn mxm mx(n-m)
A = B N
x ≥ 0
mxn
A =
mx1
a1 a2 … an
… mx1
13
Método Simplex, pivoteo
Considere el problema de Programación lineal:
Minimizar cx
s.a. Ax=b
x≥0
" −1 %
Sea una solución básica factible $$ B b '' con valor de la función
objetivo z0 dado por: # 0 &
" −1 % " −1 %
z0 = c $$ B b '' = ( c B , c N ) $$ B b '' = c B B−1b
# 0 & # 0 &
Para las variables básicas y no básicas se requiere que: xB≥0, xN≥0
y b=Ax=BxB+NxN. Multiplicamos por B-1 a la izquierda:
xB = B−1b − B−1Nx N
= B−1b − ∑ B−1a j x j
j∈R
= b − ∑ y jxj
j∈R
% j∈R ( j∈R
= z0 − ∑ ( z j − c j ) x j
j∈R
∑ (y ) xj j + xB = b
j∈R
x j ≥ 0, j ∈ R y x B ≥ 0
Obsérvese que xB juega las veces de variable de holgura, así que
se puede escribir el problema en forma canónica:
15
Método Simplex, pivoteo…
Minimizar z = z0 − ∑ ( z j − c j ) x j
s.a.
j∈R
∑ (y ) x
j j ≤b
j∈R
x j ≥ 0, j ∈ R
16
Método Simplex, pivoteo…
Fijando todos los x j = 0, j ∈ R − {k } se obtiene:
z = z0 − ( zk − ck ) xk
y Si yik≤0, xBi se incrementa al incrementar
xk y se mantiene la no negatividad.
" xB1 % " %
b1 ' " y1k %
$ ' $ $ ' Si yik>0, xBi decrece al incrementar xk
$ xB2 ' $ b2 ' $ y2k ' hasta que xBi se vuelve cero.
$ ' $ ' $ '
$ ! ' $ ! ' $ ! '
= − xk
$ xBr ' $ br ' $ yrk ' br $b '
$ ' $ ' $ ' xk = ≡ Mínimo % ; yik ≥ 0(
i
ck − zk yrj
Z 1 0
yrk
0 ( z j − c j ) − ( zk − ck )
yrk
Z xB1 ... xBr ... xBm ... Z xB1x j ... xBr ...... xxBkm ...... L.D.xyj
−y1k
ck − zk xB1 0 1 y 0 y1 j − rj y1k b
rj ckcy−rk zk yyrkrj r
Z 1 0 0 Z( j 1 j ) 0 ( k k )
z − c − z − z −
k 0 k c ( z jB− c j )(−k − c(kz)k − ck )
c b − z
yrk : yrk yrk yrk yrk
−y1k Z xB1 yrj... −y xBr ... xBm ... y
xyyj
xB1 0 1 0 xBk1 0 y1 j 0−1 y1k 11k y01k by11 j−− rj1krj byr1k
yrk yrk ck y−rkrkzk yyyrkrkrjrk
:
Z 1 0
yrk
0 ( z j − c j ) − ( zk − ck )
yrk
:
1 yrj −y1mk1k byyrrjrj
xk 0 0 0 xxBBkm1 0 10 y10rk yymj1 j − y1kmk
yrk yrk yrkrk yyrkyrkrk
: :
−ymk yrj −y1mk y yyrjmkrj
xBm 0 0 1 xxBkm 00ymj −00 ymk y0mk1 bymmj −− byrmk
yrk yrk yyrkrk yyrkrkrk
: 20