evolvepy.evaluator package
Submodules
evolvepy.evaluator.aggregator module
- class evolvepy.evaluator.aggregator.FitnessAggregator(evaluator: Evaluator, mode: int = 2, weights: int | float | complex | str | bytes | generic | Sequence[int | float | complex | str | bytes | generic] | Sequence[Sequence[Any]] | _SupportsArray | None = None)[source]
Bases:
EvaluationStage
Aggregates multiple individual scores into a final fitness.
This stage must always be present in the case of evaluations with multiple fitness.
- MAX = 0
- MEAN = 2
- MEDIAN = 3
- MIN = 1
- MODE_NAMES = ['MAX', 'MIN', 'MEAN', 'MEDIAN']
- __init__(evaluator: Evaluator, mode: int = 2, weights: int | float | complex | str | bytes | generic | Sequence[int | float | complex | str | bytes | generic] | Sequence[Sequence[Any]] | _SupportsArray | None = None)[source]
FitnessAggregator constructor.
- Parameters:
evaluator (Evaluator) – Evaluator used to evaluate the individuals.
mode (int, optional) – How scores will be aggregated. Defaults to FitnessAggregator.MEAN. Available modes: MAX, MIN, MEAN, MEDIAN.
weights (Union[ArrayLike, None], optional) – Weight to be used for each score. In the case of None, consider each score with the same weight. Defaults to None.
- call(population: ndarray) ndarray [source]
Evaluates a population aggregating the scores.
- Parameters:
population (np.ndarray) – Population to be evaluated.
- Returns:
Population fitness.
- Return type:
np.ndarray
- func: List[Callable] = [<function amax>, <function amin>, <function mean>, <function median>]
evolvepy.evaluator.cache module
- class evolvepy.evaluator.cache.FitnessCache(evaluator: Evaluator, n_generation: int | None = None, max_decimals: int | None = None)[source]
Bases:
EvaluationStage
Evaluations cache.
It allows recovering the previous evaluation of an already evaluated individual, increasing the performance.
- __init__(evaluator: Evaluator, n_generation: int | None = None, max_decimals: int | None = None)[source]
FitnessCache constructor.
- Parameters:
evaluator (Evaluator) – Evaluator used to evaluate the individuals.
n_generation (int, optional) – Amounts of generations to wait before deleting an old rating. Defaults to None (never deletes).
max_decimals (int, optional) – Decimal places to consider when comparing two individuals. Defaults to None (all places).
- call(population: ndarray) ndarray [source]
Returns the stored fitness of individuals, or evaluates them if it doesn’t have it.
- Parameters:
population (np.ndarray) – Population to be evaluated.
- Returns:
Population fitness.
- Return type:
np.ndarray
- get_individual_representation(individual: ndarray) bytes [source]
Generates the byte representation of an individual, considering the precision in decimal places.
- Parameters:
individual (np.ndarray) – Individual who will have representation generated.
- Returns:
Generated representation.
- Return type:
bytes
evolvepy.evaluator.evaluator module
- class evolvepy.evaluator.evaluator.EvaluationStage(evaluator: Evaluator, parameters: Dict[str, object] | None = None, dynamic_parameters: Dict[str, bool] | None = None)[source]
Bases:
Evaluator
An evaluation stage. Allows you to modify the behavior of an evaluator.
Can be chained with other stages.
- __init__(evaluator: Evaluator, parameters: Dict[str, object] | None = None, dynamic_parameters: Dict[str, bool] | None = None) None [source]
EvaluationStage constructor.
- Parameters:
evaluator (Evaluator) – Evaluator that will be modified.
parameters (Dict[str, object], optional) – Evaluator parameters. Defaults to None.
dynamic_parameters (Dict[str, bool], optional) – Evaluator dynamic parameters description. Defaults to None.
- class evolvepy.evaluator.evaluator.Evaluator(n_scores: int = 1, individual_per_call: int = 1, other_parameters: Dict[str, object] | None = None, dynamic_parameters: Dict[str, bool] | None = None, name: str | None = None)[source]
Bases:
Configurable
,ABC
Base evaluator class.
Must be inherited to be used.
- __init__(n_scores: int = 1, individual_per_call: int = 1, other_parameters: Dict[str, object] | None = None, dynamic_parameters: Dict[str, bool] | None = None, name: str | None = None) None [source]
Evalutor constructor.
- Parameters:
n_scores (int, optional) – Number of scores generated when evaluating an individual. Defaults to 1.
individual_per_call (int, optional) – Number of individuals that are evaluated at each call. Defaults to 1.
other_parameters (Dict[str,object], optional) – Other parameters defined by the inheritor class. Defaults to None.
dynamic_parameters (Dict[str,bool], optional) – Other dynamic parameters defined by the inheritor class. Defaults to None.
- property scores: ndarray
Scores of the last evaluated individuals.
evolvepy.evaluator.function_evaluator module
- class evolvepy.evaluator.function_evaluator.FunctionEvaluator(function: Callable[[ndarray], int | float | complex | str | bytes | generic | Sequence[int | float | complex | str | bytes | generic] | Sequence[Sequence[Any]] | _SupportsArray], n_scores: int = 1, mode: int = 2, individual_per_call: int = 1, name: str | None = None, n_thread: int | None = None)[source]
Bases:
Evaluator
Evaluates individuals using a simple function.
- JIT = 1
- JIT_PARALLEL = 3
- NJIT = 2
- NJIT_PARALLEL = 4
- PYTHON = 0
- __init__(function: Callable[[ndarray], int | float | complex | str | bytes | generic | Sequence[int | float | complex | str | bytes | generic] | Sequence[Sequence[Any]] | _SupportsArray], n_scores: int = 1, mode: int = 2, individual_per_call: int = 1, name: str | None = None, n_thread: int | None = None) None [source]
FunctionEvaluator constructor.
- Parameters:
function (Callable[[np.ndarray], ArrayLike]) – Function that will be used to evaluate individuals.
n_scores (int, optional) – Number of scores generated for each individual. Defaults to 1.
mode (int, optional) – In which compilation mode to use the fitness function. Defaults to FunctionEvaluator.NJIT. One of the class constants can be used: PYTHON: No JIT compilation JIT: With Numba JIT compilation NJIT: With Numba No Python mode. JIT_PARALLEL: With JIT and parallel assessments. NJIT_PARALLEL: With NJIT and parallel assessments.
individual_per_call (int, optional) – Number of individuals that are evaluated at each function call. Defaults to 1.
- call(population: ndarray) ndarray [source]
Evaluates a population using the fitness function.
- Parameters:
population (np.ndarray) – Population to be evaluated.
- Returns:
Population fitness.
- Return type:
np.ndarray
- static static_call(function: Callable, individual_per_call: int, n_scores: int, population: ndarray) ndarray [source]
Call the fitness function in the desired mode.
Static method to enable just-in-time compilation using Numba.
- Parameters:
function (Callable) – Function that will be used to evaluate individuals.
individual_per_call (int) – Number of individuals that are evaluated at each function call.
n_scores (int) – Number of scores generated for each individual.
population (np.ndarray) – Population to be evaluated
- Returns:
Population fitness
- Return type:
np.ndarray
evolvepy.evaluator.multiple module
- class evolvepy.evaluator.multiple.MultipleEvaluation(evaluator: ~evolvepy.evaluator.evaluator.Evaluator, n_evaluation: int = 1, agregator: ~typing.Callable[[~numpy.ndarray, int], ~numpy.ndarray] = <function mean>, discard_min=False, discard_max=False)[source]
Bases:
EvaluationStage
Evaluates the same individual several times to avoid noise.
- __init__(evaluator: ~evolvepy.evaluator.evaluator.Evaluator, n_evaluation: int = 1, agregator: ~typing.Callable[[~numpy.ndarray, int], ~numpy.ndarray] = <function mean>, discard_min=False, discard_max=False) None [source]
MultipleEvaluation constructor.
- Parameters:
evaluator (Evaluator) – Evaluator used to evaluate the individuals.
n_evaluation (int, optional) – Number of evaluations to be carried out. Defaults to 1.
agregator (Callable[[np.ndarray, int], np.ndarray], optional) – Function that will aggregate the fitness of the evaluations. Defaults to np.mean.
discard_min (bool, optional) – Whether it should discard the lower fitness assessment. Defaults to False.
discard_max (bool, optional) – Whether it should discard the higher fitness assessment. Defaults to False.
evolvepy.evaluator.process_evaluator module
- class evolvepy.evaluator.process_evaluator.ProcessEvaluator(fitness_function: Type[ProcessFitnessFunction], n_process: int | None = None, timeout: int | None = None, n_scores: int = 1, individual_per_call: int = 1, args: Dict[str, object] | None = None, name: str | None = None)[source]
Bases:
Evaluator
Evaluates individuals using multiple process.
- __init__(fitness_function: Type[ProcessFitnessFunction], n_process: int | None = None, timeout: int | None = None, n_scores: int = 1, individual_per_call: int = 1, args: Dict[str, object] | None = None, name: str | None = None) None [source]
ProcessEvaluator constructor.
- Parameters:
fitness_function (Type[ProcessFitnessFunction]) – Class that will be used to evaluate individuals.
n_process (int, optional) – Number of process to use. Defaults to None (same number as cpu_count).
timeout (int, optional) – Maximum time to wait for a new evaluation. Defaults to None (infinity).
n_scores (int, optional) – Number of scores generated by fitness function. Defaults to 1.
individual_per_call (int, optional) – Number of individuals that the fitness function receives. Defaults to 1.
args (Dict[str, object], optional) – Other arguments for the fitness_function constructor. Defaults to None.
- class evolvepy.evaluator.process_evaluator.ProcessFitnessFunction(reset: bool = False)[source]
Bases:
ABC
Base class of fitness function to be used to evaluate individuals in parallel with multiple processes.
It must be inherited in a class that will implement the evaluation.
- __init__(reset: bool = False) None [source]
ProcessFitnessFunction constructor.
- Parameters:
reset (bool, optional) – Whether to reset the evaluator status at each evaluation. Defaults to False.
- evolvepy.evaluator.process_evaluator.evaluate_forever(fitness_function: Type[ProcessFitnessFunction], individuals_queue: Queue, scores_queue: Queue, args: Dict[str, object])[source]
Prepared the cost function to evaluate the individuals, waits for the receipt of individuals and returns the scores.
- Parameters:
fitness_function (Type[ProcessFitnessFunction]) – Class to be used to evaluate individuals.
individuals_queue (mp.Queue) – Queue in which individuals who need to be evaluated will arrive.
scores_queue (mp.Queue) – Queue in which the generated scores will be placed.
args (Dict[str, object]) – Other evaluator class constructor arguments.
Module contents
EvolvePy’s evaluators. Objects used to evaluate individuals.