You are on page 1of 56

Pontificia Universidad Catlica de Chile

Facultad de Ingeniera
Departamento de Ingeniera Industrial y de Sistemas

Captulo 6: Mtodo SIMPLEX

ICS 1113 OPTIMIZACIN


seccin 4

Profesor: Mathias Klapp


maklapp@ing.puc.cl
Recordemos
Todo LP se puede escribir en Forma Estndar (FE):
min s.t. =
0
, donde ,
+,
con = son datos.

Pueden ocurrir tres situaciones:


1. El problema es no acotado:
2. El dominio es infactible:
3. El problema admite solucin ptima en un vrtice.

Forma simplista de optimizar: probar todo vrtice:


100 restricciones y 50 vars 1028 vrtices 1000 aos en PC de 64 cores y 5GHz.
Encontrar cada vrtice implica resolver sistema de ecuaciones.
Ejemplo Inicial
Tomemos el ejemplo inicial y lo pasamos a forma estndar
max 31 + 82 s.t. min 31 82 s.t.
1 ,2 0 0
21 + 42 1600 21 + 42 + 3 = 1600
61 + 22 1800 min s.t. = 61 + 22 + 4 = 1800
0
2 350 2 + 5 = 350

2 4 1 0 0
= 6 2 0 1 0 Notacin:
0 1 0 0 1 es la fila = {1, , } de
es la columna = {1, , } de
= 3 8 0 0 0
,, es la submatriz formada por el
1600 conjunto de columnas {, , }.
= 1800 es el elemento (, ) de
350
= 5, = 3
Base
Consideremos el sistema = . En el ejemplo:
1 2 3 4 5
2 4 1 0 0 1600 =3
6 2 0 1 0 = 1800
0 1 0 0 1 350
Una Base es un subconjunto formado por
ndices de las variables {1, , }.
Por ejemplo: 1 = {1,2,3}, 2 = {1,2,4}, 3 = {3,4,5}
La matriz se llama matriz bsica asociada a .
es invertible.
2 4 1 2 4 0 1 0 0
1 = 6 2 0 2 = 6 2 1 3 = 0 1 0
0 1 0 0 1 0 0 0 1
Solucin Bsica
Dada base 1, , , se define:
Sea = el vector de variables bsicas.
Sea = el vector de variables no bsicas.

Reescribimos = como: + =

La Solucin Bsica asociada de = se define como:


= 0, para
= (solucin despejada de = )

Solucin bsica es factible si 0


Solucin Bsica: = , ,
2 4 1 0 0 1600
= 6 2 0 1 0 = 1800
0 1 0 0 1 350

Hacemos = 0: 4 5 =0

2 4 1 1600
Resolvemos = : 6 2 0 = 1800
0 1 0 350
1 = 183,33; 2 = 350;3 = 166,67

Solucin bsica = [183,33; 350; 166,67] infactible!


Solucin Bsica: = , ,
2 4 1 0 0 1600
= 6 2 0 1 0 = 1800
0 1 0 0 1 350

Hacemos = 0: 1 2 =0

1 0 0 1600
Resolvemos = : 0 1 0 = 1800
0 0 1 350
3 = 1600; 4 = 1800;5 = 350

Solucin bsica = 1600,1800,350 0 factible!


Solucin Bsica Factible Vrtice

Teorema:
Dada la base . Si la solucin bsica es factible
( 0), entonces:

= es un vrtice de { + : = }.
0

Demostracin por definicin de vrtice:


restricciones en igualdad de =
Se hacen restricciones de nonegatividad en igualdad.
Hay restricciones en igualdad
Solucin Bsica Factible Vrtice
min 31 82 s.t.
0
21 + 42 + 3 = 1600
61 + 22 + 4 = 1800
2 + 5 = 350
= (1,2,4) = (1,2,3)

= (2,3,4)
= (1,2,5)

= (3,4,5) = (1,3,5)
Optimicemos
Resolveremos algebraicamente min s.t. =
0
Usaremos el ejemplo inicial
Iniciamos bsqueda donde es ms fcil calcular 1
: el origen

min 31 82 s.t.
0
21 + 42 + 3 = 1600
61 + 22 + 4 = 1800
2 + 5 = 350

Iteracin 1: = {, , }
Despejamos las variable bsicas :
3 = 1600 21 42
= 1
1

4 = 1800 61 22
5 = 350 01 2
Vrtice factible, pues = 0, 0
Iteracin 1: = {3,4,5}
min 31 82 s.t.
0
21 + 42 + 3 = 1600
61 + 22 + 4 = 1800
2 + 5 = 350

Variable bsicas + = 1 , con = 1



3 2 4 1600
4 + 6 2 1 = 1800
2
5 0 1 350
Anlisis del objetivo en funcin de las variables no bsicas:

: costos reducidos
Iteracin 1: = {3,4,5}
min 31 82 s.t.
0 3 2 4 1600
21 + 42 + 3 = 1600 4 + 6 2 1
61 + 22 + 4 = 1800 2 = 1800
5 0 1 350
2 + 5 = 350


= + = 1
+ (

)
= 1
= 000
1600 1800 350 = 0
2 4
= = 3 8 [0 0 0] 6 2 = 3 8
0 1
= 0 31 82
Objetivo mejora al aumentar con costo reducido negativo ( < 0)
1 = 3 (objetivo baja 3 por unidad de 1 )
2 = 8 (objetivo baja 8 por unidad de 2 )
Tomemos 2 por ejemplo
Iteracin 1: = {3,4,5}
3 2 4 1600
1
4 + 6 2
2 = 1800
5 0 1 350

Cunto puede subir 2 ?


Hasta : 1
/


>0
En ejemplo: min(1600/4; 1800/2; 350/1) = 350

La variable 5 se anula (sale de base) cuando 2 = 350.


Cambio de Base: Entra 2 y sale 5 , nueva base = {3,4,2}
Iteracin 2: = {3,4,2}
min 31 82 s.t.
0
21 + 42 + 3 = 1600
61 + 22 + 4 = 1800
2 + 5 = 350
= 1
Despejamos la base:
1 0 4 1 0 4
= 0 1 2 1
= 0 1 2
0 0 1 0 0 1
3 1 0 4 2 0 1 0 4 1600
1
4 + 0 1 2 6 0 = 0 1 2 1800
5
2 0 0 1 0 1 0 0 1 350
3 2 4 200
1
4 + 6 2 = 1100
5
2 0 1 350
Grficamente: 3,4,5 {3,4,2}
Hacer un cambio de base equivale a moverse a un vrtice vecino

min 31 82 s.t.
0
21 + 42 + 3 = 1600
61 + 22 + 4 = 1800
2 + 5 = 350

= (3,4,2)

= (3,4,5)
Iteracin 2: = {3,4,2}
min 31 82 s.t.
0 3 2 4 200
21 + 42 + 3 = 1600 4 + 6 1
61 + 22 + 4 = 1800
2 = 1100
5
2 + 5 = 350
2 0 1 350

= +
= 1
= 00 8
200 1100 350 = 2800
2 4
= = 3 0 [0 0 8] 6 2 = 3 8
0 1
= 2800 31 + 85
1 = 3 (objetivo baja 3 por unidad de 1 )
5 = 8 (no sirve, pues objetivo sube 8 por unidad de 5 )
Ingresamos 1 a la base.
Iteracin 2: = {3,4,2}
3 2 4 200
1
4 + 6 2 = 1100
5
2 0 1 350
Cunto puede subir 1 ?
Hasta min(200
2
;
1100
6
; ) = 100

Cambio de Base: Entra 1 y sale 3 , nueva base = {1,4,2}


Iteracin 3: = {1,4,2}
min 31 82 s.t.
0
21 + 42 + 3 = 1600
61 + 22 + 4 = 1800
2 + 5 = 350

Despejamos la base = 1
1
:
1
2 0 4 0 2
2
= 6 1 2 1
= 3 1 10
0 0 1 0 0 1

1 1
2 1 100
4 + 2 = 500
3 10 5
2 350
0 1
Grficamente: 3,4,2 {1,4,2}

min 31 82 s.t.
0
21 + 42 + 3 = 1600
61 + 22 + 4 = 1800
2 + 5 = 350
= (1,4,2)
= (3,4,2)

= (3,4,5)
Iteracin 3: = {1,4,2}
min 31 82 s.t.
0
1 1
21 + 42 + 3 = 1600 2 1 100
61 + 22 + 4 = 1800 4 + 2 = 500
2 3 10 5
2 + 5 = 350 350
0 1

= +
= 1
= 3 0 8

100 500 350 = 3100
1
2
1 2
= = 0 0 [3 0 8] 3 10 = 3/2 2
0 1
3
= 3100 + 4 + 25
2
3 = 3/2 (objetivo sube 3/2 por unidad de 3 )
5 = 2 (objetivo sube 2 por unidad de 5 )
vrtice vecinos son peores! Estamos en vrtice ptimo.
= [ ], =
Restricciones activas: 3 y 5 . Hay holgura en 4 .
No verificamos todo vrtice!
min 31 82 s.t.
0
21 + 42 + 3 = 1600
61 + 22 + 4 = 1800
2 + 5 = 350
= (1,4,2)
= (3,4,2)

= (3,4,5)
Acabamos de correr el Mtodo SIMPLEX
Mtodo iterativo que parte desde un vrtice del
dominio y transita en una serie de vrtices
adyacentes nunca empeorando el valor objetivo.

En cada vrtice visitado se evala optimalidad


verificando que no sea ms caro que sus vrtices
adyacentes (min local = global),

en caso de que el vrtice no sea ptimo, el


mtodo se desplaza a un vrtice vecino que
mejore el valor de la funcin objetivo.
Acabamos de correr el Mtodo SIMPLEX
Dada una base , reformulamos min{ . . = } como:
0


min 1
+
0
s.t. + = 1

, donde = A1

Obtuvimos solucin bsica (vrtice): = 0 y = 1


Solucin bsica es factible si 0

Solucin bsica factible es ptima si = 0

Si no es optima, buscamos otra base


El mtodo SIMPLEX

Desarrollado a mediados del


siglo XX por George Dantzig

El ``Padre de la Programacin
Lineal

Largometraje ``Good Will


Hunting est basado en l.
No confundir!

G. Danzig: vocalista de G. Dantzig: Padre de la


The Misfits programacin lineal
El Mtodo SIMPLEX
El Mtodo SIMPLEX
Paso Inicial
FASE I Encontrar un vrtice del dominio, es decir,
una solucin inicial factible (SIF)

Paso Iterativo
Traslado a un mejor vrtice

FASE II
NO
Prueba de Optimalidad
Es ptima la solucin? FIN
SI
Qu caminos llevan al ptimo?
Hay mejora si variable con costo reducido negativo sube de valor
No necesariamente el costo reducido ms negativo
En ejemplo: Se podra ingresar 1 (en vez de 2 ) al comienzo
Diferentes caminos llevan al ptimo

Asegura convergencia?
Se asegura convergencia al mnimo si objetivo siempre baja
Hay una excepcin (degenerancia)

?
Algoritmo SIMPLEX (Fase 2)
1. Input: , , en forma estndar y una base factible.

2. Calcular Solucin Bsica:


= 1
= 1
=

3. Prueba de Optimalidad:
a) Si 0: Sol. ptima, retornar: = [ , ], =
b) Si : < 0: Ingresar a la base.
= 1
/

: >0
Cambiar base: \{} {}
Ir a paso 2.
Significado de costos reducidos
Analizemos = 0 =
indica el cambio de valor objetivo al subir una unidad la variable :

= =
0
Nonegativo en el ptimo
Mientras se mantiene la base factible
3
En el ejemplo: = = 0; 0; 2 ; 0; 2

Adems son los multiplicadores de gradientes en restricciones que forman


el gradiente objetivo de maximizacin.

3 0 3 2
=2 + (3,8)
8 1 2 4
(0,1) (2,4)
Precio Sombra (shadow price)
Definamos el vector de Precios Sombra como:
=

= = 1
=

Veamos la variable de holgura en restriccin ( = 0, = )


Su costo reducido es =

Se tiene: = = =

indica como cambia el objetivo con una variacin marginal del
recurso i (manteniendo la base).

3
En el ejemplo inicial: = 2 0 2
Nulo para restricciones desactivadas con holguras en base.
El tableau de SIMPLEX
Herramienta para hacer iteraciones manuales del SIMPLEX
Es una acomodacin matricial de la informacin de una base
Ya no se ensea en ICS1113

min 1
+

0
s.t. + = 1

0 1

Ejemplo 2
m 21 + 2 s.t.
0
1 + 32 9
21 + 2 6

Forma estndar:

m 21 2 s.t.
0
1 + 32 + 3 = 9
21 + 2 + 4 = 6
Dos elementos en cada base
Comenzamos con las holguras en base (vrtice origen)
Iteracin 1: = {3,4}
Calculamos base: m 21 2 s.t.
0
1
=
9 1 + 32 + 3 = 9
= 1
= 21 + 2 + 4 = 6
6

= = 0
1 3
= 1
=
2 1
1 3
= = [2 1] 0 0 = [2 1]
2 1

Prueba de optimalidad: No es ptimo

6
Entra 1 : min ; = 3, sale 4
2

Cambio de base 3,4 {3,1}


Iteracin 2: = {3,1}
Calculamos base: m 21 2 s.t.
1 1/2 0
1
= 1 + 32 + 3 = 9
0 1/2
= 1
12 21 + 2 + 4 = 6
=
3

= = 6
1 1/2 3 0 7/2 1/2
= 1
= =
0 1/2 1 1 1/2 1/2
7/2 1/2
= = [1 0] 0 2 = [0 1]
1/2 1/2

Prueba de optimalidad: Es ptimo, pero 2 fuera de base


tiene 2 = 0 (al ingresarla a base no cambia el objetivo)
SOLUCIN PTIMA MLTIPLE

12 3
Entra 2 : min ; = 24/7, sale 3
7/2 1/2
Cambio de base 3,1 {2,1}
Iteracin 3: = {2,1}
Calculamos base: m 21 2 s.t.
2/7 1/7 0
1
= 1 + 32 + 3 = 9
1/7 3/7
= 1
24/7 21 + 2 + 4 = 6
= 9/7
= = 6
2/7 1/7 1 0 2/7 1/7
= 1
= =
1/7 3/7 0 1 1/7 3/7
2/7 1/7
= = [0 0] 1 2 = [0 1]
1/7 3/7

Prueba de optimalidad: Es ptimo, pero 3 fuera de base


tiene 3 = 0 (al ingresarla volvemos a base anterior)
SOLUCIN PTIMA MLTIPLE

Conjunto de soluciones ptimas:




{ = ; ; ; + ; ; ; , [, ]}

Grficamente: Solucin Mltiple
Grficamente:
m 21 2 s.t.
0
1 + 32 + 3 = 9
21 + 2 + 4 = 6
24 9
= 3; 0; 12; 0 + 1 ; ; 0; 0 , [0,1]
7 7
Solucin Mltiple
Una solucin bsica ptima adicional por cada costo
reducido nulo en vrtice ptimo.

Conjunto de soluciones ptimas ser la combinacin


convexa de los vrtices ptimos encontrados.

Ejercicio Propuesto:
m 83 s.t.
0
1 + 32 + 23 2
21 + 42 + 53 5
Ejemplo 3
m 22 s.t.
0
1 2 6
21 32 8

Forma estndar:

m 22 s.t.
0
1 2 + 3 = 6
21 32 + 4 = 8
Dos elementos en cada base
Comenzamos con las holguras en base (vrtice origen)
Iteracin 1: = {3,4}
Calculamos base: m 22 s.t.
1
= 0
= 1
6 1 2 + 3 = 6
=
8 21 32 + 4 = 8

= = 0
1 1
= 1
=
2 3
1 1
= = [0 2] 0 0 = [0 2]
2 3

Prueba de optimalidad: No es ptimo

Entra 2 , sale min ; =?

Problema no acotado: [0, , 6 + , 8 + 3] factible 0


= [0,1,1,3] es un rayo de escape con < 0

Problema no acotado
Pasa cuando una variable tiene < 0 y j tiene
solamente elementos no positivos. Es decir, cuando
< 0; j 0
El vector dado por
j
= 0 , {1, , }
1 =
es un rayo de escape en el cono del dominio: < 0.

+ factible para 0 por lo que +


Algoritmo SIMPLEX (Fase 2)
Ajuste para poliedros no acotados
1. Input: , , en forma estndar y una base factible.

2. Calcular Solucin Bsica:


= 1
= 1
=

3. Prueba de Optimalidad:
a) Si 0: Sol. ptima, retornar: = [ , ], =
b) Si : < 0: Ingresar a la base.
Si 0: Problema no acotado, retornar: (, )
= 1
/
: >0
Cambiar base: \{} {}
Ir a paso 2.
Ejemplo 4:
m 1 2 s.t.
0
21 + 2 2
32 2
61 + 92 10
Forma estndar:
m 1 2 s.t.
0
21 + 2 + 3 = 2
32 + 4 = 2
61 + 92 + 5 = 10
Tres elementos en cada base
Comenzamos con las holguras en base (vrtice origen)
Iteracin 1: = {3,4,5}
Calculamos base: m 1 2 s.t.
1 0
=
2 21 + 2 + 3 = 2
1
= = 2 32 + 4 = 2
10 61 + 92 + 5 = 10
= = 0
2 1
= = 0 3
1

6 9
2 1
= = [1 1] 0 0 0 0 3 = [1 1]
6 9

Prueba de optimalidad: No es ptimo

2 2 10
Entra 1 , sale min ; ; = 1 3
2 0 6

Cambio de base 3,4,5 {1,4,5}


Iteracin 2: = {1,4,5}
Calculamos base: m 1 2 s.t.
1 1 0
2 0 0 0 0
1
= 0 1 0 = 0
2
1 0
21 + 2 + 3 = 2
6 0 1 3 0 1 32 + 4 = 2
1
0 0 2 1 61 + 92 + 5 = 10
2
= 1
= 0 1 0 2 = 2
3 0 1 10 4
= = 1
1/2 1/2
= 1
= 3 0
6 3
1/2 1/2
1 1
= [1 0] 1 0 0 3 0 = 2 2
6 3

Prueba de optimalidad: No es ptimo!


1 2 4
Entra 2 , sale min ; ; = 2/3 4 5 Hay empate!
1/2 3 6
Cambio de base 1,4,5 {1,2,5} 1,4,5 {1,4,2}
Iteracin 3: = {1,2,5} (si sale 4)
Calculamos base: m 1 2 s.t.
1 1 0
2 1 0 1 0
1 = 0 3 0 =
2
1
6 21 + 2 + 3 = 2
0 0
6 9 1 3 32 + 4 = 2
3 2 1
1
6
1
0 2 2/3
61 + 92 + 5 = 10
2
= 1
= 0
1
0 2 = 2/3
3 10 0
3 2 1

= = 4/3
1 1 1 1
0 1 0 6
2 6 2
= = 0
1 1
0 0 1= 0 1
3 0 0 3
3 2 1 3 2
1 1

2 6 1 1
= [0 0] 1 1 0 0
1 = 2 6
3
3 2
Prueba de optimalidad: ptimo!
2 2
Solucin ptima: [ ; ; 0; 0; 0]
3 3
Iteracin 3: = {1,4,2} (si sale 5)
Calculamos base: m 1 2 s.t.
3
0
1 0
1

1
2 0 1
= 0 1 3 =
4
3
1
12
1 21 + 2 + 3 = 2

6 0 9

2
1
0
1
2
32 + 4 = 2
2 6
3
0
1 61 + 92 + 5 = 10
4 12 2 2/3
3 1
= 1
= 2
1
2
2 = 0
1 1 10 2/3
0
2 6
= = 4/3
3 1 3 1
0
4 12 1 0 4 12
3 1 3 1
= 1
= 2
1
2
0 0 = 2

2
1 1 0 1 1 1
0
2 6 2 6
3 1

4 12
3 1 1 1
= [0 0] 1 0 1 2

2
= 4 12
1 1

2 6

Prueba de optimalidad: ptimo!


2 2
Solucin ptima: [ ; ; 0; 0; 0]
3 3
Qu pas?
Al entrar una variable a la base hubo empate en salida y
dos variables bsicas se anularon.

Independiente de la opcin que escogimos, llegamos al


mismo vrtice, pero con diferente configuracin bsica.
Dos base en un vrtice: {1,2,5} y {1,4,2}!
Una variable bsica nula
2 2
[ ; ; 0; 0; 0]
3 3 m 1 2 s.t. 22 // 33
3 restricciones activas! 0
X
21 + 2 + 3 = 2 0
*

32 + 4 = 2 0
0
61 + 92 + 5 = 10
Solucin Degenerada
Cuando variable bsicas son nulas m 1 2 s.t.
0
Hay sobre-determinacin del vrtice: 21 + 2 + 3 = 2
Hay 3 restricciones en un punto. 32 + 4 = 2
En sucede cuando ms de 61 + 92 + 5 = 10
restricciones determinan un vrtice.

Hay 2 formas de crear gradiente objetivo:

1 1
(1; 1) = (2; 1) + (0; 3)
2 6

1 1
(1; 1) = (2; 1) + (6; 9)
4 12
Solucin Degenerada
Hay tantas bases por vrtice como ceros en la solucin bsica.

En el ejemplo el vrtice degenerado era ptimo, pero un vrtice


degenerado no es necesariamente ptimo.

Hay un problema: eventualmente se podra iterar infinitamente


entre diferentes bases de un vrtice degenerado sin salir de este
y sin mejorar el objetivo.

Puede haber ciclaje infinito.

Se requiere una regla de pivoteo que evite el ciclaj


Ejemplo con ciclaje
m 101 + 572 + 93 + 244 s.t.
0
1 112 53 + 184 + 5 = 0
1 32 3 + 24 + 6 = 0
1 + 7 = 1

= {1,6,7} = {1,2,7} = {3,2,7}


= {5,6,7}
= {5,4,7} = {5,4,7} = {3,4,7}

Ver archivo .xls complementario


Regla de Pivoteo de Bland
REGLA DE BLAND:
En un cambio de base de SIMPLEX:
Ingresar a la base la variable = min{ : < 0}
Sacar la variable = : >0 /

Si hay empate: tomar el menor valor de .

TEOREMA:
EL MTODO SIMPLEX TERMINA

El mtodo SIMPLEX ejecutado con REGLA DE BLAND nunca repite


una base en iteraciones diferentes y, por lo tanto, termina en un
nmero finito de iteraciones
Propuestos
3 1
m 1 + 1502 3 s.t.
0 4 50
1 1
602 + 94 0 m 1 2 s.t.
4 1 25 3 0
1 1 1 + 2 1
902 + 34 0
2 1 50 3 1 + 2 0
3 1

Solucin degenerada. Degenerada y mltiple.


Ejemplo 5
m 31 22 53 s.t.

31 + 23 460
1 + 42 420
1 + 22 + 3 430
1 , 2 0, 3

Se debe desdoblar variable libre de signo para llevar a forma


estndar. Es decir 3 = 3+ 3 , con 3+ , 3 0

m 31 22 53+ + 53 s.t.
0
31 + 23+ 23 + 4 = 460
1 + 42 + 5 = 420
1 + 22 + 3+ 3 + 6 = 430
Base ptima: = +
{3 , 5,2}
Calculamos base: m 31 22 53+ + 53 s.t.
0
1
2 0 0 1
2
0 0 31 + 23+ 23 + 4 = 460
1 = 0 1 4 = 1 1 2
1 + 42 + 5 = 420
1 0 2 1/4 0 1/2
1 1 + 22 + 3+ 3 + 6 = 430
0 0 460 230
2
= 1
1= 1 2 420 = 20
1/4 0 1/2 430 100

= = 1350
1
0 0 3 2 1 0 3/2 1 1/2 0
2
= 1
= 1 1 2 1 0 0 0 = 2 0 1 2
1/4 0 1/2 1 1 0 1 1/4 0 1/4 1/2
3/2 1 1/2 0
= [3 5 0 0] 5 0 2 2 0 1 2 = 4 0 2 1
1/4 0 1/4 1/2
= 0; 100; 230; 0; 0; 20; 0 3
pero 3 tiene costo reducido nulo. Si entra, no hay salida.
Rayo ptimo: + 0; 0; 1; 1; 0; 0 = 0; 100; 230 + ; ; 0; 20; 0
5
Pero 3 = 3+ 3 = 230.
2
Al desdoblar 3 creamos un rayo artificial.
Pontificia Universidad Catlica de Chile
Facultad de Ingeniera
Departamento de Ingeniera Industrial y de Sistemas

Captulo 6: Mtodo SIMPLEX

ICS 1113 OPTIMIZACIN


seccin 4

Profesor: Mathias Klapp


maklapp@ing.puc.cl

You might also like