12 - Método Simplex - Simplex Tableau

12
1 Método Simplex Método Simplex Simplex Tableau Simplex Tableau 2 Introducción Introducción El método simplex como fue descrito anteriormente resulta muy ineficiente computacionalmente: Muchas operaciones redundantes y algunas operaciones computacionalmente costosas como invertir la matrix B. La "Simplex Tableau" es una forma de realizar todas las operaciones del método simplex de forma muy eficiente.

description

Articulo de maestría.

Transcript of 12 - Método Simplex - Simplex Tableau

Page 1: 12 - Método Simplex - Simplex Tableau

1

Método SimplexMétodo Simplex

Simplex TableauSimplex Tableau

2

IntroducciónIntroducción

● El método simplex como fue descrito anteriormente resulta muy ineficiente computacionalmente: Muchas operaciones redundantes y algunas operaciones computacionalmente costosas como invertir la matrix B.

● La "Simplex Tableau" es una forma de realizar todas las operaciones del método simplex de forma muy eficiente.

Page 2: 12 - Método Simplex - Simplex Tableau

3

Simplex TableauSimplex Tableau

● La estructura general es la siguiente:

-Z ck - cBB-1Ak

xiB B-1Ak

Valoresde las

variablesbásicas

Negacióndel valoróptimo

Reduccióndel costo

∆xiB

4

DescripciónDescripción

● n: Número de variables

● m: Número de restricciones

● La "Tableau" tiene n+1 columnas y m+1 filas.

● Filas y columnas se numeran desde 0.

Page 3: 12 - Método Simplex - Simplex Tableau

5

InicializaciónInicialización

● Se debe determinar una base inicial (más detalles posteriormente).

● Se inicializan las entradas Tij con los valores

correspondientes:

● Reducción de costo en fila 0

● Valores de la base inicial columna 0

● B-1Ak las columnas k=1..n (cuando B es la matriz identidad, estas son las mismas columnas de A).

● -Z=0

6

IteraciónIteración

● Si todas las reducciones de costo son positivas, terminar.

● Seleccionar una xk correspondiente a la columna k

con reducción de costo negativa para que entre a la base.

● Se calculan las razones xi/∆x

i para la columna k en las

filas con ∆xi>0. La mínima es el valor λ que toma x

k.

● Se actualizan los costos reducidos y los componentes B-1Ak.

Page 4: 12 - Método Simplex - Simplex Tableau

7

Actualización de la Tablaeu:Actualización de la Tablaeu:Forma canónicaForma canónica

Forma canónica: La submatriz B es la matriz identidad.

● Supongamos que xk entra a la base, y x

h sale.

● Se divide la fila h por Thk

. Esto garantiza que Thk

sea uno.

● Para todas las filas i≠h, se multiplica la fila h por T

ik y se resta de la fila i. Esto hace los

valores Tik=0. (Pivotar)

Page 5: 12 - Método Simplex - Simplex Tableau

9

Justificación fila 0 - (2)Justificación fila 0 - (2)

● Al llevar a la forma canónica la columna de la variable z, la fila cero equivale a la ecuación:

● Se observa además que T0i=0 para i correspondiente

a las variables básicas, y que xj=0 para las variables

básicas. Por lo tanto la canolización arroja el valor

z=Z

que es solución de (*), y que por lo tanto corresponde al negativo del valor óptimo correspondiente a la base actual.

10

EjemploEjemplo

● Retomemos el problema previamente analizado:

Page 6: 12 - Método Simplex - Simplex Tableau

11

Configuración inicialConfiguración inicial

● La base inicial es {x4, x

5, x

6}

-Z x1

x2

x3

x4

x5

x6

0 5 -10 8 0 0 0

x4

10 1 3 2 1 0 0

x5

20 -2 4 1 0 1 0

x6

5 1 -1 10 0 0 1

(Observar que cB son ceros, por lo tanto las reducciones de costo coinciden con ck)

12

Primera iteraciónPrimera iteración

● T02

=-10 es el único coeficiente que reduce el costo:

Entra x2

● Las razones xi/∆x

i correspondientes a k=2 y ∆x

i>0 son

10/3 y 20/4. El mínimo es λ=3.33 y la variable que sale es x

4.

-Z x1

x2

x3

x4

x5

x6

0 5 -10 8 0 0 0

x4

10 1 3 2 1 0 0

x5

20 -2 4 1 0 1 0

x6

5 1 -1 10 0 0 1

Page 7: 12 - Método Simplex - Simplex Tableau

13

Actualización del TableauActualización del Tableau

● fila1=fila

1/3

● fila0=fila

0-T

0k*fila

2

● fila2=fila

2-T

2k*fila

2

● fila3=fila

3-T

3k*fila

2

-Z x1

x2

x3

x4

x5

x6

33.3 8.33 0 -1.33 3.33 0 0

x2

3.33 0.33 1 0.67 0.33 0 0

x5

6.67 -3.33 0 -2.67 -1.33 1 0

x6

8.33 1.33 0 10.67 0.33 0 1

Base = { x2, x

5, x

6 }

14

Segunda iteraciónSegunda iteración

● Si x3 entra a la base, se reduce el costo.

● Las razones xi/∆x

i son 3.33/0.67=5 y 8.33/10.67=0.78.

El mínimo es λ=0.78 y sale x6.

● Se actualizan el Tableau y se obtiene

-Z x1

x2

x3

x4

x5

x6

34.37 8.5 0 0 3.38 0 0.13

x2

2.81 0.25 1 0 0.31 0 -0.06

x5

8.75 -3.00 0 0 -1.25 1 0.25

x3

0.78 0.13 0 1 0.03 0 0.09

Por lo tanto el valor óptimo es -34.37 y el optimizador es x=(0, 2.81, 0.78, 0, 8.75, 0)

Page 8: 12 - Método Simplex - Simplex Tableau

15

Obtención de una BFS inicialObtención de una BFS inicial

● Cuando se agregan m variables slack adicionales la elección de la base inicial es trivial. Qué hacer cuando no?

● Una solución general a este problema es el método de las variables artificiales, o de las dos

fases.

16

Método de las variables artificialesMétodo de las variables artificialesFase 1Fase 1

● Se agregan m variables artificiales al Tableau, xia.

● Fase 1: Se resuelve el problema minimizando la función

Page 9: 12 - Método Simplex - Simplex Tableau

17

Método de las variables artificialesMétodo de las variables artificiales

● Se pueden presentar 3 casos:

● ε=0 y todas las xia se hacen 0 (se remueven de la base), y la base

restante es una base del problema original.

● ε>0, indicando que el problema original no es factible. Si el

problema original es factible, el mínimo valor de ε es cero.

● ε=0 pero algunas xia aparecen en la solución.

● Se se da el 1er caso, se borran las columnas correspondientes a xia

(estas variables son ceros), se reemplaza la fila 0 y se continua el método simplex.

● En el 3er caso, se puede "pivotar" una variable original (tal que

∆xi≠0) no presente en la base para reemplazar x

ia. La nueva variable

toma el valor λ=0, por lo que no afecta el valor de la fila 0.

18

Método de las variables artificialesMétodo de las variables artificialesFase 2Fase 2

● Si el problema es factible, la fase 1 siempre arroja como resultado una BFS para el problema original con sus valores.

● Con esta base se procede a resolver el problema original.

Page 10: 12 - Método Simplex - Simplex Tableau

19

Situaciones EspecialesSituaciones Especiales

20

Base DegeneradaBase Degenerada

● Si la columna 0 contiene valores 0, se dice que la base actual es una base degenerada.

● En este caso, xk=0 puede entrar a la base

reemplazando a xi, aunque el punto x∈ℝn sigue

siendo el mismo.

xk

-Z

xi

0 ∆xi>0

Page 11: 12 - Método Simplex - Simplex Tableau

21

Columna k es negativaColumna k es negativa

● Si todos los valores de ∆xi son negativos,

entonces la variable xk se puede hacer tan

grande como se quiera sin violar ninguna restricción.

● En este caso, el espacio factible no está acotado y se dice que el valor óptimo es -∞.

xk

-Z

xi ∆x

i<0

22

Solución NuméricaSolución Numérica

● Matlab Optimization Toolbox ofrece la siguiente función para resolver problemas de optimización lineal:

● Para detalles completos visitar:

http://www.mathworks.com/help/toolbox/optim/ug/linprog.html

[x,fval] = linprog(c,A,b,Aeq,beq,lb,ub,x0,options)

Page 12: 12 - Método Simplex - Simplex Tableau

23

El ejemplo anteriorEl ejemplo anterior

● Asi se puede codificar

y retorna el resultado:

A= [ 1 3 2

-2 4 0

1 -1 10 ];

b = [ 10 20 5 ]';

c = [ 5 -10 -8 ];

lb = zeros(3,1);

[x, fval, exitflag] = linprog(c,A,b,[],[],lb)

x =

0.0000

2.8125

0.7812

fval =

-34.3750