Genex v0.1.4 Genex.Operators.Mutation View Source

Implementation of several population mutation methods.

Mutation takes place according to some rate. Mutation is useful for introducing novelty into the population. This ensures your solutions don't prematurely converge.

Future versions of Genex will provide the ability to define the "aggressiveness" of mutations. As of this version of Genex, mutations effect the ENTIRE chromosome.

Link to this section Summary

Functions

Perform a bit-flip mutation.

Performs a gaussian mutation.

Perform inversion mutation.

Performs Polynomial Bounded mutation.

Perform a scramble mutation.

Performs uniform integer mutation.

Link to this section Functions

Link to this function

bit_flip(chromosome, radiation)

View Source

Perform a bit-flip mutation.

This mutation performs a binary XOR on every gene in the Chromosome.

Returns Chromosome.

Parameters

  • chromosome- Chromosome to mutate.
Link to this function

gaussian(chromosome, radiation)

View Source

Performs a gaussian mutation.

This mutation generates a random number at random genes in the chromosome. The random number is from a normal distribution produced from the mean and variance of the genes in the chromosome.

Returns Chromosome.

Parameters

  • chromosome- Chromosome to mutate.
  • radiation- Aggressiveness of mutation.

Perform inversion mutation.

This mutation reverses (inverts) the genes of the Chromosome.

Returns Chromosome.

Parameters

  • chromosome- Chromosome to mutate.
  • radiation- Aggressiveness of mutation
Link to this function

polynomial_bounded(chromosome, radiation, eta, low, high)

View Source

Performs Polynomial Bounded mutation.

See NSGA-II algorithm.

Returns Chromosome.

Parameters

  • chromosome- Chromosome to mutate.
  • radiation
  • eta
  • low
  • high
Link to this function

scramble(chromosome, radiation)

View Source

Perform a scramble mutation.

This mutation shuffles the genes of the Chromosome.

Returns Chromosome.

Parameters

  • chromosome- Chromosome to mutate.
Link to this function

uniform_integer(chromosome, radiation, min, max)

View Source
uniform_integer(Genex.Chromosome.t(), float(), integer(), integer()) ::
  Genex.Chromosome.t()

Performs uniform integer mutation.

This mutation generates a random number at random genes in the chromosome.

Returns Chromosome.

Parameters

  • chromosome- Chromosome to mutate.
  • radiation- Aggressiveness of mutation.
  • min- lower bound
  • max- upper bound