[[PageOutline]] = Selection and Reduction = Selectors are HeuristicLab 3.3 operators that implement the `ISelector` interface. Likewise, Reducers implement the `IReducer` interface. Selection and Reduction operators usually work in tandem. To illustrate the application of selection/reduction consider a simple genetic algorithm that has a population of solutions and '''selects''' among these solutions those that should be crossed. After selection, the children are crossed (cf. Section on crossover operators) which results in two populations of the same size: The old parent population and the new child population. Finally, after mutating some children with a given probability, the parent population is replaced, i.e., it is '''reduced''' to the child population. [[Image(selection_reduction.jpg, width=500)]] ---- [=#Selection] == 1. Selection Operators == '''Common Operator Parameters:''' ||= Parameter =||= Description =|| || !CopySelected || True if the selected sub-scopes should be copied, otherwise false. || || !CurrentScope || The current scope from which sub-scopes should be selected. || || Maximization || True if the current problem is a maximization problem, otherwise false. || || !NumberOfSelectedSubScopes || The number of sub-scopes which should be selected. || || Quality || The quality value contained in each sub-scope which is used for selection. || === 1.1 !BestSelector === A selection operator which considers a single double quality value and selects the best. === 1.2 !GenderSpecificSelector === Brings two parents together by sampling each with a different selection scheme (Wagner and Affenzeller 2005). === 1.3 !LinearRankSelector === A linear rank selection operator which considers the rank based on a single double quality value for selection. === 1.4 !ProportionalSelector === A quality proportional selection operator which considers a single double quality value for selection. === 1.5 !RandomSelector === A random selection operator. === 1.6 !TournamentSelector === A tournament selection operator which considers a single double quality value for selection. === 1.7 !WorstSelector === A selection operator which considers a single double quality value and selects the worst. ---- [=#Reduction] == 2. Reduction Operators == '''Common Operator Parameters:''' ||= Parameter =||= Description =|| || !CurrentScope || The current scope from which sub-scopes should be selected. || === 2.1 !LeftReducer === An operator which reduces to the sub-scopes of the leftmost sub-scope of the current scope. === 2.2 !MergingReducer === An operator which reduces to the sub-scopes of all sub-scopes of the current scope. === 2.3 !RightChildReducer === Merges all sub-scopes generated by successively selecting sub-scopes of the remaining part. === 2.4 !RightReducer === An operator which reduces to the sub-scopes of the rightmost sub-scope of the current scope. ---- == References == * Wagner, S. and Affenzeller, M. 2005. SexualGA: Gender-Specific Selection for Genetic Algorithms. Proceedings of the 9th World Multi-Conference on Systemics, Cybernetics and Informatics (WMSCI), pp. 76-81.