mutation_ga_binary
A function which performs binary mutation
Syntax
[Mut_Indiv, pos] = mutation_ga_binary(Indiv,param)
Arguments
- Indiv
A string.
The individual on which we will perform the mutation.
- param
a list of parameters.
"binary_length": an integer scalar, the size of the binary code.
"multi_mut": a boolean. If %T, several random bits will be flipped.
"multi_mut_nb": an integer scalar, the number of bits to be flipped. Only used when multi_mut is set to %T (default 2).
- Mut_Indiv
A string.
The mutated individual.
- pos
A vector of integers.
The positions of the mutated bits.
Description
This function performs a classical multi-bits binary mutation.
This generates the individual Mut_Indiv
by inverting bits on random positions.
By default mutation_ga_binary(Indiv)
selects randomly
an index i
between 1 and length(Indiv)
.
It then modifies the i-th character of Indiv to 1 if it was 0, or 0 if it was 1.
If "multi_mut"
is set to %T
multiple mutations may occur.
The maximal number of mutation is given by "multi_mut_nb"
.
Random number generator
mutation_ga_binary
is based
on grand
for generating the random samples.
Use grand("setsd", seed)
to change the seed
for crossover_ga_binary
.
Examples
Indiv="00010000" [Mut_Indiv, pos] = mutation_ga_binary(Indiv) // With multiple mutation param=init_param("multi_mut",%t,"multi_mut_nb",3); Indiv="00010000" [Mut_Indiv, pos] = mutation_ga_binary(Indiv,param)
See also
- mutation_ga_default — A continuous variable mutation function
- crossover_ga_binary — A crossover function for binary code
- init_ga_default — A function a initialize a population
- optim_ga — A flexible genetic algorithm
Report an issue | ||
<< init_ga_default | Utilities | mutation_ga_default >> |