Ваша самая большая проблема, связанная с евклидовым расстоянием, заключается в том, что ваши множественные цели могут не масштабироваться одинаково.Т.е., если цель A варьируется от 1 до 1000, а цель B варьируется от 0 до 1, вы предпочтете цель A. Если вы намерены использовать одну агрегированную цель, а не MOEA, который делает ранжирование по Парето, как NSGAII,обратите внимание на масштабирование объектива, а также рассмотрите удовлетворительную формулировку.
Удовлетворение - это когда вы насыщаете цель определенным достаточно хорошим значением.В Python это может выглядеть так (при условии минимизации):
a_prime = max(a, 40)
b_prime = max(b, 0.1)
aggregate_objective = a_prime / 1000 + b_prime