rselect.cpp
来自「一个遗传算法(GA)的实现。command line 的结构。输入输出格式请见命」· C++ 代码 · 共 48 行
CPP
48 行
/*----------------------------------------------------------------------------*/
/* rselect.c: roulette wheel selection. */
/*----------------------------------------------------------------------------*/
#include "rselect.h"
//#include "sga.h"
#include "external.h"
#include "random.h"
void r_select_memory()
{
}
void r_select_free()
{
}
void r_preselect()
{
int j;
sumfitness = 0;
for(j = 0; j < popsize; j++) sumfitness += oldpop[j].fitness;
}
int r_select()
/* roulette-wheel selection */
{
extern float randomperc();
float sum, pick;
int i;
pick = randomperc();
sum = 0;
if(sumfitness != 0)
{
for(i = 0; (sum < pick) && (i < popsize); i++)
sum += (float)(oldpop[i].fitness/sumfitness);
}
else
i = rnd(1,popsize);
return(i-1);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?