Does the scale of the fitness scores matter for multi-objective optimization?

111 views
Skip to first unread message

Randy Olson

unread,
Dec 23, 2015, 10:04:30 AM12/23/15
to deap-users
Hello,

I have begun expanding my DEAP implementation to include multi-objective optimization. Specifically, I've been exploring the selNSGA2 function. I've been trying to decide on the proper fitness scores to use for the fitness axes, and that has led me to wonder: Does the scale of the fitness scores matter for multi-objective optimization?

For example, let's say one of my fitness axes ranges from 0.0 to 1.0, and the other fitness axis ranges from 1 to 1000. Will multi-objective optimization favor optimizing on the [1, 1000] axis because there's more to "gain" there, or is there a more advanced implementation going on behind the scenes?

Note: The axis with the broader range, [1, 1000], doesn't actually have a meaningful maximum value. Otherwise I would be able to scale both axes to the same range.

Thank you, and Happy Holidays!

Randy

Marc-André Gardner

unread,
Dec 24, 2015, 2:05:32 PM12/24/15
to deap-users
Hi Randy,

I will not go into deep details about that, since there's a lot of very good tutorial about it on the web, better than I could explain, but basically, NSGA-II makes use of a (roughly) two steps selection :
1) The first Pareto front can be fitted in the selected population (e.g. the number of individuals in the Pareto front is not greater than available space in the selected population), just select all the individuals in this Pareto front. Then go to the next Pareto front and repeat this step until...
2) a Pareto front is too large for the remaining space --in other words when you must "split" the front. In this case, NSGA-II uses another metric named "crowding distance" to select the most diverse individuals in this front.

The first step is not affected by the objectives scales. Indeed, the concept of Pareto dominance is defined independently of any distance. However, the second step will be. Now, I'm not sure why, in the current DEAP implementation, we use the fitness values and not the weighted ones in assignCrowdingDist, I should talk with the other devs about that. In any way, I'm lead to think that it implies that you must scale yourself your objectives before putting it into fitness.values if you want to achieve a real scaling.

Have fun with DEAP and happy Holidays!

Marc-André

Susumu Mashimo

unread,
May 18, 2022, 1:15:15 PM5/18/22
to deap-users
Hello Marc-André,

I came up with the same question as Randy and found this thread.
I'm using selNSGA2 and trying to understand how DEAP actually uses the magnitude of weights to vary the importance of each objective.

I was thinking NSGA2 in DEAP uses the value of weights for the crowding distance calculation, as it is implied in the document below.
An example of where the weights can be useful is in the crowding distance sort made in the NSGA-II selection algorithm.

After reading the source code of selNSGA2 in DEAP, I found that the weights and weighted fitness values are not used in assignCrowdingDist as you pointed out in 2015.
The weighted values of fitness seem to be used in the dominates function in the Fitness class.
However, the magnitude of weights does not seem to have anything to do with results because only values weighted by the same weight are compared in the function.

Could you please explain why the crowding distance calculation does not use weights?
I would also appreciate it if you could give brief description of how the NSGA2 implementation in DEAP uses the magnitude of weights (not a sign)?

Best Regards,
Susumu

2015年12月25日金曜日 4:05:32 UTC+9 marc.andr...@gmail.com:
Reply all
Reply to author
Forward
0 new messages