Académique Documents
Professionnel Documents
Culture Documents
Programa
ETSII-UPM
Ejemplos
2 x1 x2 + 2 = 0
Tanto la funcin objetivo como las 3 2 = x1 2 x2 ecuaciones de restriccin son lineales. x1 + 3 = 0 2 La regin factible es el conjunto de x1 x2 + 3 = 0 1 puntos que satisfacen las restricciones. Una restriccin se dice activa en un punto 3 2 1 1 2 3 4 si en ese punto se verifica la igualdad. El gradiente de las ecuaciones de restriccin en la forma aTx0 se dirige al interior de la regin factible. La regin factible puede estar o no acotada (no lo estara sin la restriccin ( x1 + 3 0 ) . El ptimo est en el vrtice (3,6). Segn sea la funcin objetivo podra estar tambin en una arista. En este caso el ptimo no sera nico.
Introduccin (1/2)
ETSII-UPM
minimizar f ( x ) = cT x, sujeta a: aT x = bi , i E i T ai x bi , i I donde E e I son los conjuntos de restricciones de ecuacin e inecuacin. La matriz A tiene por filas los vectores aT . i El conjunto factible S es el conjunto de puntos que satisfacen las ecuaciones de restriccin. Se ver que el conjunto factible es un politopo convexo. Se dice que la direccin d es una direccin factible en x si existe algn valor > 0 tal que el punto x + d S , para todo 0 < < . Al moverse en direccin d sobre una restriccin de ecuacin se deber cumplir que:
Por otra parte, siempre es posible moverse una distancia suficientemente pequea respetando una restriccin de inecuacin no activa. Si la restriccin es activa se deber cumplir:
aT x = bi , aT ( x + d ) = bi i i
aT d = 0 i
aT x = bi , aT ( x + d ) bi i i
aT d 0 i
Introduccin (2/2)
ETSII-UPM
minimizar f ( x ) = cT x, sujeta a: Ax = b, ( con b 0 ) x0 Con las condiciones x 0 y b 0 se quiere indicar que cada componente debe ser 0. En la formulacin anterior: x, c R n , b R m y A R mn
Conjunto convexo
Un conjunto C R n es convexo si y slo si dados dos puntos cualesquiera y,zC y un escalar 0 1, se verifica que x = y + (1 ) z C.
Combinaciones convexas Los puntos x = y + (1 ) z , 0 1, son una combinacin convexa de y y de z. La combinacin se llama estrictamente convexa en el caso de que 0 < < 1.
Ms en general, se dice que el punto x es una combinacin convexa de los puntos x1, x2, , xn si se satisfacen las relaciones siguientes: n n x = i =1 i xi , con i =1 i = 1; i 0, i
Cono convexo
Un conjunto C R n es un cono si para todo x C x C , R, 0. Si es tambin un conjunto convexo se dice que es un cono convexo. Ejemplo: el conjunto {b R m : b = Ax, A R mn , x R n , x 0} es un cono convexo determinado por las columnas de A.
Puntos extremos
Los puntos extremos del conjunto C son los puntos de C que no se pueden expresar como combinacin estrictamente convexa de otros puntos del conjunto C. Slo los puntos en el contorno de C pueden ser puntos extremos.
Hiperplanos y semiespacios
Se define un hiperplano H en Rn como el conjunto de puntos que satisfacen, H = {x R n : aT x = b, a R n , a 0, b R} El conjunto de soluciones de una ecuacin lineal en Rn es un hiperplano. Ejemplos: una recta en el plano, o un plano en el espacio eucldeo ordinario. El hiperplano aTx=b determina dos semiespacios cerrados (y otros dos abiertos) en Rn: H + = {x R n : aT x b} , H = {x R n : aT x b} Los semiespacios H+ y H son conjuntos convexos. Es fcil de ver que la interseccin de dos conjuntos convexos es un conjunto convexo. Un hiperplano H es convexo porque es la interseccin de H+ y H, que son convexos. La interseccin de varios hiperplanos tambin ser un conjunto convexo.
Politopos y poliedros
Un politopo es un conjunto formado por la interseccin de un nmero finito de semiespacios cerrados. El politopo es cnico si los hiperplanos de todos los semiespacios pasan por un punto. Un poliedro es un politopo acotado y no vaco. Los politopos y los poliedros son conjuntos convexos.
El conjunto factible S = {x R n : Ax = b, x 0} , que contiene todas las posibles soluciones de un problema de PL, es un politopo convexo. Esta propiedad se deduce directamente del hecho de que los hiperplanos determinados por Ax=b y el cono determinado por x 0 son conjuntos convexos. La envoltura convexa de un conjunto C R n , es la interseccin de todos los conjuntos convexos que contienen a C.
Envoltura convexa
Hiperplano soporte
Se llama hiperplano soporte de un conjunto convexo C a un hiperplano H tal que, H C , y C H + C H Un hiperplano soporte contiene a C en uno de sus dos semiespacios de borde cerrados, y adems contiene algn punto del contorno de C.
Caras
Una cara es la interseccin del politopo convexo P con un hiperplano soporte H. Hay tres tipos de caras vrtices, aristas y facetas cuyas dimensiones son 0, 1 y n1. Los vrtices son puntos extremos. Las aristas son rectas que unen puntos extremos adyacentes. Las facetas son la interseccin de la regin factible S con los semiespacios T definidos por las desigualdades a1 x b1 , aT x b2 , ..., aT x bm , x1 0, x2 0, ..., xm 0. m 2
2 x1 x2 + 2 = 0 Minimizar: z = x1 2 x2 10 = x1 2 x2 6 sujeta a: 2 x1 x2 + 2 0 x1 x2 + 3 0 5 c x1 +3 0 6 = x1 2 x2 4 x1 0 x2 0 3 2 = x1 2 x2 Es interesante observar que cuando las x1 + 3 = 0 2 restricciones se escriben en esta forma x1 x2 + 3 = 0 1 el gradiente de las restricciones apunta hacia el interior de la regin factible. 3 2 1 1 2 3 4 Se han dibujado tambin las lneas de nivel correspondientes a diversos valores de la funcin objetivo. De acuerdo con dichas lneas, el valor mnimo de z es 15 y se alcanza en el punto (3,6). El conjunto factible es un polgono convexo. En 3-D podra ser un poliedro y en el caso general un politopo. Los vrtices del politopo se llaman puntos extremos. El ptimo se alcanza en un punto extremo. Girando el conjunto factible (o con una funcin objetivo diferente), el ptimo podra alcanzarse en una arista (o en una cara, en Rn), en cuyo caso se alcanzara en mltiples puntos y la solucin no sera nica.
15 = x1 2 x2
2 x1 x2 + 2 = 0
4 Se ha eliminado la restriccin x1 3. 3 La regin factible no est acotada. La 2 = x1 2 x2 funcin objetivo decrece indefinidamente. 2 Existen tres puntos extremos, que son: x1 x2 + 3 = 0 1 T T T {0, 0} , {0, 2} , {1, 4} Obsrvese que no es posible en este caso 3 2 1 expresar un punto factible cualquiera como combinacin convexa de puntos extremos.
Puntos extremos
Los puntos extremos son los vrtices de la regin factible S. Matemticamente se definen diciendo que los puntos extremos son puntos factibles que no se pueden expresar como combinacin convexa de otros puntos factibles diferentes: x S , x y + (1 ) z , 0 < < 1, y, z S , y, z x Los valores 0 y 1 han sido excluidos para , para evitar que x coincida con y con z.
Direccin de no acotacin
Se llama direccin de no acotacin a una direccin d tal que si x es un punto factible cualquiera, x+d tambin es un punto factible para todo 0. En el ejemplo de la figura los vectores (1,0) y (1,1) son direcciones de no acotacin, as como tambin cualquier combinacin convexa de dichos vectores.
Soluciones bsicas
Las variables en un sistema Ax=b, con m=r<n, se pueden dividir en bsicas y libres (no bsicas). Las variables bsicas estn asociadas con m columnas independientes: xB Ax = b [ B N ] = b x B = B 1 ( b Nx N ) x N Se llama solucin bsica a toda solucin con valor nulo para las variables libres x N = 0. Se llama solucin bsica factible a una solucin bsica que satisface x B 0. Finalmente, solucin bsica factible ptima es un vector x que minimiza la funcin objetivo. Puede haber otras soluciones ptimas que no son soluciones bsicas. Se demostrar que si un problema de PL tiene solucin ptima, tiene solucin bsica factible ptima, por lo que es suficiente estudiar estas ltimas.
Caracterizacin de las direcciones de no acotacin Si x es un punto factible, x + d tambin deber serlo por definicin, luego d cumplir: Ax = b, x 0; A ( x + d ) = Ax + Ad = b Ad = 0 ; x +d 0 d 0 Casos degenerados
Cuando una o ms de las variables bsicas toma un valor cero, se dice que se est en un caso degenerado. En este caso una variable bsica con valor nulo puede ser sustituida por una variable libre (que tambin tiene valor nulo), sin que cambie el valor de la funcin objetivo. As pues, los casos degenerados permiten obtener una misma solucin bsica con dos o ms particiones diferentes de las variables x en bsicas xB y libres xN.
Tableau
Es una forma de disponer los datos y explicar los clculos (valor docente)
A T= T c b B = 0 cT B N cT N b 0
Gauss Jordan
I T = T 0
B 1N B 1b cT cT B 1N cT B 1b N B B
xB
coste reducido r
funcin objetivo ( z )
El paso de una solucin bsica factible a la siguiente puede explicarse e incluso realizarse manualmente en base al tableau (para ejemplos pequeos).
TEOREMA: El concepto geomtrico de punto extremo y el concepto matemtico de solucin bsica factible (SBF) son equivalentes Demostracin: Parte a): Si x es una solucin bsica factible es tambin un punto extremo.
Por ser SBF se tendr que: xT = {xT xT } = {xT 0T } , Ax = b Bx B = b B N B N Por reduccin al absurdo: si x no fuera punto extremo habra dos puntos factibles y y z, diferentes de x, tales que: x = y + (1 ) z, 0 < < 1; y N , z N 0, 0 = x N = y N + (1 ) z N y N = z N = x N Por otra parte, para las variables bsicas: Bx B = By B = Bz B = b y B = z B = x B
Demostracin: Parte b): Si x es un punto extremo, es tambin una solucin bsica factible (tiene mn componentes nulas).
Si x es extremo es factible, luego Ax=b (x 0). Separando las t componentes nulas: xT = {xT xT } = {xT 0T } (b + t = n) b t b t Por el momento se admite que el n de elementos de xb es distinto de m. Se tendr: Ax = b A b xb = b ( A b podra no ser cuadrada ) Si las columnas de Ab son independientes, x es una solucin bsica factible (quizs degenerada) y ya se ha terminado la demostracin.
TEOREMA:
Cualquier punto factible se puede representar como combinacin convexa de puntos extremos {v1, v2, , vk} y posiblemente de una direccin de no acotacin d:
S = {x : Ax = b, x 0} , x = d + i v i , donde
k k
Ejemplos grficos
2 x1 x2 + 2 = 0
6 5 4 3
i =1
i =1
= 1, i 0, i = 1, 2,..., k ; Ad = 0, d 0
xd
xc
x1 + 3 = 0
2 1 y1 = x e + x d 3 3 x=
xe
4 3
xc
p
p2
x1 x2 + 3 = 0
2 1
xb
x1 x2 + 3 = 0
2 1
1 1 y1 + y 2 2 2
3 2 1
xb
x = p + y2
xa y2 =
xa
2 1 xa + xe 3 3
y 2 = xa + p2
TEOREMA:
Cualquier problema de PL con una solucin finita ptima tiene una solucin bsica factible ptima. Hasta ahora se han estudiado las restricciones; ahora se considera la funcin objetivo.
Demostracin:
Por el teorema de representacin: x = d + i =1 i v i , i =1 i = 1, i 0, i = 1, 2,..., k Como consecuencia, la funcin objetivo se puede expresar en la forma: k cT x = cT d + i =1 i cT v i Si x es una solucin ptima, se verifica que cTd=0. En efecto, si cTd<0 la funcin objetivo no estara acotada inferiormente, puesto que k x = d + 1 i v i S ( ) cT x no est inferiormente acotada k Td>0, haciendo y Por otra parte, si fuera c 1 i vi = x d, se tendra que cTy<cTx, contra la hiptesis de que x es ptimo. Si cTd=0, tanto x como y son puntos ptimos. Se considera ahora el ndice j para el que cT v j = min {cT v i }. Ahora, para cualquier i combinacin convexa de vi se verificar: k k k T T T T c y = i =1 i c v i i =1 i c v j = c v j i =1 i = cT v j Puesto que y es ptimo, se tendr que cumplir cT y = cT v j , lo que demuestra que hay un vrtice o solucin bsica factible ptima vj.
k k
COROLARIO
La funcin objetivo, en el ptimo, no puede decrecer en ninguna direccin factible.
Demostracin
Sea x una solucin ptima del siguiente problema de PL: min z = cT x, sujeta a: Ax = b, x 0 Sea p una direccin factible en x, por lo que el punto x+p ser factible para un >0 suficientemente pequeo. Como x es ptimo, se cumplir: cT x cT ( x + p ) = cT x + cT p cT p 0 Por otra parte, considerando que tanto x como x+p son factibles: Ap = 0 A (x + p) = b Ax = b , pi 0 si xi = 0 x 0 x + p 0 Estas condiciones, que debe cumplir cualquier direccin factible p en el ptimo, sern utilizadas posteriormente en el mtodo simplex.
Descripcin general
Propuesto por Dantzig en 1947: uno de los algoritmos ms importantes del siglo XX. Durante muchos aos ha sido el mtodo mas eficiente en programacin lineal (hasta la aparicin de los mtodos interiores en la dcada de los 80). Se parte de una solucin bsica factible (se ver ms adelante cmo encontrarla). Se realiza un proceso iterativo en el cual se va recorriendo una sucesin de soluciones bsicas factibles, cada una de ellas mejor que la anterior (menor valor en cTx). Finalmente se llega a un punto que ya no es posible mejorar en ninguna direccin factible. Por la convexidad del problema, ese punto es el ptimo buscado.
Formulacin de la etapa fundamental: paso de una solucin bsica a otra solucin bsica adyacente que produce un menor valor en la funcin objetivo
El problema se expresa en la forma: min cT x, sujeta a: Ax = b, x 0 ( b 0, A R mn , rank ( A ) = m ) La solucin bsica actual tendr al menos nm componentes nulas xN, correspondientes a las variables libres (no bsicas) en el sistema de ecuaciones lineales particionado: xB Ax = b, [ B N ] = b Bx B + Nx N = b x B = B 1 ( b Nx N ) = B 1b x N Las columnas de B son un conjunto de m columnas independientes de A que conducen a una solucin bsica factible ( x B 0 ) .
Existe alguna solucin bsica factible y adyacente que d un valor menor en la funcin objetivo z=cTx?
Para moverse a otra solucin bsica adyacente habr que ver si existe una variable libre que, al aumentar su valor desde cero, haga decrecer z. Si esta variable existe, su valor podr aumentarse hasta que se viole alguna restriccin, es decir, hasta que una de las variables bsicas anteriormente positivas se haga cero. En este momento se puede hacer un cambio de base, es decir, la sustitucin de la variable bsica que se ha hecho cero por la variable libre que permita disminuir z.
Formulacin matricial del cambio a una solucin bsica factible adyacente (cont.)
Sea i una componente negativa de r = c N NT B T c B , y sea xi la variable libre correspondiente de xN. Si se aumenta xi disminuye z. Cunto se puede aumentar xi? Desde el punto de vista de z, cuanto ms mejor. Sin embargo, como las ecuaciones de restriccin ( Ax = b, x 0 ) deben satisfacerse, xi slo se podr aumentar satisfaciendo Ax=b, y mientras no haya alguna componente de xB que se haga negativa. Para estudiar matemticamente esta condicin considrese que Ni es la columna de A ( de N) asociada con la variable libre xi. Se deber cumplir: Ax = b Bx B + Ni xi = b x B = B 1b B 1Ni xi 0 donde x B son los valores de xB modificados por la variacin de xi. Esta expresin indica que slo si B 1Ni > 0, la variable bsica correspondiente se reducir al aumentar xi. Los valores de xi que hacen anularse a cada una de las componentes de x B vienen dados por el vector B 1b. / B 1Ni . Teniendo en cuenta la condicin anterior, se concluye que la primera variable bsica que se har cero vendr dada por la expresin: [ xi , s ] = min ( B 1b. / B 1Ni : B 1Ni > 0 ) Esta expresin permite determinar qu variable bsica xs sale de la base y es sustituida por la variable libre xi. Si ningn B 1Ni > 0, el problema no est acotado. En algunos casos este mnimo se obtiene para xi = 0. Esto quiere decir que la nueva variable bsica no reduce el valor de la funcin objetivo z. Se trata de un caso degenerado, que necesita de tcnicas especiales para su resolucin.
Soluciones mltiples
En algunas ocasiones la solucin ptima no es nica. Esto sucede cuando al llegar al ptimo hay variables libres cuyo coste reducido es cero. Estas variables se pueden hacer distintas de cero sin que vare la funcin objetivo.
Es necesario que los elementos de b sean no nulos, para garantizar que z 0. Cuando no hay variables de holgura o no hay suficientes se pueden introducir variables artificiales. Con ecuaciones de restriccin en la forma Ax=b se puede tener:
Ax = b, x, b 0
m x [ A I ] = b, z I = yi i =1 y
x A I] = b [ z
x B z, x N x
x B y, x N x
( fase I )
Observaciones
Se numeran las sentencias Se parte de una solucin bsica factible 10: costes reducidos 11: se determina la variable libre entrante 12: si ninguna variable libre reduce la funcin objetivo se est en el ptimo. 19: Si ninguna variable bsica se hace cero el problema no est acotado. 24: La primera variable bsica que se haga cero saldr de la base.
1. function [x,xbas,z,nit,flag]=progLinBas1(A,b,c,xbasic) 2. [m,n]=size(A); tol=1e-08; nitmax=1000; 3. xbas=find(xbasic==1); xfree=find(xbasic==0); 4. B=A(:,xbas); cB=c(xbas); cN=c(xfree); 5. xB=B\b; xN=zeros(n-m,1); z=cB'*xB; y=B'\cB; 6. esOptima=0; nit=0; 7. while esOptima==0 && nit<nitmax 8. nit=nit+1; 9. % PARTE 1: Variable entrante y test de optimalidad 10. r=cN-A(:,xfree)'*y; 11. [ce,ef]=min(r); e=xfree(ef); % variable ENTRANTE 12. if ce>-tol % si ce no es significativamente negativa 13. esOptima=1; flag='optimo'; x=zeros(n,1); x(xbas)=xB; return; 14. end 15. At=A(:,e); Athat=B\At; 16. % PARTE 2: Determinar variable saliente 17. bhat=B\b; 18. it=find(Athat>tol); % solo denominadores positivos 19. if length(it)==0 % problema no inferiormente acotado 20. esOptima=-1; flag='no acotado'; x=[]; return; 21. end 22. xt=bhat(it)./Athat(it); % valores de xt que anulan it 23. % se determina la variable SALIENTE 24. [xtbar,se]=min(xt); sa=it(se); s=xbas(sa); 25. % PARTE 3: Modificar la base: xbasic, xbas y xfree 26. xbasic(e)=1; xbasic(s)=0; 27. xbas=find(xbasic==1); xfree=find(xbasic==0); 28. % nueva matriz B; nuevos vectores cB, cN, xB, y, z 29. B=A(:,xbas); cB=c(xbas); cN=c(xfree); 30. y=B'\cB; xB=B\b; z=cB'*xB; 31. end
0 xi ui
El problema de programacin lineal se plantea en la forma:
minimizar: z = cT x,
La solucin ms adecuada:
Modificar el mtodo simplex, permitiendo que las variables libres tomen valor cero o el valor mximo correspondiente. Concepto de solucin bsica factible extendida x: Cumple las condiciones: a) El punto x satisface todas las restricciones. b) Las columnas de A correspondientes a las componentes bsicas de x, que estn estrictamente entre sus lmites (sin ser igual a ellos), son independientes.
Lema
Existe una equivalencia entre las soluciones bsicas factibles extendidas y una solucin bsica factible de un problema estndar equivalente:
minimizar: z = cT x, sometida a: Ax = b ( A de rango pleno ) x+s=u x, s 0
Demostracin
Sea (x,s) una solucin bsica factible del problema estndar equivalente. Las soluciones x y s se descomponen de la forma siguiente: x: s:
k componentes entre sus lmites, k componentes positivas, l en el lmite superior, l nulas, nkl nulas nkl positivas
Sean A1 y A2 las submatrices de A correspondientes a las x no nulas. Se construye la matriz B correspondiente a las componentes positivas de x y s. Las columnas de B son linealmente independientes (hay una solucin bsica factible) si y slo si las columnas de A1 son linealmente independientes (hay una solucin bsica factible extendida): x1 A1 A 2 x1 0 A1x1 = 0 x 2 Ik x 2 0 Ik B = x 2 = s3 = 0 Il s1 s1 0 s1 = x1 I n k l s3 0 s3
Bx B + Nx N = b
( B invertible )
x B = B 1b B 1Nx N
Las variables libres xi pueden tener valor 0 ui. Sustituyendo en la funcin objetivo:
z = cT x = cT x B + cT x N = cT B 1b + ( cT cT B 1N ) x N = cT B 1b + r T x N B N B N B B
Al igual que antes, esta ecuacin es la base del test de optimalidad (ms complicado): Si la variable libre xi es nula y ri0, no se puede reducir z si xi entra en la base. Si la variable libre xj=uj y rj0 tampoco se puede reducir z si xj entra en la base. Si la solucin no es ptima se puede reducir z sustituyendo una variable bsica saliente por una variable libre entrante. Sea B1Ni la columna de B1N correspondiente a xi. Determinacin de la variable saliente. Se pueden producir tres situaciones: La variable entrante aumenta (o disminuye) hasta alcanzar el otro lmite. La base no cambia. Una variable bsica aumenta su valor, llega al lmite superior y deja la base. Una variable bsica uj disminuye su valor, llega a cero y deja la base. Se debe ejecutar un test que determine cul de estas tres posibles situaciones es la primera que se produce.
Mtodo simplex con variables doblemente acotadas (cont.) Las variables bsicas cambian, al variar una cantidad i la variable libre xi: 0 x B = ( B 1b B 1Nx N ) B 1Nii u, 0 x B = x B B 1Nii u El signo de ( B 1N i i ) es () si xi aumenta desde 0 y (+) si xi disminuye desde ui (i0).
La variable saliente es la que antes alcanza una de las siguientes condiciones: Variable libre que entra y abandona la base, despus de alcanzar el otro lmite:
1
Si xi = 0 y B N i > 0, y i crece, las variables bsicas decrecen y puede haber una que se anule. Hay que calcular la que lo hace para un valor ms pequeo de xi: [i , s ] = min ( x B . / B 1Ni : B 1Ni > 0 ) Si xi = 0 y B 1N i < 0, y i crece, las variables bsicas crecen y alguna puede alcanzar el lmite superior. Hay que determinar cul lo hace en primer lugar: [i , s ] = min ( ( x B u ) . / B 1Ni : B 1Ni < 0 ) 1 Si xi = ui i , y B N i > 0, y i crece (xi decrece), las variables bsicas crecen y puede haber alguna que se haga uj. Hay que ver cul lo hace en primer lugar: [i , s] = min ( ( u x B ) . / B 1Ni : B 1Ni > 0 ) Finalmente, si xi = ui i , y B 1N i < 0, y i crece (xi decrece), las variables bsicas decrecen y puede haber alguna que se anule. Lo hace en primer lugar: [i , s ] = min ( x B . / B 1Ni : B 1Ni < 0 )
ui