Evolutionary algorithms are optimization and solution-finding strategies inspired by the evolution of biological systems (e.g. evolution of species).
An initial population is defined, composed of a set of designs previously binary coded and represented by a unique code of 3200 genes that form its phenotype.
Subsequently, this population has been made to evolve by defining an interbreeding technique in a complex computational algorithm where the best adapted individuals are those that survive according to a previously defined score, and which are the most likely to propagate their genes to future generations of designs.
In order to make the similarity with the process of natural selection even more faithful, a dynamic mutation factor was incorporated. Thus, the fittest individuals (i.e., the best optical quality designs of a population) are those that passed their genetic information to the following generations, thus creating new descendants who eventually surpassed the quality of their ancestors.