Módulo PySAG.ga

Clase principal que implementa el Algoritmo Genético (AG).

Esta clase encapsula la lógica de un algoritmo genético estándar, permitiendo la configuración de sus componentes clave como la inicialización, selección, cruce y mutación a través de funciones personalizadas.

class PySAG.ga.GA(fitness_func, num_genes, population_size=50, num_generations=100, num_parents_mating=10, initial_population_func=<function init_random_uniform>, initial_pop_args=None, selection_func=<function selection_roulette_wheel>, selection_args=None, crossover_func=<function crossover_single_point>, crossover_args=None, crossover_probability=0.9, mutation_func=<function mutation_random_gene_uniform>, mutation_args=None, keep_elitism_percentage=0.1, random_seed=None)[fuente]

Bases: object

Clase principal que implementa el Algoritmo Genético (AG).

Permite configurar cada etapa del AG (inicialización, evaluación, selección, cruce y mutación) y ejecutar el proceso evolutivo.

Parámetros:
__init__(fitness_func, num_genes, population_size=50, num_generations=100, num_parents_mating=10, initial_population_func=<function init_random_uniform>, initial_pop_args=None, selection_func=<function selection_roulette_wheel>, selection_args=None, crossover_func=<function crossover_single_point>, crossover_args=None, crossover_probability=0.9, mutation_func=<function mutation_random_gene_uniform>, mutation_args=None, keep_elitism_percentage=0.1, random_seed=None)[fuente]

Inicializa el algoritmo genético con los parámetros dados.

Parámetros:
  • fitness_func (Callable[[ndarray[tuple[int, ...], dtype[Any]]], float])

  • fitness (Función que toma un individuo y devuelve su valor de)

  • num_genes (int)

  • individuo. (Número de genes en cada)

  • population_size (int)

  • 50. (Tamaño de la población. Por defecto es)

  • num_generations (int)

  • 100. (Número de generaciones a ejecutar. Por defecto es)

  • num_parents_mating (int)

  • padres (Número de individuos a seleccionar como)

  • 10. (para el cruce. Por defecto es)

  • initial_population_func (Callable[[...], Any])

  • inicial. (Función para crear la población)

  • init_random_uniform. (Por defecto es)

  • initial_pop_args (Dict[str, Any] | None)

  • initial_population_func. (Argumentos adicionales para)

  • selection_func (Callable[[...], Any])

  • padres. (Función para seleccionar)

  • selection_roulette_wheel. (Por defecto es)

  • selection_args (Dict[str, Any] | None)

  • selection_func. (Argumentos adicionales para)

  • crossover_func (Callable[[...], Any] | None)

  • cruce. (Probabilidad de que ocurra el)

  • crossover_single_point. (Por defecto es)

  • crossover_args (Dict[str, Any] | None)

  • crossover_func. (Argumentos adicionales para)

  • crossover_probability (float)

  • cruce.

  • 0.9. (Debe estar entre 0 y 1. Por defecto es)

  • mutation_func (Callable[[...], Any])

  • mutación. (Función para realizar la)

  • mutation_random_gene_uniform. (Por defecto es)

  • mutation_args (Dict[str, Any] | None)

  • mutation_func. (Argumentos adicionales para)

  • keep_elitism_percentage (float)

  • la (Porcentaje de los mejores individuos de)

  • directamente (generación actual que se pasan)

  • 1. (a la siguiente. Debe estar entre 0 y)

  • 0.1. (Por defecto es)

  • random_seed (int | None)

  • aleatorios (Semilla opcional para el generador de números)

  • Python (de NumPy y)

  • reproducibilidad. (para)

Muestra:
Tipo del valor devuelto:

None

plot_fitness(save_path=None)[fuente]

Grafica la evolución del mejor fitness a lo largo de las generaciones.

Utiliza Matplotlib para generar la gráfica. Si Matplotlib no está instalado, imprime un mensaje de advertencia.

Parámetros:

save_path (str | None) – Ruta opcional para guardar la gráfica como archivo de imagen. Ej: «fitness_evolution.png». Si es None, solo muestra la gráfica.

Tipo del valor devuelto:

None

run()[fuente]

Ejecuta el algoritmo genético a través de las generaciones.

Devuelve:

Una tupla con la mejor solución global encontrada (Individuo) y su valor de fitness (float).

Muestra:

GeneticAlgorithmError – Si ocurren errores irrecuperables durante la ejecución del AG.

Tipo del valor devuelto:

Tuple[ndarray[tuple[int, …], dtype[Any]] | None, float]