Una variación del problema de ordenamiento lineal - Curcio, Brian Luis (2013)
El objetivo de esta tesis es desarrollar un algoritmo exacto para una variante del problema de ordenamiento lineal basado en un modelo de programación lineal entera. El problema de ordenamiento lineal es un problema clásico de optimización combinatoria estudiado desde hace más de 50 años. Los diversos escenarios reales que provienen de situaciones surgidas en variados campos de la industria y otros sectores, han dado origen a distintas variaciones de este problema. La gran cantidad de aplicaciones que poseen los problemas de esta familia hacen que los mismos no solo tengan interés teórico, sino también, una gran importancia práctica. La versión del problema abordada en este trabajo consiste en encontrar un orden total de elementos de manera que se minimice la suma de las penalidades entre pares de ellos, donde la penalidad se define como el producto entre la distancia a la que se encuentran los dos elementos y un costo asociado a ellos. Este problema recibe el nombre de Problema de Ordenamiento Lineal con Penalidades POLP. POLP pertenece a la clase de problemas NP-Difícil. Para estos problemas no se conocen algoritmos que encuentren la solución en tiempo polinomial. Como muchos de los problemas de Optimización Combinatoria, POLP puede ser modelado mediante formulaciones de programación lineal entera o entera mixta. Los algoritmos Branch-and-Cut son una de las herramientas más efectivas que se conoce para resolver un modelo de programación lineal entera. Especialmente las implementaciones basadas en combinatoria poliedral han permitido incrementar el tamaño de las instancias resueltas. En el transcurso del trabajo se analizan diversas formulaciones de programación lineal entera que permiten modelar el problema. Luego de seleccionar la más prometedora según ciertos criterios, se realiza un estudio poliedral para determinar características de la cápsula convexa del conjunto de soluciones factibles. En base a estas familias de desigualdades válidas, se desarrolló e implementó un algoritmo Branch-and-Cut para resolver el problema. También se consideraron factores decisivos en la eficiencia de este tipo de algoritmos, como la incorporación de heurísticas iniciales y primales, distintas estrategias de selección de variable de branching, y esquemas de recorrido del árbol de Branch-and-Bound. Finalmente se muestran resultados experimentales sobre instancias de prueba que permiten evaluar la eficiencia del algoritmo desarrollado.