Parámetros de Ejecución Simulated Annealing

Los parámetros de ejecución de la metaheurística simulated annealing pueden ser modificados directamente desde el código fuente en la clase AlgorithmsOptions.py, permitiendo cambiar las condiciones de funcionamiento del programa, dando como resultado una ampliación de los resultados posibles de una misma instancia o la sustitución de este última.

De igual manera, es posible configurar estos parámetros de ejecución al iniciar el software desde la línea de comandos. A continuación, se entregan los comandos de ejecucion de simulated annealing:

  • --insol (-is): método de generación de la solución inicial, por defecto random
    • random: cada nodo o ciudad de la instancia es ordenada aleatoriamente, independiente de la distancia entre estas
    • nearest_n: primer nodo o ciudad seleccionado aleatoriamente, los siguientes elementos son elegidos en función a la menor distancia a su antecesor
    • deterministic: existe un orden preestablecido de la ciudad o nodo
    python tspf.py -mh SA --insol deterministic

  • --cooling (-c): determina el esquema de enfriamiento para la ejecución del algoritmo, por defecto geometric
    • linear: cada nodo o ciudad de la instancia es ordenada aleatoriamente, independiente de la distancia entre estas
    • geometric: primer nodo o ciudad seleccionado aleatoriamente, los siguientes elementos son elegidos en función a la menor distancia a su antecesor
    • log: existe un orden preestablecido de la ciudad o nodo
    python tspf.py -mh SA -c linear

  • --alpha (-a) [0,1]: valor del parámetro alpha que permite el enfriamiento en el esquema lineal, por defecto 0.98
    python tspf.py -mh SA -a 0.3

  • --tini (-t0): valor de la temperatura inicial, por defecto 1000.0
    python tspf.py -mh SA -t0 956.45

  • --tmin (-tmin): valor de la temperatura minima aceptable para ejecución del algoritmo, por defecto 10
    python tspf.py -mh SA -tmin 800.87

  • --move (-mhm): tipo de movimiento en formato TSPMove que se utilizara para la ejecución, por defecto se utiliza swap
    • swap: operador de movimiento swap, dos nodos o ciudades aleatorios cambian su posición
    • 2opt: operador de movimiento 2-opt, se invierte un tramo del tour en puntos aleatorios
    python tspf.py -mh SA --move 2opt

Pontificia Universidad Católica de Valparaíso
Facultad de Ingeniería
Escuela de Ingeniería Informática

Desarrollado por Jorge Polanco & Javier del Canto