基于欧氏距离的适应度函数
Euclidian distance based fitness function
使用欧氏距离作为适应度函数以基于多个参数最大化是否有意义?如果不是,我应该为这样的任务使用什么样的适应度函数?
使用欧几里德距离的最大问题是您的多个 objective 可能不会以相同的方式缩放。 IE。如果 objective A 的范围是从 1 到 1000,而 objective B 的范围是从 0 到 1,你会偏爱 objective A。如果你执着于使用单个聚合 objective 而不是像 NSGAII 那样做帕累托排序的 MOEA,注意 objective 缩放,还要考虑一个令人满意的公式。
满意是指您将 objective 饱和到某个足够好的值。在 Python 中,它可能看起来像这样(假设最小化):
a_prime = max(a, 40)
b_prime = max(b, 0.1)
aggregate_objective = a_prime / 1000 + b_prime
使用欧氏距离作为适应度函数以基于多个参数最大化是否有意义?如果不是,我应该为这样的任务使用什么样的适应度函数?
使用欧几里德距离的最大问题是您的多个 objective 可能不会以相同的方式缩放。 IE。如果 objective A 的范围是从 1 到 1000,而 objective B 的范围是从 0 到 1,你会偏爱 objective A。如果你执着于使用单个聚合 objective 而不是像 NSGAII 那样做帕累托排序的 MOEA,注意 objective 缩放,还要考虑一个令人满意的公式。
满意是指您将 objective 饱和到某个足够好的值。在 Python 中,它可能看起来像这样(假设最小化):
a_prime = max(a, 40)
b_prime = max(b, 0.1)
aggregate_objective = a_prime / 1000 + b_prime