NSGA-2 multi-objective genetic algorithm. Anyone could give me a "simple explanation"?

genetic-algorithm

Solution

Here's an explanation for NSGA-II

- First, it randomly initializes the population.

- Chromosomes are sorted and put into fronts based on Pareto Non dominated sets. Within a Pareto front, the chromosomes are ranked based on euclidean between solutions or I-dist (term used in NSGA-II) . Generally, solutions which are far away (not crowded) from other solutions are given a higher preference while selection. This is done in order to make a diverse solution n set and avoid a crowded solution set.

- The best N (population) chromosomes are picked from the current population and put into a mating pool

- In the mating pool, tournament selection, cross over and mating is done.

- The mating pool and current population is combined. The resulting set is sorted, and the best N chromosomes make it into the new population.

- Go to step 2, unless maximum number of generations have been reached.

- The solution set is the highest ranked Pareto non dominated set from the latest population.

Problem

I'm working on a genetic algorithm. There are two objective and each one has its own fitness values (fv1,fv2). I know how generational(SGE) and steady-state(SS) genetic algorithms works. I'm trying to understand how NSGA-2 and SPEA-2 (I'm using the implementation of the java library JCLEC) work, particularly: - what is the "external population" and how should it be sized - what's the difference with SS and SGE one-objective algorithm (a part from the fact each individual has just one fitness value) In case anyone is working with JCLEC library these are the parameters I setup: - external population: 1000 - k-value: 10 - other attributes are the same of SS and SGE (population-size:100 , crossover: MPX crossover etc..)

Original source