pymoo
pymoo copied to clipboard
Introduce normalization of F in NSGA3 extreme point calculation
As the extreme point calculation is happening as a weighted and aggregated optimization (max(__F * weights)), I think it would be better to normalize __F beforehand. Otherwise, the resulting extreme points could have a bias towards objective functions (F) with higher magnitude (in case the objective values of different objective functions are highly unbalanced).
Thanks for your work and PR. Have you benchmark this change? The NSGA3 implementation follows the original C++ code of the paper. Thus, I want to keep it as it is by default. However, if this performs better and is benchmark, introducing this as a parameter might be a good idea.
Can you post some benchmark results here with this change?