[Avida-SVN] r3281 - development/source/main
hjg at myxo.css.msu.edu
hjg at myxo.css.msu.edu
Thu Jun 4 05:40:04 PDT 2009
Author: hjg
Date: 2009-06-04 08:40:04 -0400 (Thu, 04 Jun 2009)
New Revision: 3281
Modified:
development/source/main/cAvidaConfig.h
development/source/main/cPopulation.cc
development/source/main/cStats.cc
Log:
Removed organisms from dynamically formed groups at death & updated the group formation stats tracking.
Modified: development/source/main/cAvidaConfig.h
===================================================================
--- development/source/main/cAvidaConfig.h 2009-06-03 22:10:07 UTC (rev 3280)
+++ development/source/main/cAvidaConfig.h 2009-06-04 12:40:04 UTC (rev 3281)
@@ -637,6 +637,10 @@
CONFIG_ADD_VAR(STRING_AMOUNT_CAP, int, -1, "-1=no cap on string amounts\n#=CAP");
CONFIG_ADD_VAR(MATCH_ALREADY_PRODUCED, int, 0, "0=off\n1=on");
+
+ CONFIG_ADD_GROUP(GROUP_FORMATION_GROUP, "Group Formation Settings");
+ CONFIG_ADD_VAR(USE_FORM_GROUPS, bool, 0, "Enable organisms to form groups. 0/1 (off/on)");
+
#endif
inline void Load(const cString& filename) { Load(filename, false); }
Modified: development/source/main/cPopulation.cc
===================================================================
--- development/source/main/cPopulation.cc 2009-06-03 22:10:07 UTC (rev 3280)
+++ development/source/main/cPopulation.cc 2009-06-04 12:40:04 UTC (rev 3281)
@@ -747,6 +747,12 @@
organism->GetOrgInterface().UpdateResources(organism->GetRBins());
}
+ // make sure the group composition is updated.
+ if(m_world->GetConfig().USE_FORM_GROUPS.Get() && organism->HasOpinion())
+ {
+ int opinion = organism->GetOpinion().first;
+ LeaveGroup(opinion);
+ }
// Do the lineage handling
if (m_world->GetConfig().LOG_LINEAGES.Get()) { m_world->GetClassificationManager().RemoveLineageOrganism(organism); }
Modified: development/source/main/cStats.cc
===================================================================
--- development/source/main/cStats.cc 2009-06-03 22:10:07 UTC (rev 3280)
+++ development/source/main/cStats.cc 2009-06-04 12:40:04 UTC (rev 3281)
@@ -2538,7 +2538,7 @@
df.Write(shaded_20, "shaded-20 [shaded20]");
df.Write(shaded_10, "shaded-10 [shaded10]");
df.Write(shaded_0, "shaded-0 [shaded0]");
- df.Write(high_alt, "percent-high-alt [highalt]");
+ df.Write(high_alt, "percent-high-alt [highalt]");
df.Write(avg_shade, "avg-shade [avgshade]");
df.Endl();
@@ -2557,27 +2557,35 @@
map <int,int>::iterator itr;
double avg_size = 0.0;
+ double avg_size_wout_empty = 0.0;
double max_size = 0.0;
double min_size = 100000000000.0;
double active_groups = 0.0;
for(itr = groups.begin();itr!=groups.end();itr++) {
- avg_size += itr->second;
- if (itr->second > max_size) max_size = itr->second;
- if (itr->second < min_size) min_size = itr->second;
- if (itr->second > 0) active_groups++;
+ double cur_size = itr->second;
+ avg_size += cur_size;
+ if (cur_size > max_size) max_size = cur_size;
+ if (cur_size < min_size) min_size = cur_size;
+ if (cur_size > 0) {
+ active_groups++;
+ avg_size_wout_empty += cur_size;
+ }
}
avg_size = avg_size / groups.size();
+ avg_size_wout_empty = avg_size_wout_empty / active_groups;
+ df.WriteTimeStamp();
+ df.Write(m_update, "Update [update]");
df.Write((double)groups.size(), "number of groups [num]");
- df.Write(avg_size, "average size of groups [avg-size]");
- df.Write(max_size, "max size of groups [max-size]");
- df.Write(min_size, "min size of groups [min-size]");
- df.Write(active_groups, "active groups [act-group]");
+ df.Write(avg_size, "average size of groups [avgsize]");
+ df.Write(avg_size_wout_empty, "average size of non-emptygroups [avgsizene]");
+ df.Write(max_size, "max size of groups [maxsize]");
+ df.Write(min_size, "min size of groups [minsize]");
+ df.Write(active_groups, "active groups [actgroup]");
df.Endl();
-
}
More information about the Avida-cvs
mailing list