[Avida-SVN] r3016 - in development: Avida.xcodeproj source/actions source/main support/config
brysonda at myxo.css.msu.edu
brysonda at myxo.css.msu.edu
Tue Dec 9 12:32:48 PST 2008
Author: brysonda
Date: 2008-12-09 15:32:48 -0500 (Tue, 09 Dec 2008)
New Revision: 3016
Modified:
development/Avida.xcodeproj/project.pbxproj
development/source/actions/PrintActions.cc
development/source/main/cAvidaConfig.h
development/source/main/cDeme.cc
development/source/main/cEnvironment.cc
development/source/main/cEnvironment.h
development/source/main/cPhenotype.cc
development/source/main/cPhenotype.h
development/source/main/cPopulation.cc
development/source/main/cStats.cc
development/source/main/cStats.h
development/source/main/cTaskLib.h
development/source/main/cWorld.cc
development/source/main/cWorld.h
development/support/config/avida.cfg
Log:
Add better, more complete support for outputting reaction statistics.
Modified: development/Avida.xcodeproj/project.pbxproj
===================================================================
--- development/Avida.xcodeproj/project.pbxproj 2008-12-09 14:40:02 UTC (rev 3015)
+++ development/Avida.xcodeproj/project.pbxproj 2008-12-09 20:32:48 UTC (rev 3016)
@@ -34,6 +34,7 @@
56F555E70C3B402A00E2E929 /* viewer-text.cc in Sources */ = {isa = PBXBuildFile; fileRef = 56F555E40C3B402A00E2E929 /* viewer-text.cc */; };
700E2996085A1F6000CF158A /* avida in CopyFiles */ = {isa = PBXBuildFile; fileRef = DCC3164D07626CF3008F7A48 /* avida */; };
700E2B87085DE54400CF158A /* avida-viewer in CopyFiles */ = {isa = PBXBuildFile; fileRef = 700E2B83085DE50C00CF158A /* avida-viewer */; };
+ 701B5F170EEEF3030073ACB4 /* cPhenPlastGenotype.cc in Sources */ = {isa = PBXBuildFile; fileRef = B4FA259E0C5EB7600086D4B5 /* cPhenPlastGenotype.cc */; };
70211A5D0ECBD531004A293A /* cRCObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 70211A5B0ECBD531004A293A /* cRCObject.h */; };
70211A5E0ECBD531004A293A /* cRCObject.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70211A5C0ECBD531004A293A /* cRCObject.cc */; };
7023EC3A0C0A431B00362B9C /* avida.cc in Sources */ = {isa = PBXBuildFile; fileRef = DCC3109C0762539E008F7A48 /* avida.cc */; };
@@ -2127,6 +2128,7 @@
buildActionMask = 2147483647;
files = (
70DCAC9C097AF7C0002F8733 /* primitive.cc in Sources */,
+ 701B5F170EEEF3030073ACB4 /* cPhenPlastGenotype.cc in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Modified: development/source/actions/PrintActions.cc
===================================================================
--- development/source/actions/PrintActions.cc 2008-12-09 14:40:02 UTC (rev 3015)
+++ development/source/actions/PrintActions.cc 2008-12-09 20:32:48 UTC (rev 3016)
@@ -82,8 +82,10 @@
STATS_OUT_FILE(PrintTasksQualData, tasks_quality.dat );
STATS_OUT_FILE(PrintResourceData, resource.dat );
STATS_OUT_FILE(PrintReactionData, reactions.dat );
+STATS_OUT_FILE(PrintReactionExeData, reactions_exe.dat );
STATS_OUT_FILE(PrintCurrentReactionData, cur_reactions.dat );
STATS_OUT_FILE(PrintReactionRewardData, reaction_reward.dat );
+STATS_OUT_FILE(PrintCurrentReactionRewardData, cur_reaction_reward.dat );
STATS_OUT_FILE(PrintTimeData, time.dat );
STATS_OUT_FILE(PrintMutationRateData, mutation_rates.dat );
STATS_OUT_FILE(PrintDivideMutData, divide_mut.dat );
@@ -2700,8 +2702,10 @@
action_lib->Register<cActionPrintTasksQualData>("PrintTasksQualData");
action_lib->Register<cActionPrintResourceData>("PrintResourceData");
action_lib->Register<cActionPrintReactionData>("PrintReactionData");
+ action_lib->Register<cActionPrintReactionExeData>("PrintReactionExeData");
action_lib->Register<cActionPrintCurrentReactionData>("PrintCurrentReactionData");
action_lib->Register<cActionPrintReactionRewardData>("PrintReactionRewardData");
+ action_lib->Register<cActionPrintCurrentReactionRewardData>("PrintCurrentReactionRewardData");
action_lib->Register<cActionPrintTimeData>("PrintTimeData");
action_lib->Register<cActionPrintMutationRateData>("PrintMutationRateData");
action_lib->Register<cActionPrintDivideMutData>("PrintDivideMutData");
Modified: development/source/main/cAvidaConfig.h
===================================================================
--- development/source/main/cAvidaConfig.h 2008-12-09 14:40:02 UTC (rev 3015)
+++ development/source/main/cAvidaConfig.h 2008-12-09 20:32:48 UTC (rev 3016)
@@ -378,8 +378,8 @@
CONFIG_ADD_VAR(POINT_MUT_PROB, double, 0.0, "Mutation rate (per-location per update)");
CONFIG_ADD_VAR(COPY_MUT_PROB, double, 0.0075, "Mutation rate (per copy)");
- CONFIG_ADD_VAR(COPY_INS_PROB, double, 0.0075, "Insertion rate (per copy)");
- CONFIG_ADD_VAR(COPY_DEL_PROB, double, 0.0075, "Deletion rate (per copy)");
+ CONFIG_ADD_VAR(COPY_INS_PROB, double, 0.0, "Insertion rate (per copy)");
+ CONFIG_ADD_VAR(COPY_DEL_PROB, double, 0.0, "Deletion rate (per copy)");
CONFIG_ADD_VAR(COPY_UNIFORM_PROB, double, 0.0, "Uniform mutation probability (per copy)\n- Randomly applies any of the three classes of mutations (ins, del, point).");
CONFIG_ADD_VAR(COPY_SLIP_PROB, double, 0.0, "Slip rate (per copy)");
Modified: development/source/main/cDeme.cc
===================================================================
--- development/source/main/cDeme.cc 2008-12-09 14:40:02 UTC (rev 3015)
+++ development/source/main/cDeme.cc 2008-12-09 20:32:48 UTC (rev 3016)
@@ -50,7 +50,7 @@
_next_merit = 1.0;
const int num_tasks = m_world->GetEnvironment().GetNumTasks();
- const int num_reactions = m_world->GetNumReactions();
+ const int num_reactions = m_world->GetEnvironment().GetNumReactions();
cur_task_exe_count.Resize(num_tasks);
cur_task_exe_count.SetAll(0);
Modified: development/source/main/cEnvironment.cc
===================================================================
--- development/source/main/cEnvironment.cc 2008-12-09 14:40:02 UTC (rev 3015)
+++ development/source/main/cEnvironment.cc 2008-12-09 20:32:48 UTC (rev 3016)
@@ -1304,10 +1304,15 @@
}
}
-double cEnvironment::GetReactionValue(int& reaction_id)
+const cString& cEnvironment::GetReactionName(int reaction_id) const
{
+ return reaction_lib.GetReaction(reaction_id)->GetName();
+}
+
+double cEnvironment::GetReactionValue(int reaction_id)
+{
cReaction* found_reaction = reaction_lib.GetReaction(reaction_id);
- if (found_reaction == NULL) return false;
+ if (found_reaction == NULL) return 0.0;
return found_reaction->GetValue();
}
@@ -1387,7 +1392,7 @@
cReaction* found_reaction = reaction_lib.GetReaction(name);
if (found_reaction == NULL) return false;
- for(int i=0; i<m_tasklib.GetSize(); i++)
+ for (int i=0; i<m_tasklib.GetSize(); i++)
{
if (m_tasklib.GetTask(i).GetName() == task)
{
Modified: development/source/main/cEnvironment.h
===================================================================
--- development/source/main/cEnvironment.h 2008-12-09 14:40:02 UTC (rev 3015)
+++ development/source/main/cEnvironment.h 2008-12-09 20:32:48 UTC (rev 3016)
@@ -153,6 +153,8 @@
bool UseNeighborInput() const { return m_tasklib.UseNeighborInput(); }
bool UseNeighborOutput() const { return m_tasklib.UseNeighborOutput(); }
+
+ int GetNumReactions() const { return reaction_lib.GetSize(); }
const cResourceLib& GetResourceLib() const { return resource_lib; }
const cReactionLib& GetReactionLib() const { return reaction_lib; }
const cMutationLib& GetMutationLib() const { return mutation_lib; }
@@ -168,7 +170,8 @@
int GetInputSize() const { return m_input_size; };
int GetOutputSize() const { return m_output_size; };
- double GetReactionValue(int& reaction_id);
+ const cString& GetReactionName(int reaction_id) const;
+ double GetReactionValue(int reaction_id);
bool SetReactionValue(cAvidaContext& ctx, const cString& name, double value);
bool SetReactionValueMult(const cString& name, double value_mult);
bool SetReactionInst(const cString& name, cString inst_name);
Modified: development/source/main/cPhenotype.cc
===================================================================
--- development/source/main/cPhenotype.cc 2008-12-09 14:40:02 UTC (rev 3015)
+++ development/source/main/cPhenotype.cc 2008-12-09 20:32:48 UTC (rev 3016)
@@ -286,8 +286,7 @@
* - this is the first method run on an otherwise freshly built phenotype.
**/
-void cPhenotype::SetupOffspring(const cPhenotype & parent_phenotype,
- const cGenome & _genome)
+void cPhenotype::SetupOffspring(const cPhenotype& parent_phenotype, const cGenome& _genome)
{
// Copy divide values from parent, which should already be setup.
merit = parent_phenotype.merit;
Modified: development/source/main/cPhenotype.h
===================================================================
--- development/source/main/cPhenotype.h 2008-12-09 14:40:02 UTC (rev 3015)
+++ development/source/main/cPhenotype.h 2008-12-09 20:32:48 UTC (rev 3016)
@@ -339,6 +339,7 @@
const tArray<double>& GetCurRBinsTotal() const { assert(initialized == true); return cur_rbins_total; }
const tArray<double>& GetCurRBinsAvail() const { assert(initialized == true); return cur_rbins_avail; }
const tArray<int>& GetCurReactionCount() const { assert(initialized == true); return cur_reaction_count;}
+ const tArray<double>& GetCurReactionAddReward() const { assert(initialized == true); return cur_reaction_add_reward;}
const tArray<int>& GetCurInstCount() const { assert(initialized == true); return cur_inst_count; }
const tArray<int>& GetCurSenseCount() const { assert(initialized == true); return cur_sense_count; }
double GetSensedResource(int _in) { assert(initialized == true); return sensed_resources[_in]; }
Modified: development/source/main/cPopulation.cc
===================================================================
--- development/source/main/cPopulation.cc 2008-12-09 14:40:02 UTC (rev 3015)
+++ development/source/main/cPopulation.cc 2008-12-09 20:32:48 UTC (rev 3016)
@@ -3677,7 +3677,7 @@
stats.SumMemSize().Clear();
stats.ZeroTasks();
- stats.ZeroRewards();
+ stats.ZeroReactions();
#if INSTRUCTION_COUNT
stats.ZeroInst();
@@ -3763,11 +3763,8 @@
stats.AddLastTask(j);
stats.AddLastTaskQuality(j, phenotype.GetLastTaskQuality()[j]);
stats.IncTaskExeCount(j, phenotype.GetLastTaskCount()[j]);
- }
- }
-
- // Test what tasks this organism has completed using internal resources.
- for (int j = 0; j < m_world->GetEnvironment().GetNumTasks(); j++) {
+ }
+
if (phenotype.GetCurInternalTaskCount()[j] > 0) {
stats.AddCurInternalTask(j);
stats.AddCurInternalTaskQuality(j, phenotype.GetCurInternalTaskQuality()[j]);
@@ -3780,8 +3777,17 @@
}
// Record what add bonuses this organism garnered for different reactions
- for (int j = 0; j < m_world->GetNumReactions(); j++) {
- stats.AddLastReactionAddReward(j, phenotype.GetLastReactionAddReward()[j]);
+ for (int j = 0; j < m_world->GetEnvironment().GetNumReactions(); j++) {
+ if (phenotype.GetCurReactionCount()[j] > 0) {
+ stats.AddCurReaction(j);
+ stats.AddCurReactionAddReward(j, phenotype.GetCurReactionAddReward()[j]);
+ }
+
+ if (phenotype.GetLastReactionCount()[j] > 0) {
+ stats.AddLastReaction(j);
+ stats.IncReactionExeCount(j, phenotype.GetLastTaskCount()[j]);
+ stats.AddLastReactionAddReward(j, phenotype.GetLastReactionAddReward()[j]);
+ }
}
// Test what resource combinations this creature has sensed
Modified: development/source/main/cStats.cc
===================================================================
--- development/source/main/cStats.cc 2008-12-09 14:40:02 UTC (rev 3015)
+++ development/source/main/cStats.cc 2008-12-09 20:32:48 UTC (rev 3016)
@@ -175,11 +175,18 @@
#endif
inst_names.Resize(m_world->GetNumInstructions());
- reaction_count.Resize( m_world->GetNumReactions() );
- reaction_count.SetAll(0);
+ const int num_reactions = env.GetNumReactions();
+ m_reaction_cur_count.Resize(num_reactions);
+ m_reaction_last_count.Resize(num_reactions);
+ m_reaction_cur_add_reward.Resize(num_reactions);
+ m_reaction_last_add_reward.Resize(num_reactions);
+ m_reaction_exe_count.Resize(num_reactions);
+ m_reaction_cur_count.SetAll(0);
+ m_reaction_last_count.SetAll(0);
+ m_reaction_cur_add_reward.SetAll(0.0);
+ m_reaction_last_add_reward.SetAll(0.0);
+ m_reaction_exe_count.SetAll(0);
- reaction_add_reward.Resize( m_world->GetNumReactions() );
- reaction_add_reward.SetAll(0);
resource_count.Resize( m_world->GetNumResources() );
resource_count.SetAll(0);
@@ -188,10 +195,11 @@
resource_geometry.SetAll(nGeometry::GLOBAL);
task_names.Resize(num_tasks);
- for (int i = 0; i < num_tasks; i++)
- task_names[i] = env.GetTask(i).GetDesc();
+ for (int i = 0; i < num_tasks; i++) task_names[i] = env.GetTask(i).GetDesc();
- reaction_names.Resize( m_world->GetNumReactions() );
+ reaction_names.Resize(num_reactions);
+ for (int i = 0; i < num_reactions; i++) reaction_names[i] = env.GetReactionName(i);
+
resource_names.Resize( m_world->GetNumResources() );
// This block calculates how many slots we need to
@@ -352,25 +360,26 @@
void cStats::ZeroTasks()
{
- for (int i = 0; i < task_cur_count.GetSize(); i++) {
- task_cur_count[i] = 0;
- task_last_count[i] = 0;
- task_cur_quality[i] = 0;
- task_last_quality[i] = 0;
- task_last_max_quality[i] = 0;
- task_cur_max_quality[i] = 0;
- task_internal_cur_count[i] = 0;
- task_internal_cur_quality[i] = 0;
- task_internal_cur_max_quality[i] = 0;
- task_internal_last_count[i] = 0;
- task_internal_last_quality[i] = 0;
- task_internal_last_max_quality[i] = 0;
- }
+ task_cur_count.SetAll(0);
+ task_last_count.SetAll(0);
+ task_cur_quality.SetAll(0);
+ task_last_quality.SetAll(0);
+ task_last_max_quality.SetAll(0);
+ task_cur_max_quality.SetAll(0);
+ task_internal_cur_count.SetAll(0);
+ task_internal_cur_quality.SetAll(0);
+ task_internal_cur_max_quality.SetAll(0);
+ task_internal_last_count.SetAll(0);
+ task_internal_last_quality.SetAll(0);
+ task_internal_last_max_quality.SetAll(0);
}
-void cStats::ZeroRewards()
+void cStats::ZeroReactions()
{
- reaction_add_reward.SetAll(0);
+ m_reaction_cur_count.SetAll(0);
+ m_reaction_last_count.SetAll(0);
+ m_reaction_cur_add_reward.SetAll(0);
+ m_reaction_last_add_reward.SetAll(0);
}
@@ -528,7 +537,11 @@
sense_last_count.SetAll(0);
sense_last_exe_count.SetAll(0);
- reaction_add_reward.SetAll(0);
+ m_reaction_cur_count.SetAll(0);
+ m_reaction_last_count.SetAll(0);
+ m_reaction_cur_add_reward.SetAll(0.0);
+ m_reaction_last_add_reward.SetAll(0.0);
+ m_reaction_exe_count.SetAll(0);
dom_merit = 0;
dom_gestation = 0.0;
@@ -910,7 +923,6 @@
df.Write(m_update, "Update");
for (int i = 0; i < task_exe_count.GetSize(); i++) {
df.Write(task_exe_count[i], task_names[i] );
- task_exe_count[i] = 0;
}
df.Endl();
}
@@ -942,31 +954,11 @@
df.WriteComment("First column gives the current update, all further columns give the number");
df.WriteComment("of currently living organisms each reaction has affected.");
- df.Write(m_update, "Update");
-
- const int num_reactions=m_world->GetEnvironment().GetReactionLib().GetSize();
- tArray<int> reactions(num_reactions);
- reactions.SetAll(0);
-
- for(int i=0; i<m_world->GetPopulation().GetSize(); ++i) {
- cPopulationCell& cell = m_world->GetPopulation().GetCell(i);
- if(cell.IsOccupied()) {
- const tArray<int>& org_rx = cell.GetOrganism()->GetPhenotype().GetLastReactionCount();
- for(int j=0; j<num_reactions; ++j) {
- reactions[j] += org_rx[j];
- }
- }
- }
-
- for(int i=0; i<num_reactions; ++i) {
- df.Write(reactions[i], m_world->GetEnvironment().GetReactionLib().GetReaction(i)->GetName());
- }
-
-// df.Write( 0.0,
-// df.Write(reaction_count[i], reaction_names[i] );
-// task_exe_count[i] = 0;
-// }
- df.Endl();
+ df.Write(m_update, "Update");
+ for(int i = 0; i < m_reaction_last_count.GetSize(); i++) {
+ df.Write(m_reaction_last_count[i], reaction_names[i]);
+ }
+ df.Endl();
}
void cStats::PrintCurrentReactionData(const cString& filename)
@@ -978,46 +970,60 @@
df.WriteComment("First column gives the current update, all further columns give the number");
df.WriteComment("of currently living organisms each reaction has affected.");
+ df.Write(m_update, "Update");
+ for(int i = 0; i < m_reaction_cur_count.GetSize(); i++) {
+ df.Write(m_reaction_cur_count[i], reaction_names[i]);
+ }
+ df.Endl();
+}
+
+
+void cStats::PrintReactionRewardData(const cString& filename)
+{
+ cDataFile& df = m_world->GetDataFile(filename);
+
+ df.WriteComment("Avida reaction data");
+ df.WriteTimeStamp();
+ df.WriteComment("First column gives the current update, all further columns give the add bonus reward");
+ df.WriteComment("currently living organisms have garnered from each reaction.");
+
df.Write(m_update, "Update");
-
- const int num_reactions=m_world->GetEnvironment().GetReactionLib().GetSize();
- tArray<int> reactions(num_reactions);
- reactions.SetAll(0);
-
- for(int i=0; i<m_world->GetPopulation().GetSize(); ++i) {
- cPopulationCell& cell = m_world->GetPopulation().GetCell(i);
- if(cell.IsOccupied()) {
- const tArray<int>& org_rx = cell.GetOrganism()->GetPhenotype().GetCurReactionCount();
- for(int j=0; j<num_reactions; ++j) {
- reactions[j] += org_rx[j];
- }
- }
+ for (int i = 0; i < m_reaction_last_add_reward.GetSize(); i++) {
+ df.Write(m_reaction_last_add_reward[i], reaction_names[i]);
}
-
- for(int i=0; i<num_reactions; ++i) {
- df.Write(reactions[i], m_world->GetEnvironment().GetReactionLib().GetReaction(i)->GetName());
- }
-
-// df.Write( 0.0,
-// df.Write(reaction_count[i], reaction_names[i] );
-// task_exe_count[i] = 0;
-// }
df.Endl();
}
-void cStats::PrintReactionRewardData(const cString& filename)
+void cStats::PrintCurrentReactionRewardData(const cString& filename)
{
cDataFile& df = m_world->GetDataFile(filename);
-
+
df.WriteComment("Avida reaction data");
df.WriteTimeStamp();
df.WriteComment("First column gives the current update, all further columns give the add bonus reward");
df.WriteComment("currently living organisms have garnered from each reaction.");
+
+ df.Write(m_update, "Update");
+ for (int i = 0; i < m_reaction_cur_add_reward.GetSize(); i++) {
+ df.Write(m_reaction_cur_add_reward[i], reaction_names[i]);
+ }
+ df.Endl();
+}
+
+void cStats::PrintReactionExeData(const cString& filename)
+{
+ cDataFile& df = m_world->GetDataFile(filename);
+
+ df.WriteComment("Avida reaction execution data");
+ df.WriteTimeStamp();
+ df.WriteComment("First column gives the current update, all further columns give the number");
+ df.WriteComment("of times the particular reaction has been triggered this update.");
+
df.Write(m_update, "Update");
- for (int i = 0; i < reaction_count.GetSize(); i++) {
- df.Write(reaction_add_reward[i], reaction_names[i] );
+ for (int i = 0; i < m_reaction_exe_count.GetSize(); i++) {
+ df.Write(m_reaction_exe_count[i], reaction_names[i]);
}
df.Endl();
}
Modified: development/source/main/cStats.h
===================================================================
--- development/source/main/cStats.h 2008-12-09 14:40:02 UTC (rev 3015)
+++ development/source/main/cStats.h 2008-12-09 20:32:48 UTC (rev 3016)
@@ -246,8 +246,12 @@
tArray<double> task_internal_cur_max_quality;
tArray<double> task_internal_last_max_quality;
- tArray<double> reaction_count;
- tArray<double> reaction_add_reward;
+ tArray<int> m_reaction_cur_count;
+ tArray<int> m_reaction_last_count;
+ tArray<double> m_reaction_cur_add_reward;
+ tArray<double> m_reaction_last_add_reward;
+ tArray<int> m_reaction_exe_count;
+
tArray<double> resource_count;
tArray<int> resource_geometry;
tArray< tArray<double> > spatial_res_count;
@@ -538,20 +542,15 @@
void RecordBirth(int cell_id, int genotype_id, bool breed_true);
void RecordDeath() { num_deaths++; }
void AddGenotype() { tot_genotypes++; }
- void RemoveGenotype(int id_num, int parent_id,
- int parent_distance, int depth, int max_abundance,
- int parasite_abundance, int age, int length);
- void AddThreshold(int id_num, const char * name,
- int species_num=-1);
+ void RemoveGenotype(int id_num, int parent_id, int parent_distance, int depth, int max_abundance,
+ int parasite_abundance, int age, int length);
+ void AddThreshold(int id_num, const char * name, int species_num=-1);
void RemoveThreshold() { num_threshold--; }
void AddSpecies() { tot_species++; num_species++; }
- void RemoveSpecies(int id_num, int parent_id,
- int max_gen_abundance, int max_abundance, int age);
+ void RemoveSpecies(int id_num, int parent_id, int max_gen_abundance, int max_abundance, int age);
void AddLineage() { tot_lineages++; num_lineages++; }
- void RemoveLineage(int id_num, int parent_id, int update_born,
- double generation_born, int total_CPUs,
- int total_genotypes, double fitness,
- double lineage_stat1, double lineage_stat2 );
+ void RemoveLineage(int id_num, int parent_id, int update_born, double generation_born, int total_CPUs,
+ int total_genotypes, double fitness, double lineage_stat1, double lineage_stat2 );
void IncExecuted() { num_executed++; }
@@ -559,54 +558,48 @@
void AddCurTaskQuality(int task_num, double quality)
{
task_cur_quality[task_num] += quality;
- if (quality > task_cur_max_quality[task_num])
- task_cur_max_quality[task_num] = quality;
+ if (quality > task_cur_max_quality[task_num]) task_cur_max_quality[task_num] = quality;
}
void AddLastTask(int task_num) { task_last_count[task_num]++; }
void AddLastTaskQuality(int task_num, double quality)
{
task_last_quality[task_num] += quality;
- if (quality > task_last_max_quality[task_num])
- task_last_max_quality[task_num] = quality;
+ if (quality > task_last_max_quality[task_num]) task_last_max_quality[task_num] = quality;
}
- void IncTaskExeCount(int task_num, int task_count)
- { task_exe_count[task_num] += task_count; }
+ void IncTaskExeCount(int task_num, int task_count) { task_exe_count[task_num] += task_count; }
void ZeroTasks();
void AddLastSense(int res_comb_index) { sense_last_count[res_comb_index]++; }
- void IncLastSenseExeCount(int res_comb_index, int count)
- { sense_last_exe_count[res_comb_index]+= count; }
+ void IncLastSenseExeCount(int res_comb_index, int count) { sense_last_exe_count[res_comb_index]+= count; }
// internal resource bins and use of internal resources
void AddCurInternalTask(int task_num) { task_internal_cur_count[task_num]++; }
void AddCurInternalTaskQuality(int task_num, double quality)
{
task_internal_cur_quality[task_num] += quality;
- if(quality > task_internal_cur_max_quality[task_num])
- task_internal_cur_max_quality[task_num] = quality;
+ if(quality > task_internal_cur_max_quality[task_num]) task_internal_cur_max_quality[task_num] = quality;
}
void AddLastInternalTask(int task_num) { task_internal_last_count[task_num]++; }
void AddLastInternalTaskQuality(int task_num, double quality)
{
task_internal_last_quality[task_num] += quality;
- if(quality > task_internal_last_max_quality[task_num])
- task_internal_last_max_quality[task_num] = quality;
+ if(quality > task_internal_last_max_quality[task_num]) task_internal_last_max_quality[task_num] = quality;
}
-
- void SetReactions(const tArray<double> &_in) { reaction_count = _in; }
- void AddLastReactionAddReward(int _id, double _reward) { reaction_add_reward[_id] += _reward; }
- void ZeroRewards();
+ void AddCurReaction(int reaction) { m_reaction_cur_count[reaction]++; }
+ void AddLastReaction(int reaction) { m_reaction_last_count[reaction]++; }
+ void AddCurReactionAddReward(int reaction, double reward) { m_reaction_cur_add_reward[reaction] += reward; }
+ void AddLastReactionAddReward(int reaction, double reward) { m_reaction_last_add_reward[reaction] += reward; }
+ void IncReactionExeCount(int reaction, int count) { m_reaction_exe_count[reaction] += count; }
+ void ZeroReactions();
+
void SetResources(const tArray<double> &_in) { resource_count = _in; }
void SetResourcesGeometry(const tArray<int> &_in) { resource_geometry = _in;}
void SetSpatialRes(const tArray< tArray<double> > &_in) {
spatial_res_count = _in;
}
- void SetInstName(int id, const cString & name) {
- assert(id < inst_names.GetSize());
- inst_names[id] = name;
- }
+ void SetInstName(int id, const cString & name) { assert(id < inst_names.GetSize()); inst_names[id] = name; }
void SetReactionName(int id, const cString & name) { reaction_names[id] = name; }
void SetResourceName(int id, const cString & name) { resource_names[id] = name; }
@@ -669,7 +662,7 @@
double GetInternalTaskLastQuality(int task_num) const { return task_internal_last_quality[task_num]/(double)task_internal_last_count[task_num]; }
double GetInternalTaskMaxLastQuality(int task_num) const { return task_internal_last_max_quality[task_num]; }
- const tArray<double> & GetReactions() const { return reaction_count; }
+ const tArray<int>& GetReactions() const { return m_reaction_last_count; }
const tArray<double> & GetResources() const { return resource_count; }
// market info
@@ -725,10 +718,6 @@
int GetNumSenseSlots();
-/* int getNumAsleep(int demeID) { return numAsleep[demeID]; }
- void incNumAsleep(int demeID) { numAsleep[demeID]++; }
- void decNumAsleep(int demeID) { numAsleep[demeID]--; }
-*/
double GetAveSpeculative() const { return (m_spec_num) ? ((double)m_spec_total / (double)m_spec_num) : 0.0; }
int GetSpeculativeWaste() const { return m_spec_waste; }
@@ -757,8 +746,10 @@
void PrintTasksExeData(const cString& filename);
void PrintTasksQualData(const cString& filename);
void PrintReactionData(const cString& filename);
+ void PrintReactionExeData(const cString& filename);
void PrintCurrentReactionData(const cString& filename);
void PrintReactionRewardData(const cString& filename);
+ void PrintCurrentReactionRewardData(const cString& filename);
void PrintResourceData(const cString& filename);
void PrintSpatialResData(const cString& filename, int i);
void PrintTimeData(const cString& filename);
@@ -773,7 +764,6 @@
void PrintInternalTasksQualData(const cString& filename);
void PrintSleepData(const cString& filename);
void PrintCompetitionData(const cString& filename);
- // @WRE: Added event for printing visit counts
void PrintCellVisitsData(const cString& filename);
// deme predicate stats
Modified: development/source/main/cTaskLib.h
===================================================================
--- development/source/main/cTaskLib.h 2008-12-09 14:40:02 UTC (rev 3015)
+++ development/source/main/cTaskLib.h 2008-12-09 20:32:48 UTC (rev 3016)
@@ -88,12 +88,13 @@
bool UseNeighborOutput() const { return use_neighbor_output; }
-private: // Direct task related methods
- void NewTask(const cString& name, const cString& desc, tTaskTest task_fun, int reqs = 0,
- cArgContainer* args = NULL);
+private:
+
+ void NewTask(const cString& name, const cString& desc, tTaskTest task_fun, int reqs = 0, cArgContainer* args = NULL);
inline double FractionalReward(unsigned int supplied, unsigned int correct);
+
double Task_Echo(cTaskContext& ctx) const;
double Task_Add(cTaskContext& ctx) const;
double Task_Add3(cTaskContext& ctx) const;
Modified: development/source/main/cWorld.cc
===================================================================
--- development/source/main/cWorld.cc 2008-12-09 14:40:02 UTC (rev 3015)
+++ development/source/main/cWorld.cc 2008-12-09 20:32:48 UTC (rev 3016)
@@ -150,11 +150,6 @@
return m_hw_mgr->GetInstSet().GetSize();
}
-int cWorld::GetNumReactions()
-{
- return m_env->GetReactionLib().GetSize();
-}
-
int cWorld::GetNumResources()
{
return m_env->GetResourceLib().GetSize();
Modified: development/source/main/cWorld.h
===================================================================
--- development/source/main/cWorld.h 2008-12-09 14:40:02 UTC (rev 3015)
+++ development/source/main/cWorld.h 2008-12-09 20:32:48 UTC (rev 3016)
@@ -122,7 +122,6 @@
// Convenience Accessors
int GetNumInstructions();
- int GetNumReactions();
int GetNumResources();
inline int GetVerbosity() { return m_conf->VERBOSITY.Get(); }
inline void SetVerbosity(int v) { m_conf->VERBOSITY.Set(v); }
Modified: development/support/config/avida.cfg
===================================================================
--- development/support/config/avida.cfg 2008-12-09 14:40:02 UTC (rev 3015)
+++ development/support/config/avida.cfg 2008-12-09 20:32:48 UTC (rev 3016)
@@ -212,8 +212,8 @@
# Mutations
POINT_MUT_PROB 0.0 # Mutation rate (per-location per update)
COPY_MUT_PROB 0.0075 # Mutation rate (per copy)
-COPY_INS_PROB 0.0075 # Insertion rate (per copy)
-COPY_DEL_PROB 0.0075 # Deletion rate (per copy)
+COPY_INS_PROB 0.0 # Insertion rate (per copy)
+COPY_DEL_PROB 0.0 # Deletion rate (per copy)
COPY_UNIFORM_PROB 0.0 # Uniform mutation probability (per copy)
# - Randomly applies any of the three classes of mutations (ins, del, point).
COPY_SLIP_PROB 0.0 # Slip rate (per copy)
More information about the Avida-cvs
mailing list