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:
objectClase 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)
inicial. (Función para crear la población)
init_random_uniform. (Por defecto es)
initial_population_func. (Argumentos adicionales para)
padres. (Función para seleccionar)
selection_roulette_wheel. (Por defecto es)
selection_func. (Argumentos adicionales para)
cruce. (Probabilidad de que ocurra el)
crossover_single_point. (Por defecto es)
crossover_func. (Argumentos adicionales para)
crossover_probability (float)
cruce.
0.9. (Debe estar entre 0 y 1. Por defecto es)
mutación. (Función para realizar la)
mutation_random_gene_uniform. (Por defecto es)
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:
TypeValidationError – Si alguna de las funciones de operador no es callable.
ParameterError – Si alguno de los parámetros numéricos está fuera de rango.
- 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