Módulos Algoritmos

Los módulos son los archivos o clases en el lenguaje Python que permiten la ejecución de los algoritmos, son parte del código fuente y pueden ser modificados en función de las necesidades del usuario. Dentro de estos archivos existen comentarios que facilitan la comprensión lógica de los diferentes módulos.

A continuación, se resumen los módulos de los algoritmos que ejecutan las metaheurísticas simulated annealing y algoritmos genéticos:

  • SimulatedAnnealing.py: incorpora la clase que implementa el método de búsqueda de Simulated Annealing
    • search: método que inicia la búsqueda de Simulated Annealing a partir de la solución inicial generada desde una instancia
    • terminationCondition: método que verifica si se ha cumplido la condición de termino, ya sea por temperatura mínima, numero de evaluaciones o tiempo de ejecución
    • getAcceptanceProbability: método que calcula la probabilidad de aceptar una solución
    • reduceTemperature: método que reduce el valor de la temperatura siguiendo un esquema de enfriamiento seleccionado, ya sea linear, geométrico o logarítmico

  • GeneticAlgorithm.py: incorpora la clase que implementa el método de búsqueda de Algoritmo Genético
    • search: método que inicia la búsqueda de Algoritmo Genético a partir de la solución inicial generada desde una instancia
    • terminationCondition: método que verifica si se ha cumplido la condición de termino, ya sea por temperatura mínima, numero de evaluaciones o tiempo de ejecución

  • Population.py: clase para Algoritmos Genéticos, permite controlar la generación y manipular la población que contiene las soluciones de TSP
    • mutation: método que aplica el operador de mutación a la población
    • crossover: método que aplica el operador de crossover a los padres proporcionados, buscando generar nuevos hijos
    • selectParents: método que selecciona dos padres aplicando el operador de selección, puede ser random, el mejor, ruleta o torneo
    • selectPopulation: método que selecciona los sujetos para la nueva población, puede ser (μ,λ) o (μ+λ)

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

Desarrollado por Jorge Polanco & Javier del Canto