DEAP / deap

Distributed Evolutionary Algorithms in Python
http://deap.readthedocs.org/
GNU Lesser General Public License v3.0
5.69k stars 1.11k forks source link

NSGA-II: Crowding distance calculation for parameters instead of fitness vector? #513

Open caglorithm opened 3 years ago

caglorithm commented 3 years ago

Hi, I'm asking this question because I have no idea where to ask otherwise :)

I've been using the NSGA-II implementation in DEAP with great success. My problem has 6 parameters and 3 fitness values. the selection operator selNSGA2 in DEAP uses the function assignCrowdingDist that assigns a crowding distance value based on the fitness of individuals (to ensure a diverse set of fitness values). This is great and works well.

However, I'd also like to find a diverse set of parameters in my optimization. Does anyone think that it might make sense to modify assignCrowdingDist such that the selection operator promotes diverse parameters? Is my idea misguided? Any thoughts appreciated!

fmder commented 3 years ago

That entirely depends on your parameter to fitness « transformation ». If for example you have a more or less one to one relationship between parameters and fitness it most probably won’t help.

Otherwise I think the problem with that is to balance exploration. But I don’t see any reason not to try it if it makes sense for your problem.