遗传算法的选择和交叉操作
问题描述:
遗传算法的选择和交叉操作
今天看了下遗传算法,又看了下别人的代码,但是还是有几个地方有点糊,望会的人帮忙解答下.
比如用赌轮法做选择的时候,假如有四个种群A,B,C,D , 存活率分别是 0.1 , 0.2 , 0.3, 0.4
那么我随机四个数分别是 0.8 ,0.9,0.8,0.9
如果这样的话,种群D就被选择了四次,那子代是不是就是 四个 和D基因一样的.
交叉的时候,交叉的结果是用来代替其中一个母本,还是新增一个新的,等到下次选择的时候再筛选?
答
不是随机选择的,是有规律的选,一般是等间隔选择,例如两个相邻的个体.
如图红色是一种选择方式:1&2, 3&4, 5&6, 7&8, 9&10
蓝色也是一种选择方式:1&6, 2&7, 3&8, 4&9, 5&10
当然,也要尽量避免相同个体交叉.
是否可以解决您的问题?其实我想知道的是,如果选择的时候,如果父本被选择了多次,子代是不是应该有这个父本的多个复制