вторник, 6 мая 2008 г.

Скрещивание

Имеем два хороших генома и два плохих.

Последовательно движемся по генам плохих и хороших. Заполняем плохие геномы по одному из следующих правил:

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 ;
}
}

Комментариев нет: