Strategies

Strategies describes realization of specific optimization algorithm step. GEFEST provides two default strategies for crossover and mutation steps.

Strategy base class

class gefest.core.opt.strategies.strategy.Strategy[source]

Bases: object

Abstract class for algorithm steps.

abstract __call__(pop: list[Structure], *args: Any, **kwds: Any) list[Structure][source]

Must implement logic of any genetic algorithm step.

Default crossover strategy

class gefest.core.opt.strategies.crossover.CrossoverStrategy(opt_params: OptimizationParams)[source]

Bases: Strategy

Default crossover strategy.

__call__(pop: list[Structure]) list[Structure][source]

Calls crossover method.

crossover(pop: list[Structure])[source]

Executes crossover for provided population.

Default mutation strategy

class gefest.core.opt.strategies.mutation.MutationStrategy(opt_params: OptimizationParams)[source]

Bases: Strategy

Default mutation strategy.

__call__(pop: list[Structure]) list[Structure][source]

Calls mutate method.

mutate(pop: list[Structure]) list[Structure][source]

Mutates provided population.

Parameters:

pop (list[Structure]) – Given population.

Returns:

Mutated population.

Return type:

list[Structure]