Capítulo 2 Nuevo modelo ACO en dos etapas para resolver Problemas de Optimización
2.2 Aplicación de los algoritmos ACS y TS-ACS al TSP
Para resolver el TSP utilizando ACS [12, 49, 80] y TS-ACS, se construye inicialmente un grafo no dirigido G=(N, A), donde el conjunto de nodos es igual a la cantidad de ciudades que presenta la instancia a resolver, los arcos representan distancias entre cada una de las ciudades, ver figuras 1.1 y 2.2, para este problema es importante el orden en que son visitadas las ciudades, es decir, es un problema de secuenciación, por lo que en este caso se tiene una matriz de feromona, que es lo mismo que asociar la feromona a los arcos del grafo, esta matriz se inicializa mediante algunos de los criterios presentados en el capítulo anterior.
Figura 2.2 Grafo generado para la instancia del TSP de la figura 1.1, marcado en negrita el tour óptimo desde la ciudad 1
Para este ejemplo, un posible tour calculado por las hormigas sería A:{1; 3; 2; 6; 5; 4}, cuyo costo es 2+3+1+9+5= 20 más el costo de regresar a la ciudad de partida que es 1 sería igual a 21. Pero el camino anterior no es el camino óptimo, pues existen recorridos muchos más pequeños en costo por ejemplo B:{1; 4; 3; 6; 2; 5} cuyo costo es de 14, este recorrido representa el óptimo para este ejemplo.
2.2.1 ACS aplicado al TSP
El proceso comienza posicionando cada una de las hormigas que conforman la colonia en una ciudad escogida aleatoriamente, cada hormiga comienza a moverse por el grafo según las expresiones (1.5) y (1.6), para este problema la función heurística ηij =1/dij , donde dij es la distancia de la ciudad i a la ciudad j, representada en la matriz de distancia en la posición i, j y la vecindad Ni del nodo i, son las ciudades que no han sido visitadas por la hormiga que está realizando el movimiento, o lo que es lo mismo, la diferencia entre el conjunto total de ciudades y la lista tabú, después la ciudad que fue elegida se introduce en la lista tabú de dicha hormiga, luego se procede a incrementar los valores de feromona con una actualización en línea paso a paso según la expresión 1.7, este proceso es repetido por todas las hormigas de la colonia, cada hormiga termina cuando su vecindad , en otras palabras, cuando se ha pasado por todas las ciudades. Siempre que se obtengan soluciones, éstas son evaluadas para tener almacenado el recorrido de menor distancia encontrado hasta el momento (mejor solución global). Cuando cada hormiga de la colonia encontró su solución, se pasa a la evaporación de los rastros de feromona pertenecientes a la mejor solución encontrada hasta el momento según expresión 1.8, además se realiza una actualización de los rastros de feromona asociados a esta solución (actualización global de los rastros de feromona ) según expresión 1.9.
Todo el proceso explicado anteriormente se ejecuta hasta que se cumpla con alguna de las condiciones de parada.
Descripción del algoritmo en pseudo código. 1. Fase de inicialización
Inicializar contador de ciclos nc Inicializar total de Hormigas
Inicializar solución globalLglobal =Φ
Inicializar matriz de feromona t(i, j) = t0 Cargar matriz de distancia d(i, j)
2. Repetir NC veces
Para cada hormiga
Elegir ciudad origen
Repetir para cada hormiga hasta llenar su lista tabúk
Elegir próxima ciudad a ser visitada según ecuaciones (1.5) y (1.6)
Mover la hormiga a la próxima ciudad Insertar ciudad seleccionada en tabúk
Actualizar feromonas paso a paso según ecuación (1.7) Repetir para las k hormigas
Aplicar algoritmo de búsqueda local a Lk (opcional) Calcular costo de la solución (Lk)
Si (Lk < Lglobal)
Actualizar Lglobal con Lk
Actualización global de las feromonas según ecuación (1.8) y (1.9) 3. Imprimir camino más corto Lglobal
2.2.2 TS-ACS aplicado al TSP
Se inicia el proceso calculando la dimensión de la primera etapa según expresión 2.1. El proceso continúa aplicando el algoritmo ACS como se explicó en el epígrafe anterior, solo que en la evaluación de las subsoluciones alcanzadas en esta etapa no se tiene en cuenta el costo de regresar a la ciudad de partida, porque todavía no representan una solución completa.
Cuando termina la primera etapa, se calculan los parámetros para la segunda según expresión 2.2, luego cada hormiga es posicionada de forma aleatoria en uno de los ns mejores subrecorridos encontrados en la primera etapa, es bueno aclarar que, en este momento, las hormigas no comienzan su búsqueda a partir de una ciudad, sino de un subrecorrido. Luego el proceso continúa con la
aplicación del algoritmo ACS, nótese que en la evaluación de las soluciones encontradas en esta etapa, si se tiene en cuenta el costo de regresar a la ciudad de partida, ya que estas constituyen una solución general del TSP.
Descripción del algoritmo en pseudo código. 1. Fase de inicialización
Inicializar contador de ciclos nc Inicializar total de Hormigas
Inicializar solución globalLglobal =Φ
Inicializar matriz de feromona t(i, j) = t0 Cargar matriz de distancia d(i, j)
2. Primera Etapa
Calcular dimensión según expresión 2.1 3. Repetir nc1 veces
Para cada hormiga de m1 Elegir ciudad origen
Repetir para cada hormiga hasta llenar su lista tabúk, su dimensión es nn1
Elegir próxima ciudad a ser visitada según ecuaciones (1.5) y (1.6)
Mover la hormiga a la próxima ciudad Insertar ciudad seleccionada en tabúk
Actualizar feromonas paso a paso según ecuación (1.7) Repetir para las k hormigas
Aplicar algoritmo de búsqueda local a Lk (opcional)
Calcular costo de su solución (Lk) sin regresar a la ciudad de partida
Actualizar EI con las cs mejores soluciones de esta etapa. Actualización global de los rastros de feromona de la mejor solución del conjunto EI según ecuación (1.8) y (1.9)
4. Segunda etapa
Calcular dimensión según expresión 2.2 5. Repetir nc2 veces
Para cada hormiga de m2
Elegir subtour de origen, uno de los elementos de EI Repetir para cada hormiga hasta llenar su lista tabúk
Elegir próxima ciudad a ser visitada según ecuaciones (1.5) y (1.6)
Actualizar feromonas paso a paso según ecuación (1.7) Repetir para las k hormigas
Aplicar algoritmo de búsqueda local a Lk (opcional)
Calcular costo de su solución (Lk)y de regresar a la ciudad de partida
Si (Lk < Lglobal)
Actualizar Lglobal con Lk
Actualización global de las feromonas según ecuación (1.8) y (1.9) 6. Imprimir camino más corto Lglobal
2.2.3 Efecto de la Búsqueda Local en ACS y TS-ACS aplicados al TSP
Al aplicarle el algoritmo ACS al TSP, las hormigas de la colonia encuentran soluciones factibles al TSP, que son utilizadas como punto de partida para el operador de búsqueda local 2-opt. Este operador modifica cada solución haciendo intercambios en el orden en que fueron visitadas las ciudades, mejorando en algunos casos las soluciones originales. Después que este proceso termina son evaluadas cada una de las soluciones para actualizar la mejor solución alcanzada hasta el momento (mejor solución global). Luego se pasa a la evaporación y actualización de los rastros de feromona pertenecientes a la mejor solución global según expresiones 1.8 y 1.9, este proceso se repite hasta que se detiene el algoritmo ACS.
En el caso de incorporar la búsqueda local 2-opt al algoritmo TS-ACS se puede hacer en dos momentos del modelo:
– En la primera etapa: con el objetivo de mejorar los subcaminos para obtener mejores estados iniciales para la segunda etapa, aunque el costo computacional se eleva un poco, no es tan alentador porque las subsoluciones no son de gran longitud.
– En la segunda etapa: como las soluciones de esta etapa representan una solución del TSP, el hecho de aplicarles la búsqueda local, trae consigo que se puedan encontrar buenas vecindades con costo menor que el alcanzando por las hormigas y con esto una mejor solución global, para este caso, el costo computacional es mucho mayor que el de la variante anterior, pues las longitudes de las soluciones de esta etapa son mayores que en la primera. Como se pudo apreciar, los algoritmos de búsqueda local, al ligarlos con los algoritmos de la meta- heurística ACO y con el nuevo modelo, sólo se emplean para mejorar las soluciones alcanzadas por las hormigas, es bueno aclarar, que este proceso trae consigo que el costo computacional se eleve, pero este a veces es el precio que hay que pagar por obtener buenas soluciones, por lo que es muy común en las publicaciones actuales encontrarse modelos híbridos entre algoritmos heurísticos y de búsqueda local, en aras de un mejor desempeño.