Agents in Economic Markets and Games
147
strategy_array temp_cum_fitness;
init_strategy_array(&temp_cum_fitness);
int j,l;
double sum=0.0;
double sum_prob=0.0;
double start_ptr;
double do_cross=0.0;
double do_mutate=0.0;
int crossover_point=0;
int mutation_point=0;
int pos=0;
double lowest=0.0;
strategy childOne;
strategy childTwo;
strategy mutantChild;
init_strategy(&childOne);
init_strategy(&childTwo);
init_strategy(&mutantChild);
int newchildOne=0,newchildTwo=0;
int newmutantChild=0;
int found=0;
if(CURRENT_STRATEGY.score>=THRESHOLD)
{
//select two parents via Roulette Wheel Selection
for(i=0;i {
if(FIRM_STRATEGY_MAP[i].score>0.0)
{
//prevent choosing the same parent
if(compare_arrays(&FIRM_STRATEGY_MAP[i].output,
&CURRENT_STRATEGY.output)==1)//false
{
add_strategy(&temp_good_strategies,
&FIRM_STRATEGY_MAP[i].output[0],
FIRM_STRATEGY_MAP[i].score,0);
}
}
}
for(i=0;i {
sum+=temp_good_strategies.array[i].score;//sum of fitness
}
for(i=0;i {
sum_prob+=(temp_good_strategies.array[i].score/sum); //sum of prob
add_strategy(&temp_cum_fitness,
temp_good_strategies.array[i].output,sum_prob,0);
}
start_ptr=(double)rand()/(double)RAND_MAX;
for(j=0;j {
if(start_ptr
Précédent

- 176/329

Suivant