在遗传算法中使用确定性拥挤时有重复的父母控制权

问题描述 投票:0回答:1

这是使用确定性拥挤的伪代码:

for i from 0 to N/2
     p1, p2 = select_two_random_individual()
     c1, c2 = crossover(p1, p2)

     c1 = mutate(c1)
     c2 = mutate(c2)

     if((d(p1, c1) + d(p2, c2)) < (d(p1, c2) + d(p2, c1))
          population.add(Winner between p1 and c1)
          population.add(Winner between p2 and c2)
     Else
          population.add(Winner between p1 and c2)
          population.add(Winner between p2 and c1)

哪个d是确定两个人之间差异的函数。

问题是,如果一个人两次被选为父母,并且两次都胜过其子女,将会发生什么?我最终会在新人口中得到重复的个人吗?

genetic-algorithm
1个回答
0
投票

是的,在一个种群中有重复的个体并不少见。实际上,可以预料的是,在某个时候所有解决方案都将收敛到一个最优值,这就是总体中所有解决方案都相同的地方。这只有在过早收敛的情况下才是问题。

© www.soinside.com 2019 - 2024. All rights reserved.