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_crossover — Function
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_crossover — Function
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_crossover — Function
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