четверг, 8 мая 2008 г.

Норма по популяции

В процессе эволюции по эпохам происходит сближение геномов к некоторому оптимальному. Следующая норма показывает степень разброса геномов в популяции.

Норму расчитываем как среднее от разницы между максимальным и минимальным значением каждого гена всех геномов в популяции.

// Код на C

double inline pop_norm(double *pop,
int pop_cnt,
int gen_len)
{
double res = 0 ;
double mn, mx ;
double *p ;

for( i=0 ; i<gen_len ; i++ )
{
p = pop + i ;
mn = 1 ;
mx = 0 ;
for( j=0 ; j<pop_cnt ; j++,p+=gen_len )
{
if(*p > mx) mx = *p ;
if(*p < mn) mn = *p ;
}
res += mx - mn ;
}

return res/gen_len ;
}