148
X-Machines for Agent-Based Modeling: FLAME Perspectives
{
for(l=0;l {
parent.output[l]=temp_good_strategies.array[0].output[l];
}
parent.score=temp_good_strategies.array[0].score;
}
if((start_ptr>=temp_cum_fitness.array[j].score)&&
(start_ptr<=temp_cum_fitness.array[j+1].score))
{
for(l=0;l {
parent.output[l]=temp_good_strategies.array[j].output[l];
}
parent.score=temp_good_strategies.array[j].score;
}
}
//performing crossover
do_cross=(double)rand()/(double)RAND_MAX;
if(do_cross<=CROSSOVER_RATE)
{
crossover_point=rand()%LENGTH;
for(i=0;i {
childOne.output[i]=CURRENT_STRATEGY.output[i];
childTwo.output[i]=parent.output[i];
}
for(i=crossover_point;i {
childOne.output[i]=parent.output[i];
childTwo.output[i]=CURRENT_STRATEGY.output[i];
}
newchildOne=0;
newchildTwo=0;
for(i=0;i {
if(compare_arrays(&childOne.output,
&FIRM_STRATEGY_MAP[i].output)==0)
{
newchildOne=1;
}
if(compare_arrays(&childTwo.output,
&FIRM_STRATEGY_MAP[i].output)==0)
{
newchildTwo=1;
}
}
//produce offspring through crossover & mutation
//replace lowest fitness with new offsprings
if(newchildOne==0)
{
for(i=0;i {
lowest=FIRM_STRATEGY_MAP[0].score;
Précédent

- 177/329

Suivant