[Avida-SVN] r2378 - development/source/main
barrick at myxo.css.msu.edu
barrick at myxo.css.msu.edu
Mon Feb 25 13:22:42 PST 2008
Author: barrick
Date: 2008-02-25 16:22:42 -0500 (Mon, 25 Feb 2008)
New Revision: 2378
Modified:
development/source/main/cEnvironment.cc
development/source/main/cPopulation.cc
development/source/main/cStats.cc
development/source/main/cStats.h
Log:
Added some brackets in a switch statement to make compilers happy.
Extra stats for PrintCompetitionData.
Modified: development/source/main/cEnvironment.cc
===================================================================
--- development/source/main/cEnvironment.cc 2008-02-25 21:05:39 UTC (rev 2377)
+++ development/source/main/cEnvironment.cc 2008-02-25 21:22:42 UTC (rev 2378)
@@ -1036,20 +1036,24 @@
result.AddEnergy(bonus);
break;
case nReaction::PROCTYPE_ENZYME: //@JEB
+ {
const int res_id = in_resource->GetID();
assert(cur_process->GetMaxFraction() != 0);
assert(resource_count[res_id] != 0);
double reward = cur_process->GetValue() * resource_count[res_id] / (resource_count[res_id] + cur_process->GetMaxFraction());
result.AddBonus( reward , reaction_id);
break;
+ }
case nReaction::PROCTYPE_EXP: //@JEB
+ {
// Cumulative rewards are Value * integral (exp (-MaxFraction * TaskCount))
// Evaluate to get stepwise amount to add per task executed.
assert(task_count >= 1);
const double decay = cur_process->GetMaxFraction();
const double value = cur_process->GetValue();
result.AddBonus( value * (1.0 / decay) * ( exp((task_count-1) * decay) - exp(task_count * decay)), reaction_id );
- break;
+ break;
+ }
default:
assert(false); // Should not get here!
Modified: development/source/main/cPopulation.cc
===================================================================
--- development/source/main/cPopulation.cc 2008-02-25 21:05:39 UTC (rev 2377)
+++ development/source/main/cPopulation.cc 2008-02-25 21:22:42 UTC (rev 2378)
@@ -3799,7 +3799,7 @@
// copy stats to cStats, so that these can be remembered and printed
m_world->GetStats().SetCompetitionTrialFitnesses(avg_trial_fitnesses);
- m_world->GetStats().SetCompetitionFitness(average_fitness);
+ m_world->GetStats().SetCompetitionFitnesses(average_fitness, lowest_fitness, highest_fitness, average_fitness_copied, lowest_fitness_copied, highest_fitness_copied);
m_world->GetStats().SetCompetitionOrgsReplicated(different_orgs_copied);
NewTrial();
Modified: development/source/main/cStats.cc
===================================================================
--- development/source/main/cStats.cc 2008-02-25 21:05:39 UTC (rev 2377)
+++ development/source/main/cStats.cc 2008-02-25 21:22:42 UTC (rev 2378)
@@ -119,6 +119,11 @@
, num_own_used(0)
, sense_size(0)
, avg_competition_fitness(0)
+ , min_competition_fitness(0)
+ , max_competition_fitness(0)
+ , avg_competition_copied_fitness(0)
+ , min_competition_copied_fitness(0)
+ , max_competition_copied_fitness(0)
, num_orgs_replicated(0)
, m_spec_total(0)
, m_spec_num(0)
@@ -1138,7 +1143,12 @@
df.WriteComment( "results of the current competitions" );
df.Write( GetUpdate(), "update" );
- df.Write( avg_competition_fitness, "overall competition fitness" );
+ df.Write( avg_competition_fitness, "average competition fitness" );
+ df.Write( min_competition_fitness, "min competition fitness" );
+ df.Write( max_competition_fitness, "max competition fitness" );
+ df.Write( avg_competition_copied_fitness, "average copied fitness" );
+ df.Write( min_competition_copied_fitness, "min copied fitness" );
+ df.Write( max_competition_copied_fitness, "max copied fitness" );
df.Write( num_orgs_replicated, "number of organisms copied" );
// Only print trial info if there were multiple trials.
Modified: development/source/main/cStats.h
===================================================================
--- development/source/main/cStats.h 2008-02-25 21:05:39 UTC (rev 2377)
+++ development/source/main/cStats.h 2008-02-25 21:22:42 UTC (rev 2378)
@@ -256,6 +256,11 @@
// Stats for competitions
tArray<double> avg_trial_fitnesses;
double avg_competition_fitness;
+ double min_competition_fitness;
+ double max_competition_fitness;
+ double avg_competition_copied_fitness;
+ double min_competition_copied_fitness;
+ double max_competition_copied_fitness;
int num_orgs_replicated;
tArray<int> numAsleep;
@@ -507,7 +512,9 @@
void SetResourceName(int id, const cString & name) { resource_names[id] = name; }
void SetCompetitionTrialFitnesses(tArray<double> _in) { avg_trial_fitnesses = _in; }
- void SetCompetitionFitness(double _in) { avg_competition_fitness = _in; }
+ void SetCompetitionFitnesses(double _in_avg, double _in_min, double _in_max, double _in_cp_avg, double _in_cp_min, double _in_cp_max)
+ { avg_competition_fitness = _in_avg; min_competition_fitness = _in_min; max_competition_fitness = _in_max;
+ avg_competition_copied_fitness = _in_cp_avg; min_competition_copied_fitness = _in_cp_min; max_competition_copied_fitness = _in_cp_max; }
void SetCompetitionOrgsReplicated(int _in) { num_orgs_replicated = _in; }
//market info
More information about the Avida-cvs
mailing list