GA 中的精英主义:我是否需要为该步骤应用生成器运算符
Elistism in GA: Do I need apply generator operator for that step
我正在使用唯物论来维持 parent 的 \tau 比例。我感到困惑的是,在从 parent 复制 \tau 比例个体后,用于下一代。我需要为这些人应用生成运算符(交叉+变异)吗?有关更多详细信息,我展示了两种算法。对于 require "overlap elitism/overlap selection with pair-wise tournament replacement"
哪个是正确的
算法一:
P=initial_individual
Fitness_raw=evaluate_raw_fitness(P)
Fitness_Adjust=evaluate_adjust_fitness(Fitness_raw,P) //adjust by Hamming distance
While(t<300)
P_old=P;
Tmp_P=Selection_by_Pair_wise(P, Fitness_Adjust)
Tmp_P=cross_over(Tmp_P)
P=mutation(tmp_P)
//Copy 50% top from P_old ---without mutation and crossover
P=[P_old(1:N/2) P(N/2 N)]
Fitness_raw=evaluate_raw_fitness(P)
Fitness_Adjust=evaluate_adjust_fitness(Fitness_raw,P) //adjust by Hamming distance
End
即变异步骤后的P由原始P在第i代构建并生成操作输出。这样对吗?
算法2:
P=initial_individual
Fitness_raw=evaluate_raw_fitness(P)
Fitness_Adjust=evaluate_adjust_fitness(Fitness_raw,P) //adjust by Hamming distance
While(t<300)
P_old=P;
Tmp_P=Selection_by_Pair_wise(P, Fitness_Adjust)
Tmp_P =[P_old(1:N/2) Tmp_P(N/2 N)]
Tmp_P=cross_over(Tmp_P)
P=mutation(tmp_P)
//Copy 50% top from P_old ---without mutation and crossover
Fitness_raw=evaluate_raw_fitness(P)
Fitness_Adjust=evaluate_adjust_fitness(Fitness_raw,P) //adjust by Hamming distance
End
这意味着它将复制 tau=50% 顶部,其余 50% 的人口被 pair-wise 取代。之后,我们在 Tmp_P 中应用 cross_over 和变异。请注意,对于这两种算法,50% top 由 raw_fitness 选择,50% last 由 adjust_fitness 选择。
精英主义意味着采取明确的措施来将优秀的个体从当代留到下一代。因此,不会发生退化。您的第一个算法保证将当前种群中最好的 50% 的个体保留给下一代。第二种算法没有任何保证。结果,可能出现下一代最好的个体甚至比当代最差的个体还差的情况,明显退化。总而言之,您的第一个算法(而不是第二个)实现了精英主义。
我正在使用唯物论来维持 parent 的 \tau 比例。我感到困惑的是,在从 parent 复制 \tau 比例个体后,用于下一代。我需要为这些人应用生成运算符(交叉+变异)吗?有关更多详细信息,我展示了两种算法。对于 require "overlap elitism/overlap selection with pair-wise tournament replacement"
哪个是正确的算法一:
P=initial_individual
Fitness_raw=evaluate_raw_fitness(P)
Fitness_Adjust=evaluate_adjust_fitness(Fitness_raw,P) //adjust by Hamming distance
While(t<300)
P_old=P;
Tmp_P=Selection_by_Pair_wise(P, Fitness_Adjust)
Tmp_P=cross_over(Tmp_P)
P=mutation(tmp_P)
//Copy 50% top from P_old ---without mutation and crossover
P=[P_old(1:N/2) P(N/2 N)]
Fitness_raw=evaluate_raw_fitness(P)
Fitness_Adjust=evaluate_adjust_fitness(Fitness_raw,P) //adjust by Hamming distance
End
即变异步骤后的P由原始P在第i代构建并生成操作输出。这样对吗? 算法2:
P=initial_individual
Fitness_raw=evaluate_raw_fitness(P)
Fitness_Adjust=evaluate_adjust_fitness(Fitness_raw,P) //adjust by Hamming distance
While(t<300)
P_old=P;
Tmp_P=Selection_by_Pair_wise(P, Fitness_Adjust)
Tmp_P =[P_old(1:N/2) Tmp_P(N/2 N)]
Tmp_P=cross_over(Tmp_P)
P=mutation(tmp_P)
//Copy 50% top from P_old ---without mutation and crossover
Fitness_raw=evaluate_raw_fitness(P)
Fitness_Adjust=evaluate_adjust_fitness(Fitness_raw,P) //adjust by Hamming distance
End
这意味着它将复制 tau=50% 顶部,其余 50% 的人口被 pair-wise 取代。之后,我们在 Tmp_P 中应用 cross_over 和变异。请注意,对于这两种算法,50% top 由 raw_fitness 选择,50% last 由 adjust_fitness 选择。
精英主义意味着采取明确的措施来将优秀的个体从当代留到下一代。因此,不会发生退化。您的第一个算法保证将当前种群中最好的 50% 的个体保留给下一代。第二种算法没有任何保证。结果,可能出现下一代最好的个体甚至比当代最差的个体还差的情况,明显退化。总而言之,您的第一个算法(而不是第二个)实现了精英主义。