Referencia del Paquete PySAG
PySAG: Una librería simple de Algoritmos Genéticos en Python.
- class PySAG.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
- exception PySAG.GeneticAlgorithmError(message, details=None)[fuente]
Bases:
PySAGErrorExcepción base para errores en el algoritmo genético.
- exception PySAG.InitializationError(message, details=None)[fuente]
Bases:
GeneticAlgorithmErrorSe produce cuando hay un error en la inicialización de la población.
- exception PySAG.MutationError(message, details=None)[fuente]
Bases:
GeneticAlgorithmErrorSe produce cuando hay un error en el operador de mutación.
- exception PySAG.ParameterError(message, details=None)[fuente]
Bases:
PySAGErrorSe produce cuando hay un error en los parámetros de entrada.
- exception PySAG.RangeError(param_name, param_value, min_val=None, max_val=None, inclusive=True, details=None)[fuente]
Bases:
ValidationErrorSe produce cuando un valor está fuera del rango permitido.
- Parámetros:
- Tipo del valor devuelto:
None
- __init__(param_name, param_value, min_val=None, max_val=None, inclusive=True, details=None)[fuente]
Inicializa la excepción.
- Parámetros:
param_name (str) – Nombre del parámetro que falló la validación.
min_val (int | float | None) – Valor mínimo permitido (inclusive).
max_val (int | float | None) – Valor máximo permitido (inclusive).
inclusive (bool) – Si True, el rango es inclusivo.
details (str | None) – Información adicional sobre el error.
- Tipo del valor devuelto:
None
- exception PySAG.SelectionError(message, details=None)[fuente]
Bases:
GeneticAlgorithmErrorSe produce cuando hay un error en la selección de individuos.
- exception PySAG.TypeValidationError(param_name, param_value, expected_type)[fuente]
Bases:
ValidationErrorSe produce cuando un valor tiene un tipo incorrecto.
- Parámetros:
- Tipo del valor devuelto:
None