Parámetros de Ejecución Algortimos Genéticos

Los parámetros de ejecución de la metaheurística algoritmos genéticos 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 algoritmos genéticos:

  • --psize (-p): tamaño de la población en cada iteración, por defecto 10
    python tspf.py -mh GA -p 20

  • --osize (-o): cantidad de hijos a generar en cada iteración, por defecto 20
    python tspf.py -mh GA -o 40

  • --pselection (-ps): determina el método de selección de padres para generar hijos, por defecto random
    • random: los padres son elegidos de la población actual al azar, sin considerar si son los mejores
    • best: se seleccionan los mejores padres de la actual población
    • roulette: los padres se seleccionan aleatoriamente, sin embargo los mejores tienen mayor probabilidad de elección
    • tournament: se seleccionan padres al azar y se comparan para optar por el mejor del grupo
    python tspf.py -mh GA --pselection tournament

  • --crossover (-cr): determina el operador de cruzamiento de padres con el fin de generar hijos, por defecto ox
    • ox: operador de cruzamiento ordenado, se intercambian tramos de los padres para generar hijos, en caso de ser necesario se ordenan los nodos para cumplir las restricciones de TSP
    • opx: cruzamiento en un punto, los tramos de los padres se dividen en un solo punto generando dos tramos, los cuales son intercambiados y posteriormente ordenados
    • pmx: cruce por emparejamiento parcial, en el cual se intercambian segmentos de tour entre dos padres, generando dos nuevos hijos
    python tspf.py -mh GA --crossover opx

  • --mutation (-mu): selección de mutación de los hijos generados, por defecto se utiliza swap
    • swap: operador de mutación swap, dos nodos o ciudades aleatorios cambian su posición
    • 2opt: operador de mutación 2-opt, se invierte un tramo del tour en puntos aleatorios
    python tspf.py -mh GA -mu 2opt

  • --mprobability (-mp) [0,1]: probabilidad de ejecutarse una mutación del individuo, por defecto 0.2
    python tspf.py -mh GA -mp 0.3

  • --gselection (-gs): selección de los individuos para la nueva población, se usan los mismos metodos para --pselection, por defecto se utiliza random
    • random
    • best
    • roulette
    • tournament
    python tspf.py -mh GA --gselection tournament

  • --gstrategy (-g): estrategia en la selección de padres e hijos para nueva población, por defecto se utiliza mu,lambda
    • mu,lambda: solo los hijos creados en la iteración actual pueden ser parte de la nueva población, siendo λ los hijos
    • mu+lambda: tanto hijos como padres pueden ser seleccionados para la nueva población, siendo μ los padres y λ los hijos
    python tspf.py -mh GA --gstrategy mu,lambda

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

Desarrollado por Jorge Polanco & Javier del Canto