Genetic Algorithm
A population-based evolutionary algorithm with configurable mutation, selection, and recombination operators.
GeneticAlgorithm configuration plus its mutation, selection, and recombination
operator types.
- class RecombinatorType(*values)[source]
Crossover strategies for combining parent solutions.
- UNIFORM_CROSSOVER = 'Uniform crossover'
- N_POINT_CROSSOVER = 'N-point crossover'
- class ComparatorType(*values)[source]
Solution-comparison strategy for multi-objective optimisation.
- LEXICOGRAPHIC_COMPARATOR = 'Lexicographic comparator'
- WEIGHTED_OBJECTIVE_COMPARATOR = 'Weighted objective lexicographic comparator'
- SAMPLE_WEIGHTED_OBJECTIVE_COMPARATOR = 'Weighted objective online lexicographic comparator'
- USER_WEIGHTED_OBJECTIVE_COMPARATOR = 'User weighted objective comparator'
- LEXICOGRAPHIC_ONLINE_WEIGHTED_OBJECTIVE_COMPARATOR = 'Lexicographic online weighted objective comparator'
- class MutationType(*values)[source]
Mutation strategy used to perturb individual solutions.
- GAUSSIAN_MUTATION = 'Gaussian mutation'
- UNIFORM_MUTATION = 'Uniform mutation'
- class SelectionType(*values)[source]
Strategy for selecting individuals from the population.
- TOURNAMENT_SELECTION = 'Tournament selection'
- FAST_TOURNAMENT_SELECTION = 'Fast tournament selection'
- RANDOM_SELECTION = 'Random selection'
- class DistanceMetricType(*values)[source]
Distance metric used for diversity-aware operators.
- EUCLIDEAN_DISTANCE = 'Euclidean distance'
- HAMMING_DISTANCE = 'Manhattan distance'
- class SamplingMethodType(*values)[source]
Method used to generate the initial population.
- UNIFORM_RANDOM = 'Uniform random'
- LATIN_HYPERCUBE = 'Latin Hypercube'
- class Mutation(name, parameters)[source]
A mutation operator: a
MutationTypeplus its operator-specific parameters.- name: MutationType
- classmethod mutation(name=None, variation_range=None)[source]
Construct a
Mutationwith default operator parameters.- Parameters:
name (
MutationType|None) – Mutation strategy. Defaults toUNIFORM_MUTATION.variation_range (
float|NumericExpression|None) – Variation magnitude for uniform mutation. Must be non-negative.
- Return type:
- class Selection(name, parameters)[source]
A selection operator: a
SelectionTypeplus its operator-specific parameters.- name: SelectionType
- classmethod selection(name=None, pool_size=None)[source]
Construct a
Selectionwith default operator parameters.- Parameters:
name (
SelectionType|None) – Selection strategy. Defaults toFAST_TOURNAMENT_SELECTION.pool_size (
int|NumericExpression|None) – Tournament pool size. Must be at least 2.
- Return type:
- class GeneticAlgorithm(log_info=False, evaluations=100000, max_evaluations_without_improvement=10000, max_time_without_improvement=300, min_improvement=1e-06, max_restart_count=0, prng_seed=None, time_limit=60, mutation_rate=(1 / NUM_VARIABLES), recombinator_rate=0.8, population_size=NUM_VARIABLES, elitism=1, mutation=<factory>, recombinator=RecombinatorType.UNIFORM_CROSSOVER, n_point_cuts=None, selection=<factory>, comparator=None, tiebreaker=False, distance_metric=DistanceMetricType.EUCLIDEAN_DISTANCE, sample_count=0, sampling_method=SamplingMethodType.UNIFORM_RANDOM)[source]
Population-based evolutionary algorithm.
- mutation_rate: float | NumericExpression | Parameter | Calculation = (1 / NUM_VARIABLES)
Probability of mutating an offspring (0–1).
- recombinator_rate: float | NumericExpression | Parameter | Calculation = 0.8
Probability of applying crossover (0–1).
- population_size: int | NumericExpression | Parameter | Calculation = NUM_VARIABLES
Number of individuals in the population.
- elitism: int | NumericExpression | Parameter | Calculation = 1
Number of top individuals copied unchanged into the next generation.
- recombinator: RecombinatorType = 'Uniform crossover'
Crossover strategy.
- n_point_cuts: int | NumericExpression | Parameter | Calculation | None = None
Number of crossover points; auto-set for N-point crossover.
- comparator: ComparatorType | None = None
Optional solution comparator for multi-objective runs.
- distance_metric: DistanceMetricType = 'Euclidean distance'
Distance metric for diversity-aware operators.
- sample_count: int | NumericExpression | Parameter | Calculation = 0
Initial-sample count for sampling-based seeding.
- sampling_method: SamplingMethodType = 'Uniform random'
Initial-population sampling method.