geneticalgorithm2.callbacks.data
1from typing import Optional, List, Callable, Tuple 2 3from dataclasses import dataclass 4from typing_extensions import TypeAlias 5 6from ..crossovers import CrossoverFunc 7 8from ..mutations import MutationFloatFunc, MutationIntFunc 9from ..selections import SelectionFunc 10from ..utils.aliases import array2D, array1D 11 12from ..data_types.aliases import SetFunctionToMinimize 13from ..data_types.generation import Generation 14from ..data_types.base import DictLikeGetSet 15 16 17@dataclass 18class MiddleCallbackData(DictLikeGetSet): 19 """ 20 data object using in middle callbacks 21 """ 22 23 # TODO use slots? 24 25 reason_to_stop: Optional[str] 26 27 last_generation: Generation 28 29 current_generation: int 30 report_list: List[float] 31 32 mutation_prob: float 33 mutation_discrete_prob: float 34 35 mutation: MutationFloatFunc 36 mutation_discrete: MutationIntFunc 37 crossover: CrossoverFunc 38 selection: SelectionFunc 39 40 current_stagnation: int 41 max_stagnation: int 42 43 parents_portion: float 44 elit_ratio: float 45 46 set_function: SetFunctionToMinimize 47 48 49SimpleCallbackFunc: TypeAlias = Callable[[int, List[float], array2D, array1D], None] 50""" 51Callback function performs any operations on 52 (generation number, best scores report list, last population matrix, last scores vector) 53 54Notes: generation number cannot be changed 55""" 56 57MiddleCallbackConditionFunc: TypeAlias = Callable[[MiddleCallbackData], bool] 58"""Function (middle callback data) -> (bool value means whether to call middle callback action)""" 59 60 61MiddleCallbackActionFunc: TypeAlias = Callable[[MiddleCallbackData], MiddleCallbackData] 62"""Function which transforms and returns middle callback data or just uses it some way""" 63 64 65MiddleCallbackFunc: TypeAlias = Callable[[MiddleCallbackData], Tuple[MiddleCallbackData, bool]] 66""" 67Function (input middle callback data) -> (output callback data, changes flag) 68 where input and output data may be same 69 and changes flag means whether the output data must be read back 70 to the optimization process (to update by flag only one time -- for acceleration purposes) 71"""
19class MiddleCallbackData(DictLikeGetSet): 20 """ 21 data object using in middle callbacks 22 """ 23 24 # TODO use slots? 25 26 reason_to_stop: Optional[str] 27 28 last_generation: Generation 29 30 current_generation: int 31 report_list: List[float] 32 33 mutation_prob: float 34 mutation_discrete_prob: float 35 36 mutation: MutationFloatFunc 37 mutation_discrete: MutationIntFunc 38 crossover: CrossoverFunc 39 selection: SelectionFunc 40 41 current_stagnation: int 42 max_stagnation: int 43 44 parents_portion: float 45 elit_ratio: float 46 47 set_function: SetFunctionToMinimize
data object using in middle callbacks
MiddleCallbackData( reason_to_stop: Union[str, NoneType], last_generation: geneticalgorithm2.data_types.generation.Generation, current_generation: int, report_list: List[float], mutation_prob: float, mutation_discrete_prob: float, mutation: Callable[[float, float, float], float], mutation_discrete: Callable[[int, int, int], int], crossover: Callable[[numpy.ndarray, numpy.ndarray], Tuple[numpy.ndarray, numpy.ndarray]], selection: Callable[[numpy.ndarray, int], numpy.ndarray], current_stagnation: int, max_stagnation: int, parents_portion: float, elit_ratio: float, set_function: Callable[[numpy.ndarray], numpy.ndarray])
last_generation: geneticalgorithm2.data_types.generation.Generation
Inherited Members
SimpleCallbackFunc: typing_extensions.TypeAlias =
typing.Callable[[int, typing.List[float], numpy.ndarray, numpy.ndarray], NoneType]
Callback function performs any operations on (generation number, best scores report list, last population matrix, last scores vector)
Notes: generation number cannot be changed
MiddleCallbackConditionFunc: typing_extensions.TypeAlias =
typing.Callable[[MiddleCallbackData], bool]
Function (middle callback data) -> (bool value means whether to call middle callback action)
MiddleCallbackActionFunc: typing_extensions.TypeAlias =
typing.Callable[[MiddleCallbackData], MiddleCallbackData]
Function which transforms and returns middle callback data or just uses it some way
MiddleCallbackFunc: typing_extensions.TypeAlias =
typing.Callable[[MiddleCallbackData], typing.Tuple[MiddleCallbackData, bool]]
Function (input middle callback data) -> (output callback data, changes flag) where input and output data may be same and changes flag means whether the output data must be read back to the optimization process (to update by flag only one time -- for acceleration purposes)