La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

5- Problemas de grandes dimensiones: descomposición

Presentaciones similares


Presentación del tema: "5- Problemas de grandes dimensiones: descomposición"— Transcripción de la presentación:

1 5- Problemas de grandes dimensiones: descomposición

2 - descomposición de Benders o de variables
Métodos de descomposición: permiten la resolución de problemas de gran tamaño con una estructura especial mediante la solución iterativa de otros problemas de menor tamaño Existen varias técnicas de descomposición: - descomposición de Benders o de variables - descomposición de Dantzing-Wolfe o de restricciones - descomposición primal-dual - descomposición anidada Estructura: problemas bietapa y multietapa. El tamaño del problema crece exponencialmente con el número de etapas. Para problemas pequeños o medianos se pueden usar técnicas convencionales de PL pero resulta imprescindible mejorar la técnica para los de grandes dimensiones, aprovechando su estructura especial.

3 Problema lineal bietapa: (PL-2) Min c1Tx1+c2Tx2 /
A1x = b1, A1 de dimensión m1*n1 B1x1+A2x2 = b2, A2 de dimensión m2*n2 x1  0 , x2 0 dimensión del sistema (m1+m2)*(n1+n2) Problema lineal multietapa, para P etapas: (PL-P) Min  cpTxp/ Bp-1xp-1+Apxp = bp, p=1..P Ap de dimensión mp*np xp  0 , B0= 0 dimensión del sistema  mp* np

4 Descomposición de Benders (primal)
Algoritmo iterativo: Descompone el problema lineal bietapa PL-2 en un problema maestro y un subproblema. Alterna entre la solución del maestro y del subproblema El maestro: representa la primera etapa mas las condiciones necesarias, denominadas cortes, derivadas de la segunda etapa. El subproblema: representa la segunda etapa Se utiliza cuando el bloque de variables x1 complica la resolución del problema: fijando temporalmente sus valores, resulta mucho mas sencillo encontrar la solución (implícitamente: n1 <<n2)

5 Ejemplo: problemas de planificación multiperíodo, donde cada subproblema se preocupa de la optimización de la operación del sistema durante un período particular y es necesaria una coordinación adicional para el conjunto de los períodos. (PL-2) Equivalente: (1) Min c1Tx1+(x1) / A1x1 = b1, x1  0 , donde (x1)R=función de recursos, es una poligonal convexa que representa la función objetivo de la segunda etapa como función de las decisiones de la primera etapa: (2) (x1)= Min c2Tx2 / A2x2 = b2- B1x1 (2 vars duales) x2  0 ,

6 Expresando (2) en su forma dual:
(3) (x1)= Max ( b2- B1x1)T 2 / A2T2  c2 Sea = 21, 22... 2v el conjunto de vértices del poliedro convexo definido por la región factible A2T2  c2. El problema (3) se puede resolver enumerando todos los vértices del poliedro: (4) (x1)= Max  ( b2- B1x1)T 2i, i=1:v En forma equivalente se puede escribir (x1) como una función poligonal de las variables x1: (5) (x1)= Min  /   ( b2- B1x1)T 2i ,  i=1...v donde R y las restricciones se denominan cortes.

7 (7) Min c1Tx1+1 / (Maestro restringido)
El problema original PL-2 se puede expresar como: (6) Min c1Tx1+ / A1x1 = b1,   ( b2- B1x1)T 2i ,  i=1...v x1  0 es el maestro completo con TODOS los cortes posibles En lugar de incluir todos los cortes, lo que implicaría disponer de forma explícita de la función de recursos (x1), el algoritmo va introduciendo un corte en cada iteración. Para la iteración j, el problema maestro restringido es: (7) Min c1Tx1+1 / (Maestro restringido) 2(i-1)TB1x1 + 1  2(i-1)T b2 ,  i=1...j

8 i es el índice de las iteraciones y una iteración es un ciclo completo maestro-subproblema.
x1 y 1 varían en cada iteración. El subproblema se puede expresar como: (8) Min c2Tx2 / (Subproblema) A2x2 = b2- B1x1 (2 vars duales) x2  0 , cortes: son los hiperplanos tangentes a la función objetivo de (8), en cada punto x1 Esquema de resolución: Maestro restringido x1 Subproblema  2

9 Algoritmo: j=0, Mientras (condición) 1- si j>0, añadir cortes correspondientes a 2 (j-1) 2- resolver el maestro(j) , obteniendo x1(j) 3- resolver el subproblema(j) con los recursos b2- B1x1(j) y obtener las variables duales 2 (j) 4- j=j+1, fin mientras en cada iteración se modifica la región factible del maestro, agregando restricciones a medida que se hacen más iteraciones aumenta el número de restricciones agregadas al maestro, con lo cual se va aproximando al óptimo.

10 condición= z+- z-/ z+
En cada iteración se puede dar una cota superior e inferior del valor óptimo: 1- cota superior= z+= c1Tx1+c2Tx2 , donde: x1=solución del maestro y x2=solución del subproblema 2- cota inferior= z-= c1Tx1+ 1 , ya que es el valor óptimo de un problema con menos restricciones que el original Condición de optimalidad: la condición de fin del algoritmo es estar suficientemente cercanos al óptimo o la coincidencia de ambas cotas: condición= z+- z-/ z+ La cota inferior es monótona creciente, la superior no es forzosamente decreciente (se toma la menor de todas las cotas superiores previas)

11 En cada iteración el corte agregado tiene el efecto de eliminar la solución óptima anterior de la nueva región del maestro (no se repiten cortes mientras no se cumple la condición de parada) El tamaño del problema PL-2 era (m1+m2)*(n1+n2), el tamaño del problema maestro es (m1+j)*(n1+1) y el del subproblema es m2*n2, el número de restricciones en del problema maestro aumenta en uno e cada iteración. En cada iteración, en el subproblema sólo cambian los términos independientes. En cada iteración se le agrega al problema maestro un corte que elimina la factibilidad del óptimo de la iteración anterior, de forma que se dispone de una solución básica no factible primal y dual factible.

12 La descomposición de Benders permite disponer siempre de una solución factible, aunque no sea la óptima (primal). Si el subproblema es factible no acotado  el problema lineal bietapa es no acotado Si el subproblema es no factible  en el maestro se introduce una penalización para evitar la infactibilidad en ese valor de x1

13 Cortes de factibilidad (caso infactibilidad del subproblema)
Dado el maestro restringido: Min c1Tx1+1 / A1x1 = b1, (A) 2(i-1)TB1x1 + 1  2(i-1)T b2 ,  i=1...j x1  0 Las desigualdades (A) las llamamos cortes de optimalidad Y el subproblema: (x1)= Min c2Tx2 / A2x2 = b2- B1x1 (2 vars duales) x2  0 , Supongamos el subproblema infactible, replanteamos el subproblema con variables artificiales:

14 A2x2 + v+-v- = b2- B1x1 (2 vars duales) x2  0 , v+  0 , v-  0
(x1)= Min c2Tx2 +M v+ + Mv- / A2x2 + v+-v- = b2- B1x1 (2 vars duales) x2  0 , v+  0 , v-  0 Su dual: (x1)= Max ( b2- B1x1)T 2 / [A2 I –I]T2  [c2T M M] O sea, (B) (x1)= Max ( b2- B1x1)T 2 / A2T2  c2T -M  2  M NOTA: Si el subproblema era infactible, su dual era no acotado, con las variables artificiales, se vuelve acotado

15 En el óptimo: c2Tx2 +M v+ + Mv- = ( b2- B1x1)T 2 Si el problema tiene solución v+= v- =0  c2Tx2 +M v+ + Mv- = ( b2- B1x1)T 2 Si el problema no tiene solución  objetivo dual no acotado superiormente (máximo)  ( b2- B1x1)T 2  0 Para excluir ese valor de x1 que vuelve infactible el subproblema, se introduce el llamado corte de factibilidad: ( b2- B1x1)T 2  0

16 Introduciendo los cortes de factibilidad, el maestro restringido resulta:
Min c1Tx1+1 / A1x1 = b1, 2(i-1)TB1x1 + .1  2(i-1)T b2 ,  i=1...j x1  0 Donde:  = 1 para cortes de optimalidad y  = 0 para cortes de factibilidad

17 Descomposición de Dantzing-Wolfe (dual)
Se utiliza cuando un conjunto de restricciones complican la solución del problema (se supone que el número de restricciones “molestas” m2 << m1. Se descompone el problema original en un maestro y un subproblema. Es un algoritmo iterativo y alterna entre la solución del maestro y del subproblema Se desea resolver el siguiente problema: (9) Min c1Tx1/ A1x1 = b1, A1 de dimensión m1*n1 B1x1 = b2, B1 de dimensión m2*n1 x1  0 , dimensión del sistema (m1+m2)*n1

18 Es equivalente a resolver:
(10) Min c1Tx1/ B1x1 = b2, x1  0 , x1 K, donde K={x1 / A1x1 = b1, x1  0 } Como todo punto de un poliedro convexo (teorema de Minkowski y Weyl) puede ponerse como una combinación lineal convexa de sus vértices (puntos extremos) pq, q=1..Q, mas una combinación lineal no negativa de rayos extremos pr, r=1..R, reformulamos K como: K={x = qpq + rpr / q= 1, l 0 } Considerando conocidos todos los vértices del poliedro, el problema (10) se puede reformular como:

19 (11) Min (c1Tpq) q + (c1Tpr) r /
 (B1pq )q +  (B1pr )r = b2, : vars duales 2 q = 1, : vars duales  l 0 l=1...P+Q

20 En lugar de enumerar todos los vértices, el algoritmo de descomposición iterativo, introduce un vértice en cada iteración, a medida que son necesarios: (12) Min (c1Tpq) q + (c1Tpq) q / (Maestro restringido)  (B1pq)q +  (B1pr)r = b2, : vars duales 2 r = 1, : vars duales  l 0 l=1...P’+Q’, q=1:Q’ Q , r=1:R’  R Supongamos que se dispone de una solución inicial factible x11 K y que el problema (12) se resuelve por simplex revisto  la condición de optimalidad es: (13) c1Tx1* - (2T  ) (B1x1* 1)T  0, o sea: (14) z1=Mín(c1Tx1 - 2T B1x1) -   0 x1 K

21 expresando la minimización como problema lineal, el subproblema para cada iteración es:
(15) z1=Mín(c1Tx1 - 2T B1x1) -  / (Subproblema) A1x1 = b1, x1  0 En cada iteración aumenta en uno el número de variables del problema maestro y se modifican los coeficientes de la función objetivo del subproblema. En una iteración del algoritmo se resuelve el problema maestro y se pasa el valor del vector 2 y  al subproblema. Se resuelve el subproblema. Si la expresión (14) es negativa y finita, la solución x1 obtenida en el subproblema, se envía al maestro. Si la expresión (14) es no acotada, se identifica el rayo extremo solución de A1x1 = 0 y se envía al maestro. Si la expresión (14) es positiva o nula el algoritmo termina, con el óptimo alcanzado.

22 Esquema de resolución: Maestro restringido 2 ,   Subproblema  x1
La solución óptima está dada por la combinación lineal de las soluciones de las diferentes iteraciones: x1* = lx1 l l=1:j El tamaño del maestro es ( m2+1).j y el subproblema es m1*n1. En el maestro aumenta el número de variables en uno en cada iteración. OBS: en este caso no se cuenta con una solución básica primal factible hasta el final.

23 Cotas superior e inferior de la función objetivo z*:
Sea un problema genérico: (P) z*= Min cjxj/ jJ  aijxj= bi i=1..m variables duales: u xj  0  jJ En cada iteración del simplex se calcula: cr*= min {cj - uT A.j  jJ}, con A.j = j-sima columna de A Si cr* 0 , el algoritmo termina. De lo contrario de pivotea en esa columna y el algoritmo continua. Método de generación de columnas: Supongamos que el problema original (P) contiene muchas variables y consideramos un problema restringido (RMP) donde solamente figura subconjunto de columnas J’  J:

24 (RMP) z+= Min cjxj/ jJ’J  aijxj= bi i=1..m variables duales: u xj  0  jJ’ J Calculando los costos reducidos cr* = min {cj - uT A.j  jJ }, Si cr* 0 , el algoritmo termina y se alcanzó el óptimo, de lo contrario, se debe agregar esa columna con costo reducido negativo a (RMP), luego pivotear y el algoritmo continua con un problema al que se le agregó una variable.

25 Cota superior e inferior de z*, valor óptimo de (P) :
z*  z+ = valor óptimo del maestro restringido Se cumple ya que z+ es solución de (RMP) que se derivó de (P) eliminando columnas. z+ + cr*  z* , ya que: cr* = min {cj - uT A.j  jJ }  Si x*  0 es la solución óptima, multiplicando escalarmente por x* 

26 ya que u es la variable dual de (RMP) y se cumple:
En resumen:

27 En el caso particular de al descomposición de Dantzing-Wolfe:

28 Observaciones: si se comienza con una solución factible inicial, ni el maestro ni el subproblema pueden ser infactibles Si el subproblema es no acotado, se agrega en el maestro una variable correspondiente a una dirección admisible (r) Si el maestro restringido es no acotado, el problema original es no acotado. Para resolver el maestro y subproblema, por ser restricciones de igualdad, utilizar variables artificiales.


Descargar ppt "5- Problemas de grandes dimensiones: descomposición"

Presentaciones similares


Anuncios Google