This page describes the evolutionary algorithm provided by EvoAl. Most information can be found on this page, while some special topics, such as grammatical evolution, or model-driven optimisation are documented in separate sub-pages.
Mapping domain data to the EA
The evolutionary-algorithm
configuration allows mapping domain data to the EA.
This is done using the genotype
property for which EvoAl offers different
implementations depending on the concrete problem data. Which combinations to
use depends on the domain data and the existing constraints. The base idea of
genotypes is depicted in the following diagram:
classDiagram
Genotype *-- "1..*" Chromosome
Chromosome *-- "1..*" Gene
As mentioned, Evoal offers different implementations of genotypes, chromosomes, and genes. The following diagram gives an overview of some of the existing chromosomes and genes.
classDiagram
class Genotype
class vGenotype ["vector-genotype"]
class Chromosome ["chromosome"]
class Gene ["gene"]
class BitChromosome ["bit-chromosome"]
class GrayChromosome ["gray-chromosome"]
class DoubleChromosome ["double-chromosome"]
class IntegerChromosome ["integer-chromosome"]
vGenotype --|> Genotype
vGenotype *-- Chromosome : chromosomes
Chromosome *-- Gene : genes
BitChromosome --|> Chromosome
BitChromosome : +int scale
GrayChromosome --|> BitChromosome
DoubleChromosome --|> Chromosome
IntegerChromosome --|> Chromosome
Gene : +data gene
The most commonly used and most simple genotype version is the vector-genotype
.
de.evoal.core.ea.vector-genotype
The basic idea of this genotype is that the domain data consists of different values that are unstructured. Every single data item will be mapped to a gene depending on the type and requirements.
de.evoal.core.ea.bit-chromosome
Maps integer- and real-valued data to a bit representation. In this case, each bit of the value corresponds to a gene. Real-valued data is represented in a fixed-point precision since the IEEE-754 representation is not really useful for this purpose
de.evoal.core.ea.gray-chromosome
A special version of a bit encoding where the data is encoded using the gray code. This leads to different mutation behaviour.
de.evoal.core.ea.double-chromosome
In this chromosome, a gene corresponds to a single double value.
de.evoal.core.ea.integer-chromosome
In this chromosome, a gene corresponds to a single integer value.