mgo icon indicating copy to clipboard operation
mgo copied to clipboard

False definition of Non Dominated Sorting brick

Open reyman opened this issue 9 years ago • 0 comments

It seems the non dominated elitism used by NSGA2 implementation in MGO is not correct.

Actually the different front are builded using information based on the number of domination, this is another type of existing sorting, but do not correspond to the NDS or Non Dominated Sorting used by NSGA2

In NDS, at each step of the loop we take only the solution with dominated = 0 (cf the non dominated solution) to make a new front, then we remove this population selected, and then recompute a new non dominated front based on this new cutted population. etc.

Actually population are not removed, and not recomputed.

Only the last front is tested using diversity metric, this code seems correct in mgo.

Another point perhaps, it seems the NDS is realized on population + offspring on line 67

NonDominatedElitism(this)(filter(oldGeneration ++ offspring), mu)

But it's more a properties of NSGA2 than a generic properties from NDS.In the case of NSGA1, the non dominated sorting operate only on offspring population (so the NDS can be without elitism). Perhaps it can be a good idea to move this properties in another brick.

reyman avatar Mar 26 '15 11:03 reyman