Class: Selection::ParetoTourney
- Inherits:
-
Object
- Object
- Selection::ParetoTourney
- Defined in:
- ../lib/pareto_tourney.rb
Overview
ParetoTourneySelect method (without replacement) as described in: www.evolved-analytics.com/selected_publications/pursuing_the_pareto_paradig.html
Instance Attribute Summary (collapse)
-
- (Object) population
The population to select from.
-
- (Object) random
The source of randomness, used for calling “random.rand( limit )”, defaulting to ‘Kernel’ class.
-
- (Object) tournament_size
The number of randomly selected individuals for dominance evaluation.
Instance Method Summary (collapse)
-
- (ParetoTourney) initialize(tournament_size = 2)
constructor
Set the tournament_size (see the attribute) for selections.
-
- (Object) select_dominated(population = self.population)
Select all dominated solutions from the random subset of the population.
-
- (Object) select_front(population = self.population)
Select all nondominated solutions from the random subset of the population.
Constructor Details
- (ParetoTourney) initialize(tournament_size = 2)
Set the tournament_size (see the attribute) for selections.
12 13 14 15 |
# File '../lib/pareto_tourney.rb', line 12 def initialize tournament_size=2 @tournament_size = tournament_size @random = Kernel end |
Instance Attribute Details
- (Object) population
The population to select from. The same as the argument of ParetoTourney#select_front and ParetoTourney#select_dominated methods.
21 22 23 |
# File '../lib/pareto_tourney.rb', line 21 def population @population end |
- (Object) random
The source of randomness, used for calling “random.rand( limit )”, defaulting to ‘Kernel’ class.
18 19 20 |
# File '../lib/pareto_tourney.rb', line 18 def random @random end |
- (Object) tournament_size
The number of randomly selected individuals for dominance evaluation.
24 25 26 |
# File '../lib/pareto_tourney.rb', line 24 def tournament_size @tournament_size end |
Instance Method Details
- (Object) select_dominated(population = self.population)
Select all dominated solutions from the random subset of the population.
32 33 34 |
# File '../lib/pareto_tourney.rb', line 32 def select_dominated population=self.population Moea::Pareto.dominated( random_select( population ) ) end |
- (Object) select_front(population = self.population)
Select all nondominated solutions from the random subset of the population.
27 28 29 |
# File '../lib/pareto_tourney.rb', line 27 def select_front population=self.population Moea::Pareto.nondominated( random_select( population ) ) end |