while true ; do ; ./a.out | tail -n 1 >> res2 ; done
И посмотрим среднюю избирательность к гандикапу
cat res2 | awk 'BEGIN {s=0;n=0;} {n=n+1;s=$3;} END {print(s/n);}'
-4.98539e-07
Т.е. средняя избирательность самки к гандикапу нулевая.
Но при этом даже если убрать мутации после определенного поколения то гандикап плохо отсеивается отбором — у функций нет нелинейностей которые будут наказывать за сильные выбросы.
Я удесятерил число поколений и установил гандикап в единицу — за 40 тысяч поколений он сполз только до одной десятой.
no subject
Date: 2024-03-02 12:36 am (UTC)Одна модель стоит тысячи рассуждений. Во-первых там даже не процент, а тысячная - т.е. десятая процента. (0.674819 0.000966 -0.000173)
Добавим сид рандома
#include sys/time.h // угловые скобки не принимает форматирование коммента
...
struct timeval time;
gettimeofday(&time,NULL);
srand((time.tv_sec * 1000) + (time.tv_usec / 1000));
Накопим данные
gcc main.c
while true ; do ; ./a.out | tail -n 1 >> res2 ; done
И посмотрим среднюю избирательность к гандикапу
cat res2 | awk 'BEGIN {s=0;n=0;} {n=n+1;s=$3;} END {print(s/n);}'
-4.98539e-07
Т.е. средняя избирательность самки к гандикапу нулевая.
Но при этом даже если убрать мутации после определенного поколения то гандикап плохо отсеивается отбором — у функций нет нелинейностей которые будут наказывать за сильные выбросы.
Я удесятерил число поколений и установил гандикап в единицу — за 40 тысяч поколений он сполз только до одной десятой.
0.927902 1.222864 0.155002
0.932635 0.134074 -0.091744
При желании он легко разгоняется и в сотни.