Como anteriormente se hab´ıa mencionado, es posible modelar el problema de ruteo en su parte de planeaci´on operativa como uno problema de agrupaci´on, espec´ıficamente como un problema de em- pacado de objetos con restricciones particulares. Lo eventos de transporte son visualizados como los objetos que deber´an ser agrupados en los contenedores. Los camiones son visualizados como los con- tenedores en donde esos objetos deber´an ser agrupados, claro siempre y cuando satisfagan b´asicamente las restricciones duras. No estamos hablando de la capacidad del cami´on, estamos hablando del per´ıodo
para el cual se est´a intentando hacer una programaci´on. Como estamos hablando siempre de un mes, el tama˜no del contenedor en donde deber´an agruparse los eventos es de treinta. Cada evento tiene una duraci´on discreta, es decir, se conoce el d´ıa en que inicia y el d´ıa en que termina. Como se ha modelado el problema que se ataca como uno de agrupaci´on, se usa una modificaci´on del algoritmo gen´etico de agrupaci´on de Falkenauer.
Tabla 3.1: Ciudades inclu´ıdas en las rutas. C´odigo Ciudad 1 Monterrey 2 Saltillo 3 Torre´on 4 Durango 5 Ciudad Victoria 6 Zacatecas
7 San Luis Potos´ı
8 Aguascalientes
9 Guadalajara
10 Quer´etaro
11 M´exico
12 Nuevo Laredo
Entonces, como se ha dicho el problema consiste en agrupar los eventos en el per´ıodo de tiempo asignado a un cami´on, en el caso espec´ıfico de este problema, el per´ıodo corresponde a treinta d´ıas, un mes. Se conoce el d´ıa en que se debe llevar a cabo el evento y su duraci´on, por lo tanto se conoce tambi´en el d´ıa en que termina. Obviamente que los eventos no deben traslaparse en fechas y se busca que el destino de un evento corresponda con el origen del siguiente evento. Se requiere tambi´en que la mayor´ıa de los eventos que son agrupados para un cami´on se encuentren en la misma ruta. Las rutas est´an establecidas arbitrariamente. En la tabla 3.1 se listan las ciudades que incluyen las rutas y la tabla 3.2 indica cu´ales ciudades componen cada ruta. Por ejemplo, la ruta llamada M´exico, comprende las ciudades de Nuevo Laredo, Monterrey, Saltillo, San Luis Potos´ı, Quer´etaro y finalmente la Ciudad de M´exico. Un evento que pertenezca a esta ruta puede tener cualquier ciudad de ´estas como origen o destino y en cualquier direcci´on, esto significa que en la ruta M´exico puede haber por lo menos 120 eventos distintos.
Se define un arreglo de asignaci´onAcon tantos renglones como eventos existan. Cada ´ındice del arreglo representa el n´umero de evento con el cual se est´a tratando y el contenido del arreglo en esa posici´on representa el n´umero de grupo en el que ese evento estar´a. Asignarle un valor a cada una de las posiciones del arreglo significa crear una soluci´on posible al problema.
Los d´ıas inicial y final de cada evento est´an siempre dentro del rango de un mes, es decir, van del uno al treinta. Los eventos tienen tambi´en indicado una ciudad origen y una ciudad destino, adem´as de una ruta a la que pertenecen. El objetivo es encontrar un conjunto de valores para el arreglo mencionado de tal forma que exista un conjunto de camiones a los cuales se les pueda asignar cada evento. Adem´as se busca tambi´en cumplir con las siguientes restricciones:
• Cada evento debe estar por lo menos agrupado en alg´un cami´on.
Tabla 3.2: Ciudades que integran cada ruta. Ciudades Ruta 1 (Cd. Victoria) 12 1 5 Ruta 2 (M´exico) 12 1 2 7 10 11 Ruta 3 (Durango) 12 1 2 3 4 Ruta 4 (Aguascalientes) 12 1 2 6 8 9
• Los eventos agrupados en un mismo cami´on deben ser contiguos, es decir, el destino de un evento debe ser igual al origen del evento siguiente.
• Los eventos agrupados en un mismo cami´on deben estar en la misma ruta.
• Los eventos que sean contiguos con respecto al destino, pero que no sean contiguos con respecto al d´ıa de inicio, deben tener un determinado n´umero de d´ıas “vac´ıos” entre ellos.
3.6.1
Determinaci´on y c´alculo de la funci´on objetivo
Debido a las m´ultiples restricciones que este problema puede tener, se busca encontrar soluciones que cumplan con la mayor cantidad de restricciones posibles. Se establece por lo tanto un criterio para evaluar cada soluci´on y determinar cu´al de ellas viola menos restricciones y por lo tanto es mejor que otra. Para lograr esto se define una funci´on objetivo que califique la soluci´on respecto al n´umero y tipo de restricciones no cumplidas. Habr´a algunas restricciones que se consideren m´as importantes que otras y algunas que no necesariamente deber´an ser respetadas para que se considere como una soluci´on. Para reflejar esta importancia se establecer´an penalizaciones a la funci´on objetivo por cada restricci´on que no se cumpla como es debido.
Se pretende que siempre se cumpla la restricci´on de que todos los eventos sean cubiertos, es decir, que exista al menos un cami´on para cada evento (R0). Tambi´en que dos eventos al estar asignados a un cami´on no se traslapen. (R1).
Las restricciones que en alg´un caso pudieran no cumplirse se listan en orden de importancia:
• La maximizaci´on del uso del cami´on en el per´ıodo de tiempo considerado, regularmente un mes de treinta d´ıas (R2).
• Dos eventos contiguos tengan el destino y el origen respectivamente, iguales (R3).
• Los eventos agrupados en un cami´on pertenezcan a la misma ruta (R4).
Como se el problema se est´a tratando como un problema de empacado de objetos, y por lo tanto se busca minimizar el n´umero de camiones que se requerir´an para satisfacer la demana completa, la funci´on objetivo definida por Falkenauer [4] en su trabajo se usar´a tambi´en.
La funci´on objetivo queda entonces definida de la siguiente forma:
f(x) = PN i=1(Fi/C) k N ! +w3·R3 +w4·R4 (3.1)
donde N es el n´umero de contenedores usados, Fi la suma de los tama˜nos de los objetos en el con-
tenedori, C es la capacidad del contenedor yk una constante que es mayor a 1. En otras palabras, la funci´on objetivo a maximizar es el promedio de todos los contenedores, a lak-´esima potencia de la “eficiencia del contenedor” midiendo el aprovechamiento de la capacidad del contenedor. La funci´on es penalizada de acuerdo al n´umero de restricciones que viola.
El objetivo principal de buscar el m´ınimo n´umero de camiones necesario, se ve reflejado en la funci´on objetivo al usar la unidad como peso que afecta a este valor. A continuaci´on se describe como se c´alcula el valor de cada restricci´on.
• R0 y R1, est´an impl´ıcitamente envueltas en la elaboraci´on de la soluci´on. Todas las soluciones, para que sean v´alidas, deben cubrir estas restricciones. Su valor conjunto est´a dado por la funci´on de costo que Falkeanuer [4] utiliza en su trabajo.
• R2, est´a tambi´en implicita en el c´alculo de R0 y R1 aunque la afectaci´on que las restantes restricciones dan a la soluci´on pueden influir para que esta restricci´on no se cumpla al cien por ciento.
• R3, una vez que se ha obtenido una soluci´on se procede a analizar los eventos de cada cami´on. Por cada par de eventos que no cumpla esta restricci´on se contabiliza y se da una penalizaci´on al valor acumulado de la funci´on objetivo.
• R4, al igual que en la restricci´on anterior, cuando ya se ha obtenido una soluci´on, se analizan las caracter´ısticas de ´esta. Si un par de eventos no cumple con esta restricci´on se da una penalizaci´on. Adem´as se contabiliza.
Para implementar la optimizaci´on en la b´usqueda de una soluci´on que cumpla s´olo parcialmente las restricciones, es necesario evaluar la funci´on objetivo y comparar esta evaluaci´on con el ´optimo global y en caso de que la soluci´on que se eval´ua es mejor, se guarda.