博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Roulette Wheel Selection
阅读量:6998 次
发布时间:2019-06-27

本文共 876 字,大约阅读时间需要 2 分钟。

轮盘法, 用于遗传算法中的selection方法。

轮盘赌算法/** 按设定的概率,随机选中一个个体* P[i]表示第i个个体被选中的概率*/int RWS(){    m = 0;    r =Random(0,1); //r为0至1的随机数    for(i=1;i<=N; i++)    {            /* 产生的随机数在m~m+P[i]间则认为选中了i             *  因此i被选中的概率是P[i]             */             m = m + P[i];             if(r<=m) return i;    }}

有N个序列,经过计算每一个的fitness, fitness[0...N-1], 他们的和记做sum, P[i]=fitness[i]/sum.

 

基本遗传算法伪代码/** Pc:交叉发生的概率* Pm:变异发生的概率* M:种群规模* G:终止进化的代数* Tf:进化产生的任何一个个体的适应度函数超过Tf,则可以终止进化过程*/初始化Pm,Pc,M,G,Tf等参数。随机产生第一代种群Pop do{       计算种群Pop中每一个体的适应度F(i)。  初始化空种群newPop  do  {    根据适应度以比例选择算法从种群Pop中选出2个个体    if ( random ( 0 , 1 ) < Pc )    {      对2个个体按交叉概率Pc执行交叉操作    }    if ( random ( 0 , 1 )  < Pm )    {      对2个个体按变异概率Pm执行变异操作    }       将2个新个体加入种群newPop中    } until ( M个子代被创建 )    用newPop取代Pop}until ( 任何染色体得分超过Tf, 或繁殖代数超过G )

转自:

转载于:https://www.cnblogs.com/gaoqichao/archive/2012/09/12/2682417.html

你可能感兴趣的文章