Evolutionary Algorithms

This page only includes some selected algorithms used in nextnanoevo tutorials and their key parameters. For a complete list of available algorithms and their customization please refer to pymoo documentation.

Genetic Algorithm (GA)

GA is a single-objective evolutionary algorithm that mimics the process of natural selection. It uses techniques such as selection, crossover, and mutation to evolve a population of candidate solutions towards an optimal solution. Some of the key default parameters used in pymoo are:

Parameter Description

Default value

crossover type

SBX (simulated binary crossover)

crossover probability - float, [0,1]

0.5

distribution index for sbx crossover - float, [0,100]

15

mutation type

PM (polynomial mutation)

mutation probability - float, [0,1]

0.9

distribution index for polynomial mutation - float, [0,100]

20

Non-dominated Sorting Genetic Algorithm (NSGA-II)

NSGA-II is a popular multi-objective evolutionary algorithm that uses non-dominated sorting and crowding distance to maintain diversity in the population. Its core ideas are similar to GA, but it is designed to handle multiple objectives simultaneously. Some of the key default parameters used in pymoo are:

Parameter Description

Default value

crossover type

SBX (simulated binary crossover)

crossover probability - float, [0,1]

0.9

distribution index for sbx crossover - float, [0,100]

15

mutation type

PM (polynomial mutation)

mutation probability - float, [0,1]

0.9

distribution index for polynomial mutation - float, [0,100]

20