Crossover

The Crossover function, also known as recombination, mimics the genetic recombination during natural evolution. It combines the genetic information(chromosomes) of the parents to create one or more new children.

Crossover Functions

GeneticAlgorithm.single_point_crossoverFunction
single_point_crossover(gene1::Union{AbstractVector, AbstractMatrix}, gene2::Union{AbstractVector, AbstractMatrix})

Recombinate two units by exchanging their genes from a random index onward.

Arguments

  • gene1: Parent unit 1.
  • gene2: Parent unit 2.

Returns

  • Two recombined child units.
source
GeneticAlgorithm.k_point_crossoverFunction
k_point_crossover(gene1::Union{AbstractVector, AbstractMatrix}, gene2::Union{AbstractVector, AbstractMatrix}, k::Integer)

Recombinate two units by exchanging their genes at k random points

Arguments

  • gene1: Parent unit 1.
  • gene2: Parent unit 2.
  • k: # of crossover points.

Returns

  • Two recombined child units.
source
GeneticAlgorithm.uniform_crossoverFunction
uniform_crossover(gene1::Union{AbstractVector, AbstractMatrix}, gene2::Union{AbstractVector, AbstractMatrix})

Recombinate two units by iterating a gene and swapping the values with a 50% chance

Arguments

  • gene1: Parent unit 1.
  • gene2: Parent unit 2.

Returns

  • Two recombined child units.
source