Agents in Economic Markets and Games
145
FIRM_STRATEGY_MAP[i].score,0);
}
}
//output all chosen strategies
for(i=0;i
{
for(j=0;j
{
printf("%d,", temp_good_strategies.array[i].output[j]);
}
printf(" score %f\n",temp_good_strategies.array[i].score);
}
//choosing one of these strategies to play
sum=0.0;
sum_prob=0.0;
if(temp_good_strategies.size>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(l=0;l
{
CURRENT_STRATEGY.output[l]=temp_good_strategies.array[0].output[l];
}
CURRENT_STRATEGY.score=temp_good_strategies.array[0].score;
for(j=0;j
{
if((start_ptr>=temp_cum_fitness.array[j].score)&&
(start_ptr<=temp_cum_fitness.array[j+1].score))
{
for(l=0;l
{
CURRENT_STRATEGY.output[l]=temp_good_strategies.array[j].output[l];
}
CURRENT_STRATEGY.score=temp_good_strategies.array[j].score;
}//end if
}//end for
}//end if
return 0;
}
int Firm_play()
{
145
FIRM_STRATEGY_MAP[i].score,0);
}
}
//output all chosen strategies
for(i=0;i
for(j=0;j
printf("%d,", temp_good_strategies.array[i].output[j]);
}
printf(" score %f\n",temp_good_strategies.array[i].score);
}
//choosing one of these strategies to play
sum=0.0;
sum_prob=0.0;
if(temp_good_strategies.size>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(l=0;l
CURRENT_STRATEGY.output[l]=temp_good_strategies.array[0].output[l];
}
CURRENT_STRATEGY.score=temp_good_strategies.array[0].score;
for(j=0;j
if((start_ptr>=temp_cum_fitness.array[j].score)&&
(start_ptr<=temp_cum_fitness.array[j+1].score))
{
for(l=0;l
CURRENT_STRATEGY.output[l]=temp_good_strategies.array[j].output[l];
}
CURRENT_STRATEGY.score=temp_good_strategies.array[j].score;
}//end if
}//end for
}//end if
return 0;
}
int Firm_play()
{
