PLE clase: Pre-procesamiento y Planos de Corte Generales

Download Report

Transcript PLE clase: Pre-procesamiento y Planos de Corte Generales

Universidad Tecnológica de Pereira – Colombia
Posgrado en Ingeniería – Maestría/Doctorado
Programación Lineal Entera
Antonio H. Escobar Z.
2013
Pre-procesamiento y
planos de corte
Preprocesamiento (Presolved)
• Se aplica al modelo matemático original para crear un nuevo
modelo.
• Permiten reducir el número de variables y el número de
restricciones.
• Permite reemplazar restricciones del modelo original por un
nuevo conjunto de restricciones más próximas a la solución
entera del PLE y que dominan a las existentes.
• No utiliza información de la solución relajada (no requiere de la
solución de un PL).
• Permite reducir el tamaño del sistema en un factor de 5 o más
veces.
• Permite reducir los tiempos de cómputo en un factor de 10 o
más veces.
Preprocesamiento (Presolved)
• Permite
eliminar
redundantes:
restricciones
inactivas
o
restricciones
Restricciones inactivas: Para tres variables binarias, la restricción:
Está inactiva.
Restricciones redundantes: La segunda y la tercera restricción del
siguiente sistema son redundantes:
Preprocesamiento (Presolved)
• Permite reducir el tamaño del sistema:
Simplificar el siguiente problema de PLI (programación lineal binario):
Preprocesamiento (Presolved)
Según la primera restricción:
Para garantizar factibilidad:
si
x1 = 1
entonces
x3
si
x1 = 0
entonces
x3
Se concluye que:
debe ser 1;
puede ser 0 ó 1;
Preprocesamiento (Presolved)
Según la segunda restricción:
Para garantizar factibilidad:
si
x3 = 1
entonces
x1
si
x3 = 0
entonces
x1
Se concluye que:
debe ser 1;
puede ser 0 ó 1;
Preprocesamiento (Presolved)
Si
y
Se concluye que :
Reemplazando esta igualdad se tiene:
Preprocesamiento (Presolved)
Además:
Preprocesamiento (Presolved)
Como
x1 
{ 0,1 } entonces
x1 ≤ 1
es redundante, por lo tanto:
Preprocesamiento (Presolved)
En resumen:
Se eliminan dos variables del problema (reducción de variables) y se
elimina una restricción.
Las variables retiradas pueden colocarse en cero o en uno y deben
asumir el mismo valor.
DESIGUALDADES VÁLIDAS FUERTES
En lo que respecta a planos de corte, en la mayoría de los casos,
lo mejor es buscar desigualdades validas específicas para cada
problema. Sin embargo, cuando estas no son halladas, resulta
muy útil generar cortes generales, independientes del problema
que se esta tratando.
DESIGUALDADES VÁLIDAS FUERTES
En general, encontrar una desigualdad válida (corte) no es suficiente
para hacer más eficiente la solución del problema. Un objetivo teórico
en las diferentes disciplinas y en los problemas particulares de cada
una de ellas es poder determinar de manera sistemática aquellas
desigualdades que generen la envoltura convexa del poliedro en las
vecindades del óptimo. Para esto no existe un procedimiento general.
Algunas ideas de generación de cortes se basan en la observación de
las restricciones del problema y del tipo de variables involucradas en
dichas restricciones.
En todos los casos los cortes deben truncar el espacio solución del PL
correspondiente pero no deben cortar las partes factibles donde se
encuentra la solución óptima del PLE. Se busca cortar soluciones
fraccionarias óptimas o eliminar subespacios con soluciones enteras
de baja calidad.
Cover Cuts
Son cortes generales relacionados con restricciones tipo mochila, para un
problema particular.
Una restricción tiene la forma de la restricción del problema de la mochila
si representa una suma de variables binarias con coeficientes positivos
menores o iguales a una cantidad positiva b. Una restricción mochila es
una desigualdad de la forma:
Donde:
:
número entero positivo
:
variable binaria  {0,1}
:
número entero positivo
Cover Cuts
Existe una cubierta (cover) asociada a la restricción tipo mochila cuando
se tiene un subconjunto de variables que al ser colocadas en 1, vuelven
infactible la restricción.
Por ejemplo, si se tiene la desigualdad:
Se observa que las variables
forman un cover, ya que al asignar
a las tres variables el valor 1, la solución resulta infactible, aunque las
demás variables asuman el valor 0.
Obviamente al tener un cover y agregar cualquier otra variable, se tiene
nuevamente un cover porque ya se había excedido el valor de b.
Cover Cuts
Existe una cubierta (cover) mínima asociada a la restricción tipo mochila.
Una cubierta mínima es un subconjunto de variables en una restricción
de desigualdad tales que si estas variables son colocadas en 1, la
restricción tipo mochila es infactible, pero si una de las variables del
subconjunto es excluida, la restricción es factible.
Por ejemplo, en la desigualdad:
Se observa que las variables
forman un cover mínimo porque al
asignar a las tres variables el valor 1, la solución resulta infactible, pero
al excluir del cover una de las variables, la restricción es satisfecha.
Cover Cuts
Un cover se representa como C y se indica a través de los índices de las
variables que lo conforman. Por lo tanto, C = { 1,2,3 } representa el cover
formado por las variables
.
En la desigualdad:
Podemos identificar varios cortes cover como los cortes C1 = {1,2,3}; C2 =
{1,2,3,4,5}; C3 = {2,3,4,5}.
Los cortes cover C1 y C3 son cover mínimos o cubiertas mínimas ya que
representan una combinación de productos que no satisfacen la
restricción de capacidad de la restricción tipo mochila pero
que
satisfacen la restricción si se elimina un producto (una variable) del corte.
El corte cover C2 no es cubierta mínima porque no satisface la restricción
y al eliminar un producto, la combinación resultante continúa siendo
infactible.
Cover Cuts
Formalmente un cover C para una desigualdad tipo mochila induce la
siguiente desigualdad válida para el modelo:
Donde
representa la cardinalidad (número de elementos) del corte
cover. Para el corte cover C = {2,3,4,5} ,
= 4. La desigualdad válida
asociada a este corte es:
Es decir, tres o menos variables del corte pueden asumir el valor 1. Lo
que equivale a decir que por lo menos una variable del corte debe estar
en cero.
Procedimiento de introducción de cortes Cover
• Guardar todas las restricciones mochila desde un principio para luego
determinar que desigualdades válidas son infactibles en una solución
particular.
• No todas las restricciones del problema original son restricciones tipo
mochila. Existen formas que permiten reformular las restricciones para
tratar de llevarlas a esta forma.
• Existen varias formas de reformulación para convertir las
desigualdades originales que no tienen la forma adecuada. Se muestra
un preprocesamiento simple que consiste en invertir el orden de las
desigualdades que en el problema original estén con signo mayor o
igual (≥). En varias instancias, muchas de las restricciones se
encuentran formuladas con mayor igual y con un simple cambio de
signo se logra reformular la desigualdad de forma que si cumpla con
los requisitos necesarios para ser desigualdad mochila candidata a
generar cortes cover.
Introducción de cortes Cover
La restricción:
Da origen a las desigualdades válidas:
y
En función de las variables originales:
es equivalente a:
Cover cuts: Forma equivalente
Una vez que se tienen todas las desigualdades válidas obtenidas de las
restricciones tipo mochila, puede verificarse si la solución de la relajación
lineal satisface o no las desigualdades cover inducidas por estas
restricciones tipo mochila.
Un cover C dado por:
Puede reescribirse como:
Cover cuts: Prueba de infactibilidad
Para determinar si una desigualdad válida es infactible en la solución
actual: x*, se debe verificar que:
Que es equivalente a:
Como todos los valores que se manejan son enteros, se debe cumplir
que:
ó
Esto elimina las desigualdades estrictas.
Clique Cuts
Busca relaciones de obligatorio cumplimiento entre una variable y un
grupo de variables, o combinaciones de valores de variables, que no
pueden ocurrir. Por ejemplo, pueden existir variables binarias xi y xj
en las que el conjunto de restricciones se vuelve infactible si las dos
variables están en 1. También puede ocurrir que si xi esta en 1, y xj
esta en 0, el conjunto de restricciones resulta infactible.
Cortes clique para variables binarias:
Ejemplos:
→
→
Clique Cuts
Restricciones con variables binarias
Para determinar las combinaciones de variables no permitidas, una
forma es recorrer todas las posibilidades usando una enumeración
exhaustiva. Es decir, para cada par de variables y para cada
combinación 00, 01, 10 y 11, se evalúa si el conjunto de restricciones
es infactible, independientemente del valor que asuman las otras
variables.
En un problema PLI, para determinar si el conjunto de restricciones
es factible, dado que dos variables asumen un valor fijo, deben
analizarse todas las restricciones que contengan estas dos variables.
Clique Cuts
Una forma heurística de determinar cortes clique es la siguiente:
Caso a: Para restricciones del tipo menor o igual (≤)
• Seleccionar dos variables de la restricción (las que se van a fijar).
• Colocar en valor 1 las variables restantes que tengan coeficiente
negativo.
• Colocar en valor 0 las variables restantes que tengan coeficiente
positivo.
• Probar las combinaciones 00, 01, 10 y 11 en las dos variables
seleccionadas y determinar si alguna de las restricciones del tipo
menor o igual que contienen estas dos variables resulta infactible.
Por ejemplo, determinar si existe una combinación de valores para las
variables x1 y x2 que hagan infactible la restricción:
Clique Cuts
• Variables seleccionadas: x1 y
0
x2
• Variables no seleccionadas con coeficiente positivo: x3 → fijar en 0.
• Variables no seleccionadas con coeficiente negativo: ninguna.
• Combinaciones de valores para las variables x1 y
x2
Clique Cuts
En conclusión,
0
Corte Clique asociado:
No permite la combinación: 1 1
No permite la combinación: 1 0
No permite la combinación: 0 0
Para el ejemplo anterior, el corte clique asociado a:
Es:
ó
Corte Clique asociado:
En consecuencia, el nuevo problema debe contener las restricciones:
Clique Cuts
Caso b: Para restricciones del tipo mayor o igual (≥)
• Seleccionar dos variables de la restricción (las que se van a fijar).
• Colocar en valor 1 las variables restantes que tengan coeficiente
positivo.
• Colocar en valor 0 las variables restantes que tengan coeficiente
negativo.
• Probar las combinaciones 00, 01, 10 y 11 en las dos variables
seleccionadas y determinar si alguna de las restricciones del tipo
menor o igual que contienen estas dos variables resulta infactible.
Por ejemplo, determinar si existe una combinación de valores para las
variables x1 y x2 que hagan infactible la restricción:
1
Clique Cuts
• Variables seleccionadas: x1 y
0
x2
• Variables no seleccionadas con coeficiente positivo: x3 → fijar en 1
• Variables no seleccionadas con coeficiente negativo:
• Combinaciones de valores para las variables x1 y
x2
x4
→ fijar en 0
Clique Cuts
En conclusión,
1
0
Corte Clique asociado:
No permite la combinación: 1 1
No permite la combinación: 1 0
No permite la combinación: 0 0
Para el ejemplo anterior, el corte clique asociado a:
Es:
ó
Corte Clique asociado:
Disjunctive Cuts
Dividen un PLE en dos subproblemas con regiones factibles disjuntas.
Usan información del PL relajado y se aplican a una variable
entera. Normalmente son utilizadas en el método Branch and Bound.
Zero-half cuts
se basa en la observación de que el lado izquierdo de una desigualdad
está formado por variables enteras y coeficientes enteros, y el lado
derecho debe ser entero y su parte fraccionaria puede ser truncada.
Caso a: La parte fraccionaria del límite de una variable entera puede
ser truncada:
→
Caso b: Dada una restricción con variables y coeficientes enteros,
dividir LHS y RHS por el máximo común divisor de los coeficientes de
las variables y luego eliminar la parte fraccionaria de RHS. Ejemplo:
LHS
RHS
Zero-half cuts
MCD de los coeficientes de las variables = 3
Nueva restricción:
Después de eliminar la parte fraccionaria del término del lado derecho
se obtiene:
Zero-half cuts
Caso c: Utiliza el mismo concepto del caso b pero aplicado a la
combinación de restricciones. En el siguiente ejemplo se tienen dos
restricciones formadas por coeficientes enteros y variables enteras
pero individualmente no es posible aplicar el concepto de MCD:
Individualmente no se puede aplicar redondeo pero si sumamos las
expresiones tenemos:
Dividimos por dos:
Redondeamos:
Lifting (extensiones)
Algo interesante cuando se tiene una desigualdad válida que se desea
ingresar como corte es analizar la posibilidad de realizarle extensiones.
El lifting se usa con varios propósitos:
• Para convertir una desigualdad válida en una desigualdad válida
fuerte. En el caso de los cortes cover (tipo mochila), dado un corte de
cobertura mínimo (cover mínimo) la operación de lifting le adiciona
términos al cover que permiten hallar o acercarse a las facetas del
poliedro factible del PLE.
Lifting (extensiones)
• Algunas desigualdades válidas generadas para un subproblema de
PLE, cuando se usa el método Branch and Bound, no resultan
válidas para otros subproblemas. A través del lifting se puede
modificar la desigualdad para que resulte factible en los
subproblemas donde no lo es.
Desigualdad
válida para P1
infactible para P2
lifting
P1
P2
Lifting (extensiones)
Casos:
• Realizar el proceso de lifting, en el caso de restricciones del tipo
menor o igual (≤), significa hacer crecer los coeficientes que
acompañan a las variables, siempre y cuando la desigualdad siga
siendo válida. Para esto se pueden hacer crecer los coeficientes de
las variables que se encuentran en la desigualdad o agregar
variables a la desigualdad con coeficientes positivos.
• En el caso de cortes cover (para restricciones tipo mochila) si se
tiene planteado un cover mínimo se puede agregar a la desigualdad
cualquier variable que tenga un coeficiente positivo mayor o igual a
todos los coeficientes de las variables que ya se encuentran en la
desigualdad. Una extensión de C, denominada E(C) es entonces:
N
es el conjunto de índices de todas las variables del problema.
Lifting (extensiones)
Para el corte cover:
De la restricción tipo mochila:
El proceso de lifting conduce a la restricción:
Lifting (extensiones)
Puede observarse que adicionar x7 al corte cover:
Se obtendría:
→ sólo tres de las cinco variables pueden asumir valor 1.
Esta restricción no es válida porque elimina opciones factibles como:
1
1
1
1
Lifting (extensiones)
• En el caso de cortes cover (para restricciones tipo mochila) si se
tiene planteado un cover mínimo se pueden agregar al corte las
variables que no hacen parte de él calculando los coeficientes βi
adecuados, con el propósito de encontrar una faceta del poliedro
factible.
Para el corte cover:
De la restricción tipo mochila:
El proceso de lifting conduce a la restricción:
Lifting (extensiones)
Ejemplo:
Para el corte cover:
De la restricción tipo mochila:
El proceso de lifting conduce a la restricción:
Lifting (extensiones)
Los valores adecuados de βi permiten adicionar las variables que no
están en la cubierta mínima y garantizar la validez del corte cover con
variables binarias.
Procedimiento:
1. Calculo de β1 para adicionar la variable x1 a la cobertura mínima:
β1 = |C| - 1 – z1
Donde z1 se encuentra resolviendo:
a1
Lifting (extensiones)
β1 = |C| - 1 – z1
a1
Si la variable x1 está en valor 1, cual es el valor máximo del
nuevo corte?
Respuesta: una variable. Entonces z1 = 1
β1 = |C| – 1 – z1 = 4 – 1 – 1 = 2
Lifting (extensiones)
β1 = 2
La variable x1 entra al corte cover con coeficiente 2.
Nuevo cover:
Lifting (extensiones)
2. Adición de la variable x2 a la cobertura mínima:
β2 = |C| - 1 – z2
Donde z2 se encuentra resolviendo:
la variable x1 ya aparece en el corte
a2
Lifting (extensiones)
β2 = |C| - 1 – z2
a2
Si la variable x2 está en valor 1, cual es el valor máximo del
nuevo corte?
Respuesta: z2 = 2
β2 = |C| - 1 – z2 = 4 – 1 – 2 = 1
Lifting (extensiones)
β2 = 1
La variable x2 entra al corte cover con coeficiente 1.
Nuevo cover:
Lifting (extensiones)
3. Adición de la variable x7 a la cobertura mínima:
β7 = |C| - 1 – z7
Donde z7 se encuentra resolviendo:
las variables x1 y
x2 ya aparecen en el corte
a3
Lifting (extensiones)
β7 = |C| - 1 – z7
a3
Si la variable x7 está en valor 1, cual es el valor máximo del
nuevo corte?
Respuesta: z7 = 3
β7 = |C| - 1 – z7 = 4 – 1 – 3 = 0
Lifting (extensiones)
β7 = 0
La variable x7 entra al corte cover con coeficiente 0.
Nuevo cover:
Lifting (extensiones)
El corte cover mínimo:
Después de las extensiones queda:
extensiones