Selection Operators Reference

Selection operators choose parents for reproduction.

Module

use fugue_evo::operators::selection::{
    TournamentSelection, RouletteWheelSelection, RankSelection
};

Tournament Selection

Select best from k random individuals.

let selection = TournamentSelection::new(k);
ParameterTypeDescription
kusizeTournament size

Characteristics:

  • Higher k = more selection pressure
  • k=2 is minimal pressure
  • k=5-7 for high pressure
  • Efficient: O(k) per selection

Example:

let selection = TournamentSelection::new(3);
// Selects best of 3 random individuals

Roulette Wheel Selection

Probability proportional to fitness.

let selection = RouletteWheelSelection::new();

Characteristics:

  • Fitness proportionate
  • Can lose selection pressure with similar fitnesses
  • Sensitive to fitness scaling
  • O(n) setup, O(log n) per selection

Requirements:

  • Fitness must be positive
  • Works best with transformed fitness

Rank Selection

Probability based on fitness rank.

let selection = RankSelection::new();
// or with pressure parameter
let selection = RankSelection::with_pressure(2.0);
ParameterTypeDefaultDescription
pressuref642.0Selection pressure (1.0-2.0)

Characteristics:

  • Robust to fitness scaling
  • Maintains selection pressure
  • O(n log n) for ranking
  • Good for multimodal problems

Comparison

OperatorPressure ControlScaling SensitiveEfficiency
TournamentTournament sizeNoO(k)
RouletteFitness transformationYesO(log n)
RankPressure parameterNoO(n log n)

Usage

SimpleGABuilder::<RealVector, f64, _, _, _, _, _>::new()
    .selection(TournamentSelection::new(3))
    // ...

See Also