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: 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]

exception PySAG.GeneticAlgorithmError(message, details=None)[fuente]

Bases: PySAGError

Excepción base para errores en el algoritmo genético.

Parámetros:
exception PySAG.InitializationError(message, details=None)[fuente]

Bases: GeneticAlgorithmError

Se produce cuando hay un error en la inicialización de la población.

Parámetros:
exception PySAG.MutationError(message, details=None)[fuente]

Bases: GeneticAlgorithmError

Se produce cuando hay un error en el operador de mutación.

Parámetros:
exception PySAG.ParameterError(message, details=None)[fuente]

Bases: PySAGError

Se produce cuando hay un error en los parámetros de entrada.

Parámetros:
exception PySAG.RangeError(param_name, param_value, min_val=None, max_val=None, inclusive=True, details=None)[fuente]

Bases: ValidationError

Se 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.

  • param_value (int | float) – Valor 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: GeneticAlgorithmError

Se produce cuando hay un error en la selección de individuos.

Parámetros:
exception PySAG.TypeValidationError(param_name, param_value, expected_type)[fuente]

Bases: ValidationError

Se produce cuando un valor tiene un tipo incorrecto.

Parámetros:
Tipo del valor devuelto:

None

__init__(param_name, param_value, expected_type)[fuente]

Inicializa la excepción.

Parámetros:
  • param_name (str) – Nombre del parámetro que falló la validación.

  • param_value (Any) – Valor que falló la validación.

  • expected_type (Type | List[Any] | Any) – Tipo esperado o lista de tipos esperados.

Tipo del valor devuelto:

None

Módulos del Paquete