Non-dominated Sorting Genetic Algorithm II (NSGA-II) is a multi-objective genetic algorithm, proposed by Deb et al., in 2002. It is an extension and improvement of NSGA, which is proposed earlier by Srinivas and Deb, in 1995.
In the structure of NSGA-II, in addition to genetic operators, crossover and mutation, two specialized multi-objective operators and mechanisms are defined and utilized:
- Non-dominated Sorting: the population is sorted and partitioned into fronts (F1, F2, etc.), where F1 (first front) indicates the approximated Pareto front.
- Crowding Distance: it is a mechanism of ranking among members of a front, which are dominating or dominated by each other.
These ranking mechanisms are used with genetic selection operators (usually Tournament Selection Operator), to create the population of next generation.
In this post, we are going to share with you, the MATLAB implementation of NSGA-II, as an open source project. The algorithm is implemented in a structured manner and if you are familiar with MATLAB programming language, you will find it easy, to use the codes in your research projects.
The download link of this project follows.
Implementation of NSGA-II in MATLABDownload