Tesis: Applications of Integer Programming and Decomposition to Scheduling Problems: the Strategic Mine Planning Problem and the Bin Packing Problem with Time Lags
En problemas de agendamiento, el objetivo es asignar tiempos a un conjunto de actividades. En estos problemas, típicamente hay restricciones de precedencias entre actividades que dictan el orden en que deben ser ejecutadas y restricciones de recursos que limitan el número que pueden ser ejecutadas simultáneamente. En esta tesis desarrollamos metodologías de programación entera mixta, basada en métodos de descomposición, para dos clases de problemas de agendamiento. Estos son el problema de planificación minera a rajo abierto (SOPMP) y el problema de bin packing con lags de tiempo (BPPTL).
Dada una representación discretizada de un yacimiento minero, conocida como modelo de bloques, el SOPMP que consideramos consiste en definir qué bloques extraer, cuándo extraerlos, y el cómo procesarlos, de forma que se satisfagan restricciones operacionales y se maximice el valor presente neto. Es sabido que estos problemas son muy difíciles debido al gran tamaño de problemas de planificación minera reales (millones de bloques, docenas de años), si bien son muy importantes para la industria minera. Cada operación minera de gran tamaño en el mundo debe resolver este problema al menos una vez al año.
En la tesis empezamos estudiando un algoritmo lagrangeano desarrollado por Dan Bienstock y Mark Zuckerberg (el algoritmo de BZ) en 2009 para resolver la relajación LP de instancias grandes de SOPMP. En este estudio generalizamos la clase de problemas que pueden ser resueltos con el algoritmo de BZ, y mostramos que puede ser visto como un tipo especial de algoritmo de generación de columnas. Probamos, para la clase general de problemas de programación entera mixta, que la relajación de BZ provee una cota que está entre la de la relajación LP y la cota de Dantzig-Wolfe. Adicionalmente desarrollamos mejoras computacionales que mejoran el desempeño del algoritmo de BZ en la práctica, y las testeamos en una colección grande de instancias.
A continuación lidiamos con el problema de computar soluciones enteras factibles de SOPMP. Usando el algoritmo de BZ desarrollado en el capítulo 2, desarrollamos heurísticas. Adicionalmente, desarrollamos algoritmos de pre-proceso que reducen el tamaño del problema, e insertamos el algoritmo de BZ dentro de un procedimiento de branch-and-cut que usa dos clases nuevas de planos cortantes. Al comparar el valor de las heurísticas con la cota de la relajación LP, el gap promedio computado es cercano a 10%. Sin embargo, al aplicar las técnicas de pre-proceso y planos cortantes, este gap se reduce a un 1.5% en el nodo raíz. Tras cuatro horas de branche este se reduce a un 0.6%.
Finalmente, el problema de bin packing con lags de tiempo es presentado. Este es una generalización del problema de bin packing, en el que los bins deben ser asignados a períodos de tiempo, satisfaciendo restricciones de precedencia con lags de tiempo. Proponemos dos formulaciones de programación entera: una formulación compacta que modela el problema de forma exacta, y una formulación extendida que modela una relajación. Para dos casos especiales del problema, el caso con un número ilimitado de bins por período y el caso en que sólo se permite un bin por período y los lags de tiempo son no-negativos, agregamos una familia espacial de restricciones a la formulación extendida para fortalecerla. Proponemos un un algoritmo de branch-cut-and-price (BCP) para resolver esta formulación, con separación de soluciones enteras y de soluciones fraccionarias, y una heurística de strong diving. Experimentos computacionales confirman que el algoritmo BCP supera el desempeño de resolver la formulación compacta con un software de optimización comercial. Usando este enfoque podemos resolver óptimamente el 70% de una clase de instancias previamente abiertas de este problema.