Sei sulla pagina 1di 17

2- SIMPLEX

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

Sea (D) el problema dual asociado a (P): (D) Max bTw / ATw +z = c, z u 0, donde las variales z Rm son las variables de holgura Sea cualquier par (x,z) donde x S y (w,z) es una solucin factible para (D) para algn 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 = (

Forma tableau del SIMPLEX

AB

ANB cTNB-cTBA-1BANB
costo reducido= c- PTA

0
PT= cTB*A-1B

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 XB un vector bsico y PB la solucin dual cB el vector de costos asociado a la base

Algoritmo:
Calcular XB resolviendo: B.XB=b Calcular PB resolviendo PB .B= cB Calcular los costos reducidos c=cj- PTaj  j. Si cj u 0  j fin Encontrar s / cs < 0 y seleccionar xS para entrar en la base Calcular AS resolviendo: B.AS=AS Si AS < 0 fin Pivoteo: encontrar r = br / ars= min{bi / ais, con ais >0. Borrar de la base B a r e incluir AS. 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 x1+2x2 / -x1+2x2+x3 -x1+ x2+ x4 x1- 4x2+ x1,x2,x3,x4,x5u0
1. 2. 3. 4.

x5

=4 =1 =4

Resolver grficamente Sea {2,3,5} los ndices de la base inicial, encontrar la solucin de base inicial correspondiente. Calcular las ganancias marginales, mostrar que la solucin de base anterior no es ptima. Resolver por simplex revisto

x2
Funcin objetivo (max)

x1

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/ bi<0 Si aij u0  j=1..n, entonces problema no factible, fin. Eleccin de la columna s a entrar en la base: elegir s/ -(cs/ars)=mnimo{- cj/arj, j/ arj<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 P : Min 1Ty / Ax+y=b, con xi=0  i P xu0, yu0 donde P= {i / PTAi=ci } = 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 P una solucin factible dual y (x,y=0) factible para el problema restringido asociado al primal, entonces (x, P) son soluciones ptimas para el primal y el dual.

Algoritmo PRIMITIVO- DUAL


1- Sea P una solucin factible dual y z una holgura dual factible (zu0), 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 solucin ptima. 4- Sea W la solucin dual obtenida al final de la fase I. Calcular dj=0- W*A.j para j=1..n. 5- Clculo de una nueva solucin dual factible: sea PE = P + E*W con E / z1=cT-(P+E *W)T*A=c1+ E*d u0, c1= c-PT*A Sea E =+g si d0ju0 j=r+1..n y E = Min -c1j/di j=r+1..n / dj <0. 6- Si E =+g, primal infactible, fin. 7- Ir a 2 con P n P + E*W y z n c-P*A / zj=0 para j=1..r y zj>0 para j=r+1..n

Observaciones:
1- E u0 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 E / haya la mxima cantidad posible de ceros en z1 6- Cmo 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 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(I)= b+(I , I 2,... I m)T, el problema perturbado (PI) correspondiente a (P) es: (PI) Min cTx / Ax = b(I), x u 0, TEO 1: dado un vector b Rm existe un nmero positivo I1>0 tal que cuando 0< I < I1 el problema perturbado (PI) es primal no degenerado TEO 2: Si B es una base factible para (PI) cuando I 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 (PI) para I suficientemente pequeo sii (B-1.b B-1) L>0

Idea bsica: trabajar con (PI) en forma implcita (sin poner un valor explcito a I ) desde (P) de forma de asegurarnos que no habr degeneracin en (PI). 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. 2.

Encontrar i / min ( b i / a is ) / a is " 0 , si el mnimo es nico, i entonces i es la fila pivote y fin, si no j=1. _ Si hay empate, encontrar i / alcanza el

mi _ lex . ( F ij / a is )  i / hay empate


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

Potrebbero piacerti anche