Introducción
La Investigación de Operaciones (IO) es la rama de la ciencia que brinda soporte científico a problemas de toma de decisiones. Dentro del campo de aplicación de la IO destacan una diversidad de problemas. En particular, en este trabajo abordamos un problema en la disciplina de diseño territorial.
El Problema de Diseño de Territorios Comerciales (PDTC) puede contemplarse como el problema de agrupar pequeñas unidades básicas (UB) en agrupaciones (clusters) de mayor tamaño, denominados territorios, de forma que los nuevos territorios sean aceptables (u óptimos) respecto a criterios de planificación relevantes. Este problema pertenece a la familia de los llamados problemas de “districting” que tienen un amplio abanico de aplicaciones en el diseño de distritos electorales (Bozkaya et al., 2003; Hojati, 1996; Mehrotra, 1998; Ricca et al., 2013), comerciales (Ríos-Mercado y Fernández, 2009; Ríos-Mercado y López-Pérez, 2013; Salazar-Aguilar et al., 2011a, 2011b, 2012, 2013), ventas (Drexl y Haase, 1999; Zolners y Sinha, 1983), escolares (Caro et al., 2004) y servicios médicos (Blais et al., 2003), por mencionar algunos. En los recientes trabajos de Duque et al. (2007), Kalcsics et al. (2005), Ricca et al. (2013) y Zoltners y Sinha (1983) se puede encontrar una amplia revisión sobre modelos y técnicas en el campo de distriteo y diseño territorial.
El problema de interés, motivado por un caso práctico, se plantea de la siguiente forma. Dado un conjunto de unidades geográficas (manzanas), se desea dividirlos en territorios de tal forma que se optimice una única función de desempeño, en este caso, minimice la dispersión territorial. Esta medidad significa que se busca que los clientes de un mismo territorio estén relativamente próximos entre ellos. Está claro que minimizar la dispersión territorial es equivalente a maximizar la compacidad territorial. Ahora bien, esta partición no es totalmente arbitraria, sino que debe además satisfacer varios requisitos o restricciones. Por ejemplo, el número de territorios a formar es conocido y dado por p. Además, se debe satisfacer que los territorios estén balanceados (similares en tamaño) respecto a tres medidas de actividad diferentes (número de clientes, volumen de ventas y carga de trabajo). Adicionalmente, se debe también satisfacer la contigüidad de los territorios, de forma que las distintas UBs de un mismo territorio sean alcanzables desplazándose a través de territorios de venta del mismo territorio.
Este es un problema de optimización combinatoria muy difícil de resolver, en el sentido que cualquier algoritmo de solución que pretenda encontrar una solución óptima global al problema emplea un tiempo de cómputo que crece exponencialmente con el tamaño del problema en el peor de los casos. Técnicamente hablando el problema es NP-duro. La implicación directa de esta propiedad es que un método de optimización de los denominados exactos, es decir, de los que buscan la solución óptima global al problema, será inaplicable en instancias del problema de gran tamaño. Por tal motivo, existen también los métodos heurísticos, que son algoritmos de solución que intentan encontrar soluciones factibles de buena calidad en tiempos de cómputo razonables para que sean implementables en la práctica.
La enorme cantidad de problemas “difíciles” que existen en situaciones reales ha motivado el desarrollo de una disciplina dentro de la IO denominada Optimización Metaheurística (Glover y Kochenberger, 2003), la cual es una área que se ha enfocado en derivar, desarrollar e implementar métodos avanzados de optimización heurística. Una meteheurística se define como un marco de búsqueda que invoca a otras heurísiticas o métodos de construcción, mejora o poblacionales. Hoy en día las metaheurísticas son estado del arte en la resolución de muchos problemas difíciles de la optimización combinatoria.
La idea principal de este trabajo es (i) introducir al lector con uno de los problemas de optimización combinatoria más relevante en el campo de diseño territorial, e (ii) ilustrar el cómo las técnicas de IO, en esta caso técnicas metaheurísticas, pueden utilizarse exitosamente para brindar soluciones a problemas prácticos importantes como en este caso el diseño de territorios comerciales, y asistir por ende, de una manera científica, a este complejo proceso de toma de decisiones.
Descripción del Problema
PDTC se modela mediante un grafo G = (V, E), en el que se asocia un nodo a cada manzana o UB, y existe un arco conectando los nodos i y j si las manzanas i y j son adyacentes. Cada nodo i ( V tiene asociados varios parámetros, que son sus coordenadas geográficas (cxi, cyi), y tres actividades medibles. Sea
Si definimos xij como una variable binaria igual 1 si la unidad j es asignada al territorio con centro i, e igual a 0 de otro modo, tenemos el siguiente modelo de optimización mono-objetivo del problema.
Modelo
sujeto a
El objetivo (1) mide la dispersión de los territorios. Como ya se comentó anteriormente, minimizar dispersión es equivalente a maximizar compacidad. Las restricciones (2) garantizan que cada nodo j se asigna a un territorio, mientras que la restricción (3) fija el número de territorios. Las restricciones (4)-(5) establecen, para cada actividad, un rango posible relativo a su valor medio (medido en términos de un parámetro de tolerancia τa). Por tanto, estas restricciones representan el balance de los territorios respecto a cada una de las medidas de actividad. Asimismo, la restricción de cota superior de balance (4) también establece que si no se ubica un centro en i, entonces ningún cliente puede asignarse a i. Las restricciones (6) garantizan la conexión de los territorios. Son similares a restricciones utilizadas en problemas de diseño de rutas de vehículos para garantizar la conexión de las rutas. Nótese que, como es habitual, hay un número exponencial de restricciones de este tipo. El modelo anterior puede considerarse como un problema de p-centro con múltiples restricciones de balanceado, y con restricciones adicionales (5) y (6).
El PDTC es NP-duro (Ríos-Mercado y Fernández, 2009). Una implicación directa de este resultado es que el problema es técnicamente clasificado como muy difícil de resolver, entendiendo por esto que cualquier método de solución que pretenda encontrar la solución óptima global del problema empleará un tiempo de cómputo que crece exponencialmente con el tamaño del mismo en el peor de los casos. Esta característica del problema lo convierte en prácticamente intratable para el tamaño de instancias que se pretenden resolver. Por ejemplo, con los métodos exactos existentes para resolver problemas de programación entera mixta lineal (MILP, por sus siglas en inglés, Mixed-Integer Linear Program), como el Método de Ramificación y Acotamiento, pueden resolverse instancias de hasta 100 nodos y 10 territorios. Las instancias de interés para la empresa constan de 500 a 1000 nodos y 40 a 60 territorios. Esto motiva precisamente el desarrollo de técnicas heurísticas, que si bien renuncian a optimalidad global, son aún capaces de encontrar muy buenas soluciones en tiempos de cómputo razonables.
Método de Solución
Como ya se comentó anteriormente, cuando un problema de optimización del tipo combinatorio es clasificado NP-duro, como el tratado en este estudio, los métodos exactos son inaplicables para intentar resolver instancias grandes del problema. Es por eso que surge la necesidad, desde el punto de vista práctico, de desarrollar métodos aproximados o heurísticas, los cuales son métodos que si bien no garantizan optimalidad global, si brindan soluciones de alta calidad en tiempos de cómputo razonables
En el campo las heurísticas, GRASP (Feo y Resende, 1995), es una metaheurística relativamente conocida que captura buenas características tanto de algoritmos voraces (greedy) como de construcciones aleatorias. GRASP se ha utilizado ampliamente en resoluciones exitosas de muchos problemas de optimización combinatoria y presenta algunas ventajas con respecto a otras metaheurísticas. Por ejemplo, técnicas como Algoritmos Genéticos, Optimización por Enjambre de Partículas ú Optimización por Colonias de Hormigas son en escencia métodos poblacionales cuyo éxito se alcanza cuando se genera un número suficientemente grande de soluciones y sobre todo cuando el problema no está tan restringido. En nuestro caso particular, no solamente tenemos un problema bastante restringido, sino que además algunas de sus restricciones, como la de conectividad territorial, son muy difíciles de lograr satisfacer con estas otras técnicas. La gran ventaja de GRASP es que uno diseña el algoritmo de construcción de tal forma que garantiza la conectividad territorial. Otros métodos como Simulado Recocido o Búsqueda Tabú, son realmente técnicas de búsqueda local que parten de una solución dada o conocida, no las construyen. En ese sentido GRASP puede usarse para construir soluciones y posteriormente puede llegar a implementarse una técnica de búsqueda local que intente mejorar la solución. Por tanto GRASP es una primera técnica de aproximación bastante atractiva.
Un GRASP es un proceso iterativo en el que cada iteración global típicamente consta de dos fases: construcción y post-procesado. La fase constructiva intenta obtener una solución factible, mientras que la fase de post-proceso intenta mejorarla. Típicamente, cuando la primera fase consigue encontrar una solución factible, la segunda fase es una búsqueda local en unos entornos adecuados, cuyo objetivo es mejorar el valor de la función objetivo. En nuestro caso particular, la fase constructiva no necesariamente termina con una solución factible, puesto que la solución obtenida puede violar las restricciones (3) y (4)-(5). Por tanto, se han desarrollado tanto una fase de ajuste, que modifica la solución actual para satisfacer (3), como una fase de post-proceso, que intenta mejorar la calidad de la solución y reducir la infactibilidad relativa total respecto a las restricciones (4)-(5).
La Figura 1 ilustra el pseudocódigo del GRASP desarrollado para este problema. El algoritmo tiene como entrada una instancia de un problema de diseño de territorios, el número máximo de iteraciones GRASP, y el parámetro de calidad de la lista restringida de candidatos (LRC), y devuelve una solución Xbest. En cada paso del proceso iterativo se construye primeramente (Paso 2) una solución del problema que consta de q territorios conexos. Esto se hace mediante la filosfía de GRASP donde ( denota el umbral de calidad en cada fase del proceso iterativo de construcción. Si esta partición construída no tiene p territorios (q≠ p), posteriormente, se lleva a cabo la fase de ajuste (Paso 3), donde se obtiene una solución con p territorios. A esta solución se le aplica la fase de mejora (Paso 4) que consiste en llevar a cabo una búsqueda local considerando dos tipos de vecindarios: uno de intercambio de una unidad básica a otro territorio diferente y otro de intercambio de dos unidades básicas de diferentes territorios. En el Paso 5 se actualiza la mejor solución encontrada hasta ese momento. Es claro que al finalizar, el algoritmo retorna (Paso 7) la mejor solución encontrada en iteration_limit iteraciones.
La motivación para utilizar GRASP en esta aplicación concreta se deriva del hecho de que parece más apropiado para manejar las restricciones (6) que otros enfoques utilizados previamente, basados en algoritmos de localización-asignación en dos etapas. Considerando dichas restricciones en la fase constructiva de un GRASP, siempre se mantiene la conexión de las soluciones, quedando únicamente pendiente de considerar adecuadamente las restricciones de balance (4)-(5). Para los detalles técnicos de cada uno de los componentes de la metaheurística véase Ríos-Mercado y Fernández (2009).
Experimentación: Comparación con Estándar de la Industria
En Ríos-Mercado y Fernández (2009) se presenta una amplia evaluación del GRASP en diferentes aspectos. El algoritmo fue codificado en el lenguaje de programación de C++. En esta sección presentamos al lector una comparación entre los resultados obtenidos por la metaheurística y los resultados obtenidos por al empresa usando la práctica actual. Los experimentos se llevaron a cabo en un servidor SunFire V440, propiedad del Laboratorio de Cómputo de Alto Desempeño de la Facultad de Ingeniería Mecánica y Eléctrica de la UANL. Para los experimentos se generaron instancias basadas en datos reales proporcionados por el socio industrial. Adicionalmente, se han considerado cuatro tipos de instancias diferentes, en función del parámetro τa. Recuérdese que este parámetro establece la desviación máxima permitida respecto al valor ideal en las restricciones de balanceado. Denotamos esos conjuntos DS10 y DS05, correspondiendo a valores de τa de 0.10 y 0.05, respectivamente. Para cada uno de estos conjuntos se han generado 20 instancias diferentes de tamaño n = 500, p = 10. La elección de esta dimensión se justifica ya que es similar a la que actualmente se utiliza en la aplicación real concreta. En todo el proceso de evaluación GRASP se ha ejecutado con limit_iterations = 1000, salvo cuando se menciona explícitamente.
Diseñamos el siguiente experimento, aplicando un método que refleja la práctica real actual para la obtención de soluciones. El procedimiento de la empresa opera de una manera constructiva obteniendo los territorios de uno en uno. En esta fase no se presta atención a las restricciones de balance, sino a la medida de compacidad. El método construye territorios en los que todos ellos tienen aproximadamente el mismo número de nodos (dado por n/p). En un intento de mejorar esas soluciones y de ilustrar únicamente el efecto de la fase de mejora (búsqueda local), sin considerar aún comparación con el GRASP completo, en cada instancia se aplicó la búsqueda local a la solución construída por el método de la empresa.
La Tabla 1 presenta una comparación de las soluciones obtenidas con el método de la compañía (Compañía) y las obtenidas al incorporar la búsqueda local (Compañía+BL), en términos de niveles de factibilidad alcanzados. Como puede apreciarse, la búsqueda local tiene un efecto de mejora significativo, reduciendo considerablemente la infactibilidad media, y obteniendo alrededor de un 50% de soluciones posibles, lo cual contrasta con el 0% obtenido en la práctica real actual.
A continuación comparamos la solución de la empresa (mejorada con la búsqueda local), la cual denominamos Compañía+BL, con el método de GRASP. Las Figuras 2 y 3 ofrecen una comparación entre ambas en los conjuntos de instancias DS10 y DS05, respectivamente, en términos del valor de la función de dispersión. Como puede apreciarse, el algoritmo propuesto supera la práctica real actual por un margen significativo. Nótese que únicamente en dos casos el método Compañía+BL obtiene una solución mejor. Cabe mencionar que estas dos soluciones obtenidas por el método de la empresa soluciones resultaron infactibles en términos de las restricciones de balanceado. Las soluciones encontradas por el método GRASP fueron todas factibles.
La Tabla 2 ofrece una comparación de estos dos métodos en términos de su infactibilidad relativa, es decir, su capacidad de obtener silcuioens que cumplen o satisfacen todas las restricciones. De nuevo, podemos apreciar que el comportamiento del GRASP es significativamente más robusto, puesto que ha sido capaz de proporcionar soluciones factibles para las 40 instancias consideradas excepto una.
La Tabla 3 ofrece una comparación de los tiempos de cómputo empleados por el algoritmo GRASP al resolver problemas de mayor tamaño (1000 y 2000) nodos bajo 500 iteraciones en instancias del grupo DS05. Se muestran el mejor, promedio y peor tiempo sobre 20 instancias para cada grupo. Como puede apreciarse, aunque el tiempo naturalmente crece con el tamaño de la instancia, las instancias de mucho mayor envergadura se resuelven en menos de 40 mintos en promedio, lo cual es bastante razonable en la práctica. Cabe destacar que en todos los casos el GRASP encontró un 100% de soluciones factibles.
Finalmente, la Tabla 4 despliega el desempeño del método al aplicarlo en 20 instancias de 1000 nodos variando el parámetro de balance τa . Es claro que cuando éste parámetro se hace menor (más cercano a cero), las restricciones de balance se vuelven más complicadas de satisfacer y por ende es más difícil la búsqueda de soluciones que cumplan con todos lo requerimientos.
Como puede apreciarse, en función del primer estadístico mostrado, al aumentar la precisión de la tolerancia del 5% al 3% se mantuvo el número de soluciones factibles encontradas, sin embargo, al ajustar la tolerancia a un 1%, el método ya no pudo encontrar ninguna solución factible, lo cual muestra que el máximo grado de precisión que el método es capaz de encontrar en términos de las restricciones de balance es de un 3%. Recordemos que en la práctica, la compañía estaba encontrando diseños con grado de balance superior al 20%. Ahora bien, en términos de calidad de solución, queda también evidente que los mejores diseños se encontraron cuando la tolerancia era de 5% (17 de 20), lo cual era de esperarse ya que al ser mayor la tolerancia se tarbaja sobre un espacio de soluciones factibles de mayor tamaño. Por último, podemos apreciar en la última fila que el esfuerzo computacional es del mismo orden de magnitud sin importar el nivel de tolerancia.
Conclusiones
En este trabajo se ha ilustrado la valía de una metaheurística GRASP cuando se usa para apoyar a la toma de decisiones en un problema de diseño de territorios comerciales con múltiples requerimientos de balance. El problema, que viene motivado por una aplicación real en la industria repartidora de productos embotellados, incluye varios criterios de planificación tales como balanceado entre territorios, contigüidad y conexión.
Al comparar las soluciones obtenidas con la heurística GRASP con las obtenidas en la práctica, la evidencia empírica indica claramente que el enfoque de GRASP proporciona soluciones de calidad significativamente mejor, dominando por completo a las mejores soluciones encontradas con el método utilizado por la compañía. Adicionalmente, la metaheurística GRASP presenta un comportamiento robusto para encontrar soluciones factibles con un esfuerzo computacional relativamente pequeño. Esto pudo ser constatdo al aplicar el método a instancias de mucho mayor tamaño.