Interface SelectionPolicy

All Known Subinterfaces:
MultiTournaments<T>, ProportionalTournament<T>
All Known Implementing Classes:
DoubleTournament, ImmutableDoubleTournament, ImmutableMultiSelections, ImmutableMultiTournaments, ImmutableNeatSelection, ImmutableNSGA2Selection, ImmutableProportionalTournament, ImmutableRandomSelection, ImmutableRouletteWheel, ImmutableSelectAll, ImmutableTournament, ImmutableTournamentNSGA2Selection, MultiSelections, NeatSelection, NSGA2Selection, RandomSelection, RouletteWheel, SelectAll, Tournament, TournamentNSGA2Selection

public interface SelectionPolicy
Marker interface for selection policy specifications in evolutionary algorithms.

SelectionPolicy defines the contract for specifying selection strategies and their parameters. Selection policies determine how individuals are chosen from the population for reproduction, directly influencing the evolutionary pressure and convergence characteristics of the algorithm.

Selection policies are used by:

  • EA Configuration: To specify the parent selection strategy
  • Selection handlers: To create appropriate selector implementations
  • Strategy resolution: To match policies with their corresponding handlers
  • Parameter configuration: To define selection pressure and tournament sizes

The framework provides several concrete selection policy implementations:

Selection strategies vary in their characteristics:

  • Selection pressure: How strongly the algorithm favors high-fitness individuals
  • Diversity preservation: How well the strategy maintains population diversity
  • Computational complexity: Efficiency of the selection process
  • Scalability: Performance with different population sizes

Common selection patterns:

  • Exploitative strategies: High selection pressure (large tournaments, elitism)
  • Explorative strategies: Low selection pressure (small tournaments, random)
  • Balanced strategies: Moderate pressure with diversity preservation
  • Adaptive strategies: Selection pressure that changes during evolution

Selection policy design considerations:

  • Problem characteristics: Multimodal vs unimodal, deceptive problems
  • Population size: Small populations may need lower selection pressure
  • Fitness landscape: Rugged landscapes benefit from diversity preservation
  • Convergence requirements: Balance between speed and solution quality

Example usage in genetic algorithm configuration:


 // Tournament selection with moderate pressure
 SelectionPolicy tournament = Tournament.of(3);
 
 // Roulette wheel for fitness-proportionate selection
 SelectionPolicy roulette = RouletteWheel.build();
 
 // Multi-objective selection with double tournament
 SelectionPolicy doubleTournament = DoubleTournament.of(
     firstCriteria: 3,
     secondCriteria: 2
 );
 
 // Combined selection strategies
 SelectionPolicy multiSelection = MultiSelections.of(
     Tuple.of(0.7, tournament),
     Tuple.of(0.3, roulette)
 );
 
 // Use in EA configuration
 EAConfiguration<Double> config = EAConfigurationBuilder.<Double>builder()
     .chromosomeSpecs(chromosomeSpec)
     .parentSelectionPolicy(tournament)
     .build();
 
See Also: