Последовательно движемся по генам плохих и хороших. Заполняем плохие геномы по одному из следующих правил:
1) bg1(i) = gg1(i) ; bg2(i) = gg2(i) ;
2) bg2(i) = gg1(i) ; bg1(i) = gg2(i) ;
где: bg1 и bg2 - плохие геномы, gg1 и gg2 - хорошие геномы.
Выбор осуществляем по случайному.
// Код на С
void inline xver(double *b1,
double *b2,
double *g1,
double *g2,
int cnt)
{
for(;0<cnt;cnt--,b1++,b2++,g1++,g2++)
if(rand_unf > 0.5)
{
*b1 = *g1 ;
*b2 = *g2 ;
}
else
{
*b2 = *g1 ;
*b1 = *g2 ;
}
}
Комментариев нет:
Отправить комментарий