Programación Lineal Entera

76
Programación Lineal Entera Antonio H. Escobar Z. 2013 Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería – Maestría/Doctorado

description

Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería – Maestría/Doctorado. Programación Lineal Entera. Antonio H. Escobar Z. 2013. Técnica de Descomposición Matemática de Benders. Descomposición de Benders. - PowerPoint PPT Presentation

Transcript of Programación Lineal Entera

Page 1: Programación  Lineal Entera

Programación Lineal Entera

Antonio H. Escobar Z.

2013

Universidad Tecnológica de Pereira – Colombia

Posgrado en Ingeniería – Maestría/Doctorado

Page 2: Programación  Lineal Entera

Técnica de Descomposición

Matemática de Benders

Page 3: Programación  Lineal Entera

Descomposición de Benders

• Metodología de solución exacta usada para resolver problemas de gran tamaño.

• Divide el problema en un problema maestro y uno o varios problemas satélites individualmente más simples de resolver.

• Aplicado cuando dentro del problema aparecen variables complicantes. Se consideran variables complicantes:

Variables enteras dentro de un problema lineal que también tiene variables continuas.

Variables con exponentes diferentes a 1 o dentro de funciones no lineales, dentro de un problema que resulta ser un PL si estas variables se retiran del problema.

Variables continuas dentro de un PL que no permiten separar el problema en varios problemas independientes de PL de menor tamaño.

Page 4: Programación  Lineal Entera

Descomposición de Benders

• Metodología de solución exacta usada para resolver problemas de Programación Lineal Entera Mixta PLEM.

• Resuelve un PLEM a través de la solución de sucesivos problemas de Programación Entera con un número reducido de restricciones.

• Usa conceptos de:

Programación Lineal; Dualidad; Programación Entera PE; Problema maestro; Problema satélite.

Page 5: Programación  Lineal Entera

Descomposición de Benders

• Problemas de Programación Lineal Entera Mixta PLEM que se desea resolver:

Page 6: Programación  Lineal Entera

(PLEM)

Page 7: Programación  Lineal Entera
Page 8: Programación  Lineal Entera

Garantiza soluciones factibles ya que si:

El problema dual es ilimitado y el primal es infactible.

Page 9: Programación  Lineal Entera

Sólo interesan los valores de x que no hagan el problema dual ilimitado.

Page 10: Programación  Lineal Entera
Page 11: Programación  Lineal Entera
Page 12: Programación  Lineal Entera

Si queremos que en un mismo problema se determine el valor de las variables complicantes x e implícitamente se determine el valor de las variables continuas y, debemos resolver el siguiente problema equivalente:

Page 13: Programación  Lineal Entera

(PLEM)

(PLE)

Problema original expresado en función de los puntos extremos y las direcciones extremas del PLD.

Page 14: Programación  Lineal Entera

(PLE)

Calcular los puntos extremos y las direcciones extremas requiere la solución de PL´s:

Page 15: Programación  Lineal Entera

Haciendo:

Reescribimos el problema:

Page 16: Programación  Lineal Entera

La siguiente relación es equivalente:

Page 17: Programación  Lineal Entera

(PLE)

(PLE)

Page 18: Programación  Lineal Entera

(PLE)

Calcular los puntos extremos y las direcciones extremas requiere la solución de PL´s.

Page 19: Programación  Lineal Entera

(PLEM)

(PLE)

En resumen:

Page 20: Programación  Lineal Entera

(PLEM)

(PLE)

Ejemplo: Demostrar que el PLEM de la parte superior es equivalente al PLE de la parte inferior.

Page 21: Programación  Lineal Entera

(PLEM)

Paso 1: El problema se expresa en función de las variables complicantes y se construye un PL.

x es temporalmente retirado de la F.O.

x pasa al rhs en las restricciones.

Page 22: Programación  Lineal Entera

Paso 2: Se encuentra el Dual del PL anterior:

Page 23: Programación  Lineal Entera

Paso 3: Se encuentran los puntos extremos y las direcciones extremas del poliedro convexo U:

Page 24: Programación  Lineal Entera

(PLE)

Paso 4: Usando los puntos extremos y las direcciones extremas, se determinan las restricciones de:

Page 25: Programación  Lineal Entera

(PLEM)

En el problema PLEM original, sólo aparece una variable complicante x :

Por lo tanto, cx = x

Page 26: Programación  Lineal Entera

Cálculo de las restricciones del PLE asociadas a los puntos extremos del PLD:

Page 27: Programación  Lineal Entera

Restricciones del PLE asociadas a los puntos extremos del PLD:

Page 28: Programación  Lineal Entera

Cálculo de las restricciones del PLE asociadas a las direcciones extremas del PLD:

Page 29: Programación  Lineal Entera

Restricciones del PLE asociadas a las direcciones extremas del PLD:

Page 30: Programación  Lineal Entera

(PLE)

En consecuencia:

(PLE)

Page 31: Programación  Lineal Entera

(PLEM)

(PLE)

Lo que demuestra que los dos problemas siguientes son equivalentes:

Page 32: Programación  Lineal Entera

Al resolver el PLE se tiene:

Page 33: Programación  Lineal Entera

(PLEM)

Page 34: Programación  Lineal Entera

En conclusión:

•Es posible transformar un PLEM en un PLE.

•Para resolver el problema de PLE se requiere determinar todos los puntos extremos y todas las direcciones extremas del poliedro convexo del problema Dual.

•La variable z que aparece en el problema final es continua.

Esta forma de resolver el problema no es eficiente. El método de descomposición de Benders resuelve el problema PLE usando únicamente un subconjunto de puntos extremos y direcciones extremas: los estrictamente necesarios.

Page 35: Programación  Lineal Entera

Algoritmo de Descomposición de Benders

•Genera un conjunto reducido de restricciones del PLE (cortes de Benders), es decir, determina sólo el subconjunto necesario de puntos extremos y direcciones extremas.

•Para un valor definido de x y para cada punto extremo encontrado para el PLD se puede definir la siguiente limitante superior de z porque representa una solución factible del PLEM:

•Si lo que se encuentra es una dirección extrema, no se actualiza la limitante superior porque representa una solución infactible para el problema original.

•La solución del PLE con un número reducido de restricciones permite identificar una limitante inferior de z porque representa un problema relajado del PLEM original:

Page 36: Programación  Lineal Entera

Algoritmo de Descomposición de Benders

Paso inicial:

•Definir el siguiente problema maestro inicial:

Este problema de PLE no contiene aún restricciones asociadas a puntos extremos o direcciones extremas de U.

(PLE)

Page 37: Programación  Lineal Entera

Espacio solución del PLE inicial:

x puede asumir cualquier valor entero positivo y z puede crecerIlimitadamente hacia + ∞ o hacia - ∞

z

x0 1 2 3 …

Page 38: Programación  Lineal Entera

Algoritmo de Descomposición de Benders

Paso inicial:

•La solución de este PLE define la limitante inferior LI. Dado que z es continua e irrestricta, y el problema es de minimización, z crece ilimitadamente hacia -∞, en consecuencia:

LI = - ∞

•Como no se tiene aún un punto extremo del PLD ni un valor definido para x, no se tiene una solución factible para el problema. En consecuencia:

LS = + ∞

Page 39: Programación  Lineal Entera

Algoritmo de Descomposición de Benders

Paso inicial:

•Se define un valor inicial entero para las variables complicantes representadas por x.

•Un valor inicial adecuado está relacionado con información disponible del problema que se desea resolver.

•Si no se tiene un valor inicial entero estimado para x, que se denominará x* , podemos asumir el valor 0:

x* = 0

Page 40: Programación  Lineal Entera

Algoritmo de Descomposición de Benders

Paso 1: solución del subproblema satélite

Usando el valor actual de x , denominado x* , resolver el PLD:

Como resultado de resolver el PLD se tiene un punto extremo o una dirección extrema del poliedro convexo U.

Page 41: Programación  Lineal Entera

C (x*)

La solución es un punto extremo

La solución es una dirección extrema

C (x*)

u*

v*

Page 42: Programación  Lineal Entera

Algoritmo de Descomposición de Benders

Paso 2: Actualización de la limitante superior

Si la solución del PLD:

Es un punto extremo, que se denominará u* , actualizar la limitante superior LS si la actual limitante satisface la desigualdad:

Si no es un punto extremo ir al paso 3.

Page 43: Programación  Lineal Entera

Algoritmo de Descomposición de Benders

Paso 3: Generación del corte de Benders

•Si la solución del PLD es un punto extremo: u* construir la restricción:

z ≥ cx* + u* ( b – A x* )

•Si la solución del PLD es una dirección extrema: v* construir la restricción:

0 ≥ v* ( b – A x* )

Page 44: Programación  Lineal Entera

Algoritmo de Descomposición de Benders

Paso 4: Redefinición del problema maestro

Adicionar la restricción generada en el paso 3:

z ≥ cx* + u* ( b – A x* ) ó 0 ≥ v* ( b – A x* )

Al problema maestro actual:

Donde Ω1 y Ω2 es el subconjunto de puntos extremos y direcciones extremas adicionados hasta ahora al PLE.

(PLE)

Page 45: Programación  Lineal Entera

Algoritmo de Descomposición de Benders

Paso 5: Resolver el problema maestro

Resolver el problema maestro actualizado:

Y encontrar el nuevo valor de x : nuevo x* .

(PLE)

Page 46: Programación  Lineal Entera

Algoritmo de Descomposición de Benders

Paso 6: Actualizar la limitante inferior

Actualizar el límite inferior LI utilizando el resultado de:

LI = z*

(PLE)

Page 47: Programación  Lineal Entera

Algoritmo de Descomposición de Benders

Paso 7: Criterio de parada

Si LI < LS vaya al paso 1. En caso contrario, si LI = LS, x* es la parte de la solución óptima del problema PLEM asociada a las variables complicantes. Para encontrar el valor de las variables y resolver:

La solución óptima del problema es: x* , y* , LI = LS = cx* + dy*

Page 48: Programación  Lineal Entera

Algoritmo de Descomposición de Benders

Ejemplo:

Usando el algoritmo de descomposición de Benders, resolver el siguiente problema de PLEM:

Forma estándar

Page 49: Programación  Lineal Entera

Algoritmo de Descomposición de Benders

Paso inicial:

•Definimos el siguiente problema maestro inicial:

Este problema de PLE no contiene aún restricciones asociadas a puntos extremos o direcciones extremas de U.

(PLE)

Page 50: Programación  Lineal Entera

z

x0 1 2 3 …

Espacio solución del PLE inicial:

x puede asumir cualquier valor entero positivo y z puede crecerIlimitadamente hacia + ∞ o hacia - ∞

Page 51: Programación  Lineal Entera

Algoritmo de Descomposición de Benders

Paso inicial:

•La solución de este PLE define la limitante inferior LI. Dado que z es continua e irrestricta, y el problema es de minimización, z crece ilimitadamente hacia -∞, en consecuencia:

LI = - ∞

•Como no se tiene aún un punto extremo del PLD ni un valor definido para x, no se tiene una solución factible para el problema. En consecuencia:

LS = + ∞

Page 52: Programación  Lineal Entera

Algoritmo de Descomposición de Benders

Paso inicial:

•Se define un valor inicial entero para la variable complicante, igual a 0 ya que no se conoce una solución entera inicial para x:

x* = 0

Page 53: Programación  Lineal Entera

Algoritmo de Descomposición de Benders: iteración 1

Paso 1: solución del subproblema satélite

Usando x* = 0 resolvemos el problema dual (PLD):

0 0

Page 54: Programación  Lineal Entera
Page 55: Programación  Lineal Entera

Algoritmo de Descomposición de Benders: iteración 1

•El paso 2 no actualiza la incumbente porque no se encontró un punto extremo.

•Se va al paso 3 y se construye la restricción asociada a la dirección extrema, ya que el PL es ilimitado a través de la dirección v2 = (1, 5/2 ):

Nueva restricción:

Page 56: Programación  Lineal Entera

Paso 5: Resolver el problema maestro

Resolver el problema maestro actualizado:

Algoritmo de Descomposición de Benders: iteración 1

Paso 4: Redefinición del problema maestro

Adicionar al problema maestro actual, la restricción generada en el paso 3:

0 ≥ 12 - 19 x

(PLE)

Page 57: Programación  Lineal Entera

Espacio solución del PLE actual:

x puede asumir cualquier valor entero positivo ≥ 1z puede crecer Ilimitadamente hacia + ∞ o hacia - ∞

z

x0 1 2 3 …

x ≥ 12/19

Page 58: Programación  Lineal Entera

Algoritmo de Descomposición de Benders: iteración 1

Paso 6:

LI = - ∞

•Como no se tiene aún un punto extremo del PLD, a pesar de tener ya un valor definido para x, no se tiene una solución factible para el problema. En consecuencia:

LS = + ∞

Paso 7:

LI < LS

Regresar al paso 1 usando la solución de x* obtenida en el paso 5.Como no se encontró solución para x, se asume un x* ≥ 1 y entero.

Page 59: Programación  Lineal Entera

Algoritmo de Descomposición de Benders: iteración 2

Paso 1: solución del subproblema satélite

Usando x* = 2 resolvemos el problema dual (PLD):

2 2

Page 60: Programación  Lineal Entera
Page 61: Programación  Lineal Entera

Algoritmo de Descomposición de Benders: iteración 2

Paso 2 se actualiza la incumbente (LS) porque se encontró un punto extremo: 2 2

Paso 3 se construye la restricción asociada al punto extremo: u* = (0,0).

Nueva restricción:

Page 62: Programación  Lineal Entera

Paso 5: Resolver el problema maestro

Resolver el problema maestro actualizado:

Algoritmo de Descomposición de Benders: iteración 2

Paso 4: Redefinición del problema maestro

Adicionar al problema maestro actual, la restricción generada en el paso 3:

z ≥ x

(PLE)

Page 63: Programación  Lineal Entera

Espacio solución del PLE actual:

solución óptima del problema maestro: x* = 1 y z* = 1

z

x0 1 2 3 …

x ≥ 12/19z ≥ x

Page 64: Programación  Lineal Entera

Algoritmo de Descomposición de Benders: iteración 2

Paso 6: Se actualiza la limitante inferior usando la solución del problema maestro:

LI = z* = 1

La limitante superior es actualmente:

LS = 2

Paso 7:

LI < LS

Regresar al paso 1 usando la solución x* = 1 obtenida en el paso 5.

Page 65: Programación  Lineal Entera

Algoritmo de Descomposición de Benders: iteración 3

Paso 1: solución del subproblema satélite

Usando x* = 1 resolvemos el problema dual (PLD):

1 1

Page 66: Programación  Lineal Entera
Page 67: Programación  Lineal Entera

Algoritmo de Descomposición de Benders: iteración 3

Paso 2 se actualiza la incumbente (LS) porque se encontró un punto extremo: 1 1

Paso 3 no se construye la restricción asociada al punto extremo: u* = (0,0) porque este punto extremo ya se había encontrado:

Page 68: Programación  Lineal Entera

Paso 5: Resolver el problema maestro

No se resuelve el problema maestro actualizado porque no cambió:

Algoritmo de Descomposición de Benders: iteración 3

Paso 4: Redefinición del problema maestro

No se realiza.

(PLE)

Page 69: Programación  Lineal Entera

Se conserva la solución actual para el problema maestro:

solución óptima del problema maestro: x* = 1 y z* = 1

z

x0 1 2 3 …

x ≥ 12/19z ≥ x

Page 70: Programación  Lineal Entera

Algoritmo de Descomposición de Benders: iteración 3

Paso 6: no se actualiza la limitante inferior, esta continua siendo:

LI = z* = 1

La limitante superior fue actualizada en el paso 2:

LS = 1

Paso 7:

LI = LS

Fin del proceso iterativo. La solución para la variable entera es x* = 1

Page 71: Programación  Lineal Entera

Algoritmo de Descomposición de Benders: iteración 3

Para encontrar la solución óptima de las variables contínuas y se resuelve el siguiente PL con x* = 1:

1 1

Page 72: Programación  Lineal Entera

Esquema general del algoritmo de descomposición de Benders

Problema maestro

Problema satélite x*

u*

(PLE)

(PLD)

v*

Page 73: Programación  Lineal Entera

Observaciones:

• Matemáticamente las técnicas de descomposición se pueden usar siempre. Pertenecen a la categoría de métodos exactos.

• El método de Benders también se denomina descomposición primal , porque el problema maestro fija variables del primal.

• Algorítmicamente sólo se justifica su uso cuando se puede obtener una ventaja computacional respecto a otros métodos.

• El algoritmo es eficiente si el número de variables complicantes es mucho menor que el número total de variables, ya que el número de iteraciones está relacionado con el número de variables complicantes.

Page 74: Programación  Lineal Entera

Observaciones:

• El problema maestro elabora propuestas para las variables complicantes. Los subproblemas envían valores de la derivada del costo respecto a los recursos.

• Matemáticamente, el problema maestro recibe del problema satélite restricciones o cortes. Esto significa que en cada iteración se modifica la región factible del problema maestro.

• En cada iteración, el problema maestro modifica la función objetivo del problema satélite pero no altera su región factible.

• A medida que aumenta el número de cortes, el problema maestro toma decisiones más próximas a la solución óptima.

Page 75: Programación  Lineal Entera

Observaciones:

• Cada corte elimina la solución óptima del problema maestro obtenida en la iteración anterior.

• Si el problema satélite o el problema maestro pasa dos veces la misma información, el algoritmo termina.

• La LI es monótonamente creciente (en minimización), la LS no necesariamente es decreciente.

• El problema completo puede temporalmente encontrarse en una solución factible o infactible. Si se sale de la región factible surgirá un corte asociado a una dirección extrema del PLD que tratará de conducir el problema a la factibilidad.

Page 76: Programación  Lineal Entera

Observaciones:

• Si el PLE asociado al problema maestro se resuelve con una técnica como Branch-and-Cut, la cual requiere resolver PLs relajados, es conveniente resolver los subproblemas usando el método Dual Simplex. El número creciente de restricciones del primal se convierte en un número creciente de columnas en el dual.