neat-python icon indicating copy to clipboard operation
neat-python copied to clipboard

Multiobjective Fitness: NSGA-II

Open hugoaboud opened this issue 5 years ago • 4 comments

Hi, I've been working on an implementation of NSGA-II as a Reproduction method for NEAT, in order to allow dealing with multiple fitness values. The readme presents all the details.

A small 2D hoverboard example was designed to benchmark the NSGA-II in comparison to the DefaultReproduction method. All the details and result comparisons are described on the hoverboard readme.

hoverboard

It has shown promising results, and was built with minimal (and backwards-compatible) modifications to the original library code. I hope you find it interesting. I'll outline here the commits that modify the original lib files:

  • e70a068: This is not directly related to NSGA-II, but to this issue
  • 5e44755: Also not related to NSGA-II, allows a different config file for a loaded checkpoint, to modify evolution settings during evolution.
  • 2b1007a: nsga2 added to __init__.py and setup.py
  • 9dbd77b: explicit fitness conversion to float, in order to invoke NSGA2Fitness.__float__.
  • 1f1f645: call NSGA2Reproduction.sort() right after fitness evaluation, before best_genome evaluation.

hugoaboud avatar Jan 04 '21 05:01 hugoaboud

Coverage Status

Coverage decreased (-5.6%) to 90.53% when pulling 73618fdfb393df8b6816213547b2ade419151afc on hugoaboud:master into c2b79c88667a1798bfe33c00dd8e251ef8be41fa on CodeReclaimers:master.

coveralls avatar Jan 04 '21 05:01 coveralls

Coverage Status

Coverage decreased (-5.6%) to 90.563% when pulling 73618fdfb393df8b6816213547b2ade419151afc on hugoaboud:master into c2b79c88667a1798bfe33c00dd8e251ef8be41fa on CodeReclaimers:master.

coveralls avatar Jan 04 '21 05:01 coveralls

Thanks for the pull request, and sorry it's taken me so long to get around to commenting here. Adding some kind of support for multiple objectives is a good idea, and I'll see if I can get this integrated in the near future.

CodeReclaimers avatar May 05 '22 12:05 CodeReclaimers