620 likes | 846 Views
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 )
E N D
Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería – Maestría/Doctorado Programación Lineal Entera Antonio H. Escobar Z. 2013
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 restricciones inactivas o restricciones redundantes: 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 debe ser 1; si x1 = 0 entonces x3 puede ser 0 ó 1; Se concluye que:
Preprocesamiento (Presolved) Según la segunda restricción: Para garantizar factibilidad: si x3= 1 entonces x1 debe ser 1; si x3 = 0 entonces x1 puede ser 0 ó 1; Se concluye que:
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 coverC1 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 coverC2 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 coverC 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:
Covercuts: 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 yx2 que hagan infactible la restricción:
Clique Cuts • Variables seleccionadas: x1 y 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 0
0 Clique Cuts En conclusión,
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 yx2 que hagan infactible la restricción:
1 0 Clique Cuts • Variables seleccionadas: x1 y x2 • Variables no seleccionadas con coeficiente positivo: x3 → fijar en 1 • Variables no seleccionadas con coeficiente negativo: x4 → fijar en 0 • Combinaciones de valores para las variables x1 y x2
1 0 Clique Cuts En conclusión,
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: ó
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-halfcuts 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: → RHS LHS
Zero-halfcuts 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-halfcuts 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: Nes 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: • Calculo de β1 para adicionar la variable x1a la cobertura mínima: β1 = |C| - 1 – z1 Donde z1 se encuentra resolviendo: a1
Lifting (extensiones) β1 = |C| - 1 – z1 a1 Si la variable x1está 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 x1entra al corte cover con coeficiente 2. Nuevo cover: