Free cookie consent management tool by TermsFeed Policy Generator
wiki:Manipulators

Version 2 (modified by mkofler, 14 years ago) (diff)

Updated manipulator descriptions

Manipulators

Manipulators are HeuristicLab 3.3 operators that implement the IManipulator interface. Manipulators are specific for a particular solution encoding.


1. Manipulators for BinaryVectorEncoding

Common Operator Parameters: The following paramters are present for all Manipulators that can be applied solutions encoded as binary vectors:

Parameter Description
BinaryVector The vector which should be manipulated.
Random The pseudo random number generator which should be used for stochastic manipulation operators.

1.1 SinglePositionBitflipManipulator

Flips exactly one bit of a binary vector. It is implemented as described in (Michalewicz 1999).

1.2 SomePositionBitflipManipulator

Flips some bits of a binary vector, each position is flipped with a probability of pm. It is implemented as described in (Eiben and Smith 2003, p. 43).

Additional Operator Parameters:

Parameter Description
MutationProbability The mutation probability for each position (Default: 0.2)

2. Manipulators for IntegerVectorEncoding

2.1 UniformOnePositionManipulator

Uniformly distributed change of a single position of an integer vector. It is implemented as described in (Michalewicz 1999).

Operator Parameters:

Parameter Description
IntegerVector The integer vector which should be manipulated.
Maximum Maximum of the sampling range for the vector element (excluded)
Minimum Minimum of the sampling range for the vector element (included)
Random The pseudo random number generator which should be used for stochastic manipulation operators.

3. Manipulators for PermuationEncoding

Common Operator Parameters: The following paramters are present for all Manipulators that can be applied solutions encoded as permutations:

Parameter Description
Permutation The permutation which should be manipulated.
Random The pseudo random number generator which should be used for stochastic manipulation operators.

3.1 InsertionManipulator

An operator which moves randomly one element to another position in the permutation (Insertion is a special case of Translocation). It is implemented as described in (Fogel 1988).

3.2 InversionManipulator

An operator which inverts a randomly chosen part of a permutation. It is implemented as described in (Eiben and Smith 2003).

3.3 MultiPermutationManipulator

Randomly selects and applies one of its manipulators every time it is called.

Additional Operator Parameters:

Parameter Description
0-6 7 mutation operators
Probabilities The array of relative probabilities for each operator (Default: [1,1,1,1,1,1,1])

3.4 ScrambleManipulator

An operator which manipulates a permutation array by randomly scrambling the elements in a randomly chosen interval. It is implemented as described in (Syswerda 1991).

3.5 Swap2Manipulator

An operator which manipulates a permutation array by swapping to randomly chosen elements. It is implemented as described in (Eiben and Smith 2003).

3.6 Swap3Manipuator

An operator which manipulates a permutation array by swaping three randomly chosen elements. It is implemented such that first 3 positions are randomly chosen in the interval [0;N) with N = length of the permutation with all positions being distinct from each other. Then position 1 is put in place of position 3, position 2 is put in place of position 1 and position 3 is put in place of position 2.

3.7 TranslocationInversionManipulator

An operator which inverts a randomly chosen part of a permutation and inserts it at a random position. It is implemented as described in (Fogel 1993).

3.8 TranslocationManipulator

An operator which Manipulates a permutation array by moving a randomly chosen interval of elements to another (randomly chosen) position in the array. It is implemented as described in (Michalewicz 1992).

4. Manipulators for RealvectorEncoding

Common Operator Parameters: The following paramters are present for all Manipulators that can be applied solutions encoded as real vectors:

Parameter Description
Bounds The lower and upper bounds of the real vector.
Random The pseudo random number generator which should be used for stochastic manipulation operators.
RealVector The vector which should be manipulated.

4.1 BreederGeneticAlgorithmManipulator

It is implemented as described by (Mühlenbein and Schlierkamp-Voosen 1993).

Additional Operator Parameters:

Parameter Description
SearchIntervalFactor The factor determining the size of the search interval, that will be added/removed to/from the allele selected for manipulation. E.g. a value of 0.1 means 10% of the range will be maximally added/removed. (Default: 0.1)

4.2 MichalewiczNonUniformAllPositionsManipulator

It is implemented as described in (Michalewicz 1999).

Additional Operator Parameters:

Parameter Description
IterationDependency Specifies the degree of dependency on the number of iterations. A value of 0 means no dependency and the higher the value the stronger the progress towards maximum iterations will be taken into account by sampling closer around the current position. Value must be >= 0. (Default: 5)
Iterations Current iteration of the algorithm
MaximumIterations Maximum number of iterations

4.3 MichalewiczNonUniformOnePositionManipulator

It is implemented as described in (Michalewicz 1999).

Additional Operator Parameters:

Parameter Description
IterationDependency Specifies the degree of dependency on the number of iterations. A value of 0 means no dependency and the higher the value the stronger the progress towards maximum iterations will be taken into account by sampling closer around the current position. Value must be >= 0. (Default: 5)
Iterations Current iteration of the algorithm
MaximumIterations Maximum number of iterations

4.4 MultiRealVectorManipulator

Randomly selects and applies one of its manipulators every time it is called.

Additional Operator Parameters:

Parameter Description
0-6 7 mutation operators
Probabilities The array of relative probabilities for each operator (Default: [1,1,1,1,1,1,1])

4.5 NormalAllPositionsManipulator

This manipulation operator adds a value sigma_i * N(0,1) to the current value in each position i. The values for sigma_i are taken from the strategy vector, if there are less elements in the strategy vector than positions, then the strategy vector is cycled. It is implemented as described in (Beyer and Schwefel 2002).

Additional Operator Parameters:

Parameter Description
StrategyParameter The vector containing the endogenous strategy parameters.

4.6 PolynomialAllPositionManipulator

The polynomial manipulation is implemented as described in (Deb and Goyal 1996). In this operator it is performed on all positions of the real vector.

Additional Operator Parameters:

Parameter Description
Contiguity Specifies whether the manipulation should produce far stretching (small value) or close (large value) manipulations with higher probability. Valid values must be greater or equal to 0. (Default: 2)
MaximumManipulation Specifies the maximum value that should be added or subtracted by the manipulation. If this value is set to 0 no mutation will be performed. (Default: 1

4.7 PolynomialOnePositionManipulator

The polynomial manipulation is implemented as described in (Deb and Goyal 1996). In this operator it is performed on a single randomly chosen position of the real vector.

Additional Operator Parameters:

Parameter Description
Contiguity Specifies whether the manipulation should produce far stretching (small value) or close (large value) manipulations with higher probability. Valid values must be greater or equal to 0. (Default: 2)
MaximumManipulation Specifies the maximum value that should be added or subtracted by the manipulation. If this value is set to 0 no mutation will be performed. (Default: 1

4.8 UniformOnePositionManipulator

Changes a single position in the vector by sampling uniformly from the interval [Minimum_i, Maximum_i) in dimension i. It is implemented as described in (Michalewicz 1999).

5. Manipulators for SymbolicExpressionTreeEncoding

Common Operator Parameters: The following paramters are present for all Manipulators that can be applied solutions encoded as symbolic expression trees:

Parameter Description
MaxTreeHeight The maximal height of the symbolic expression tree (a tree with one node has height = 0).
MaxTreeSize The maximal size (number of nodes) of the symbolic expression tree.
Random The pseudo random number generator which should be used for stochastic crossover operators.
SymbolicExpressionGrammar The grammar that defines the allowed symbols and syntax of the symbolic expression trees.
SymbolicExpressionTree The symbolic expression tree on which the operator should be applied.

5.1 ArgumentCreater

Manipulates a symbolic expression by creating a new argument within one function-defining branch.

Additional Operator Parameters:

Parameter Description
FailedManipulationEvents The number of failed manipulation events. (Default: 0)
MaxFunctionArguments The maximal allowed number of arguments of a newly created function.
MaxFunctionDefiningBranches The maximal allowed number of function defining branches.

5.2 ArgumentDeleter

Manipulates a symbolic expression by deleting an argument from an existing function defining branch.

Additional Operator Parameters:

Parameter Description
FailedManipulationEvents The number of failed manipulation events. (Default: 0)
MaxFunctionArguments The maximal allowed number of arguments of a newly created function.
MaxFunctionDefiningBranches The maximal allowed number of function defining branches.

5.3 ArgumentDuplicater

Manipulates a symbolic expression by duplicating an existing argument node of a function-defining branch.

Additional Operator Parameters:

Parameter Description
FailedManipulationEvents The number of failed manipulation events. (Default: 0)
MaxFunctionArguments The maximal allowed number of arguments of a newly created function.
MaxFunctionDefiningBranches The maximal allowed number of function defining branches.

5.4 ChangeNodeTypeManipulation

Selects a random tree node and changes the symbol size.

Additional Operator Parameters:

Parameter Description
FailedManipulationEvents The number of failed manipulation events. (Default: 0)

5.5 FullTreeShaker

Manipulates all nodes that have local parameters.

Additional Operator Parameters:

Parameter Description
FailedManipulationEvents The number of failed manipulation events. (Default: 0)

5.6 MultiSymbolicExpressionTreeArchitectureManipulator

Randomly selects and applies one of its architecture manipulators every time it is called.

Additional Operator Parameters:

Parameter Description
0-5 6 mutation operators
MaxFunctionArguments The maximal allowed number of arguments of a newly created function.
MaxFunctionDefiningBranches The maximal allowed number of function defining branches.
Probabilities The array of relative probabilities for each operator (Default: [1,1,1,1,1,1])

5.7 MultiSymbolicExpressionTreeManipulator

Randomly selects and applies one of its manipulators every time it is called.

Additional Operator Parameters:

Parameter Description
0-2 3 mutation operators
Probabilities The array of relative probabilities for each operator (Default: [1,1,1])

5.8 OnePointShaker

Selects a random node with local parameters and manipulates the selected node.

Additional Operator Parameters:

Parameter Description
FailedManipulationEvents The number of failed manipulation events. (Default: 0)

5.9 SubroutineCreater

Manipulates a symbolic expression by adding one new function-defining branch containing a proportion of a preexisting branch and by creating a reference to the new branch.

Additional Operator Parameters:

Parameter Description
FailedManipulationEvents The number of failed manipulation events. (Default: 0)
MaxFunctionArguments The maximal allowed number of arguments of a newly created function.
MaxFunctionDefiningBranches The maximal allowed number of function defining branches.

5.10 SubroutineDeleter

Manipulates a symbolic expression by deleting a preexisting function-defining branch.

Additional Operator Parameters:

Parameter Description
FailedManipulationEvents The number of failed manipulation events. (Default: 0)
MaxFunctionArguments The maximal allowed number of arguments of a newly created function.
MaxFunctionDefiningBranches The maximal allowed number of function defining branches.

5.11 SubroutineDuplicater

Manipulates a symbolic expression by duplicating a preexisting function-defining branch.

Additional Operator Parameters:

Parameter Description
FailedManipulationEvents The number of failed manipulation events. (Default: 0)
MaxFunctionArguments The maximal allowed number of arguments of a newly created function.
MaxFunctionDefiningBranches The maximal allowed number of function defining branches.

References

  • Beyer, H.-G. and Schwefel, H.-P. 2002. Evolution Strategies - A Comprehensive Introduction Natural Computing, 1, pp. 3-52.
  • Deb, K. & Goyal, M. A. 1996. Combined Genetic Adaptive Search (GeneAS) for Engineering Design Computer Science and Informatics, 26, pp. 30-45.
  • Eiben, A.E. and Smith, J.E. 2003. Introduction to Evolutionary Computation. Natural Computing Series. Springer-Verlag Berlin Heidelberg.
  • Fogel, D.B. 1988. An Evolutionary Approach to the Traveling Salesman Problem, Biological Cybernetics, 60, pp. 139-144.
  • Michalewicz, Z. 1999. Genetic Algorithms + Data Structures = Evolution Programs. Third, Revised and Extended Edition, Spring-Verlag Berlin Heidelberg.
  • Mühlenbein, H. and Schlierkamp-Voosen, D. 1993. Predictive Models for the Breeder Genetic Algorithm - I. Continuous Parameter Optimization. Evolutionary Computation, 1(1), pp. 25-49.
  • Syswerda, G. 1991. Schedule Optimization Using Genetic Algorithms. In Davis, L. (Ed.) Handbook of Genetic Algorithms, Van Nostrand Reinhold, New York, pp 332-349.