2- SIMPLEX

17
2- SIMPLEX

description

2- SIMPLEX. DEFINICIONES Sea (P) el siguiente problema de programación lineal: (P) Min c T x / Ax = b x  0, donde c  R n , b  R m y A es una matriz de rango completo mxn con n>m. - PowerPoint PPT Presentation

Transcript of 2- SIMPLEX

Page 1: 2- SIMPLEX

2- SIMPLEX

Page 2: 2- SIMPLEX

DEFINICIONES

• Sea (P) el siguiente problema de programación lineal:

(P) Min cTx /

Ax = b

x 0,

donde c Rn, b Rm y A es una matriz de rango completo mxn con n>m.

• Sea la región factible

S = { x Rn, / Ax = b, x 0 }

y su interior relativo:

S0 = { x Rn, / Ax = b, x >0 }

Page 3: 2- SIMPLEX

• Sea (D) el problema dual asociado a (P):

(D) Max bTw /

ATw +z = c, z 0,

donde las variales z Rm son las variables de holgura

• Sea cualquier par (x,z) donde x S y (w,z) es una solución factible para (D) para algún w Rm, se define el gap de dualidad () como:

= cTx - bTw = xTz

• 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:

xTz = 0 =

Page 4: 2- SIMPLEX

• Forma tableau del SIMPLEX

AB ANB b

0 cTNB-cT

BA-1BANB z

T= cTB*A-1

B costo reducido= c- TA

Page 5: 2- SIMPLEX

• Forma tableau:

– Cálculo de costos reducidos– Gap de dualidad– Ubicación de la inversa de la base y fórmula

recurrente– Variables duales en el tableau Simplex, holguras

duales como costos reducidos– Soluciones primales y duales factibles– Interpretación dual

Page 6: 2- SIMPLEX

SIMPLEX REVISTO• Sea el problema (P), con una matriz A de mxn,

consideremos un paso genérico del simplex, sean:– B la base elegida en ese paso– XB un vector básico y B la solución dual– cB el vector de costos asociado a la base

• Algoritmo:– Calcular XB resolviendo: B.XB=b– Calcular B resolviendo B .B= cB – Calcular los costos reducidos c’=cj- Taj j. – Si c’j 0 j fin– Encontrar s / c’s < 0 y seleccionar xS para entrar en la

base– Calcular A’S resolviendo: B.A’S=AS

– 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 AS. Ir al comienzo

Page 7: 2- SIMPLEX

NOTAS:

• Normalmente todos los vectores ‘, se obtienen a partir del correspondiente vector calculado en el paso anterior y actualizándolo.

• En el método simplex revisto en lugar de calcular B-1 explícitamente, 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 número de iteraciones se calcule B-1 desde el tableau original.

• Para el cálculo de B-1 desde el tableau original se puede usar la descomposición LU o la factorización de Cholesky.

Page 8: 2- SIMPLEX

Ejemplo:Sea el siguiente PL:

Max x1+2x2 /

-x1+2x2+x3 = 4

-x1+ x2+ x4 = 1

x1- 4x2+ x5 = 4

x1,x2,x3,x4,x50

1. Resolver gráficamente 2. Sea {2,3,5} los índices de la base inicial, encontrar la solución de

base inicial correspondiente.3. Calcular las ganancias marginales, mostrar que la solución de base

anterior no es óptima.4. Resolver por simplex revisto

Page 9: 2- SIMPLEX

x1

x2

2

1

4

Función objetivo (max)

Page 10: 2- SIMPLEX

SIMPLEX DUAL

• Comienza con una base dual factible, pero primal infactible y recorre soluciones duales factibles adyacentes

• Criterio de optimalidad: cuando se encuentra una solución primal y dual factible.

• Algoritmo:

Mientras la solución primal sea no factible:– Elegir i/ bi<0

– Si aij 0 j=1..n, entonces problema no factible, fin.

– Elección de la columna s a entrar en la base: elegir s/

-(c’s/ars)=mínimo{- c’j/arj, j/ a’rj<0}

– Pivoteo como en el primal

fin mientras

Page 11: 2- SIMPLEX

Resumen comparativo métodos 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

Page 12: 2- SIMPLEX

PRIMITIVO- DUAL

• DEF: Problema restringido asociado al primal, dada una solución dual :

Min 1Ty /

Ax+y=b, con xi=0 i P x0, y0

donde P= {i / TAi=ci } = índices de holguras duales nulas NOTA: Este problema es similar al planteado para resolver la

fase 1 del simplex (sólo figuran las columnas de A cuya holgura dual sea nula)

• TEO: (Optimalidad primal-dual) Sea una solución 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.

Page 13: 2- SIMPLEX

Algoritmo PRIMITIVO- DUAL

1- Sea una solución factible dual y z una holgura dual factible (z0), tal que zj=0 para j=1..r y zj>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ó solución óptima.

4- Sea la solución dual obtenida al final de la fase I. Calcular dj=0- *A.j para j=1..n.

5- Cálculo de una nueva solución dual factible: sea = + * con / z1=cT-(+ *)T*A=c1+ *d 0, c1= c-T*A

Sea =+ si d0j0 j=r+1..n y

= Min -c1j/di j=r+1..n / dj <0.

6- Si =+, primal infactible, fin.

7- Ir a 2 con + * y z c-*A / zj=0 para j=1..r y zj>0 para j=r+1..n

Page 14: 2- SIMPLEX

Observaciones:

1- 02- El algoritmo se detiene cuando encuentra la primera

solución básica factible primal (y dual factible) o el primal es no factible.

3- Si w=0 entonces fin, se encontró solución óptima.4- Hay un número finito de combinaciones de variables para

construir las posibles soluciones básicas y el objetivo dual es creciente de una iteración a otra, entonces, si no hay degeneración, se alcanza el óptimo en un número finito de pasos.

5- Se elige / haya la máxima cantidad posible de ceros en z1

6- Cómo cambia el conjunto P?: Si xj >0, c1j=0 y z1j=0 entonces salvo que la fase 1 la retire, la variable sigue estando en la base en la iteración siguiente.

7- Uso del método: es eficiente cuando una solución dual factible inicial puede ser calculada fácilmente y cuando un algoritmo eficiente de fase 1 puede ser aplicado al problema restringido. Ejemplo: problema del transporte y flujos en redes.

Page 15: 2- SIMPLEX

DEGENERACION EN EL SIMPLEX PRIMAL

• Sea una solución básica factible (sbf) de (P).• DEF: se dice una sbf es degenerada si el valor de al menos una

de las variables básicas es cero. • En una bsf degenerada, si hacemos una operación de pivoteo

para mejorar la función objetivo, el mínimo cociente entre los b y la columna de A elegida, es cero, con lo cual si bien la operación de pivoteo cambia la base, no mejora la función objetivo.

• Este efecto se puede encontrar en los sucesivos pasos luego de haber encontrado una bsf degenerada y puede provocar la repetición de bases.

• Si no hay degeneración, 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 función objetivo en cada paso.

• Los ciclos en la secuencias de bsf se dan únicamente cuando hay degeneración

Page 16: 2- SIMPLEX

• Interpretación geométrica

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

• Problema perturbado: sea b()= b+( , 2,... m)T, el problema perturbado (P) correspondiente a (P) es:

(P) Min cTx /

Ax = b(), x 0,

• TEO 1: dado un vector b Rm existe un número positivo 1>0 tal que cuando 0< < 1 el problema perturbado (P) es primal no degenerado

• TEO 2: Si B es una base factible para (P) cuando es arbitrariamente pequeño, entonces B es una base factible para (P)

• DEF: orden lexicográfico 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) para suficientemente pequeño sii (B-1.b B-1) L>0

Page 17: 2- SIMPLEX

• Idea básica: trabajar con (P) en forma implícita (sin poner un valor explícito a ) desde (P) de forma de asegurarnos que no habrá degeneración en (P).

• Se elige el pivote para conservar el orden lexicográfico positivo: en la elección del pivote se sustituye el mínimo por el léxico mínimo

REGLA DE PIVOTEO MODIFICADA PARA DEGENERACIÓN:

1. Encontrar i / , si el mínimo es único, entonces i es la fila pivote y fin, si no j=1.

2. Si hay empate, encontrar i / alcanza el

si el mínimo es único, la fila i es el pivote y fin.

3. j=j+1, ir a 2.

0/)/(min___

isisii

aab

empatehayialex isiji

/)/(.min__