[Avida-SVN] r3305 - development/source/main
hjg at myxo.css.msu.edu
hjg at myxo.css.msu.edu
Tue Jun 9 20:18:14 PDT 2009
Author: hjg
Date: 2009-06-09 23:18:14 -0400 (Tue, 09 Jun 2009)
New Revision: 3305
Modified:
development/source/main/cTaskLib.cc
Log:
bug fix in Task_FormSpatialGroup fitness function.
Modified: development/source/main/cTaskLib.cc
===================================================================
--- development/source/main/cTaskLib.cc 2009-06-09 20:43:52 UTC (rev 3304)
+++ development/source/main/cTaskLib.cc 2009-06-10 03:18:14 UTC (rev 3305)
@@ -3400,15 +3400,17 @@
double cTaskLib::Task_FormSpatialGroup(cTaskContext& ctx) const
{
- int ideal_group_size = ctx.GetTaskEntry()->GetArguments().GetInt(0);
+ double t = (double) ctx.GetTaskEntry()->GetArguments().GetInt(0);
double reward = 0.0;
int group_id = 0;
if (ctx.GetOrganism()->HasOpinion()) {
group_id = ctx.GetOrganism()->GetOpinion().first;
}
- int orgs_in_group = m_world->GetPopulation().NumberOfOrganismsInGroup(group_id);
+ double g = (double) m_world->GetPopulation().NumberOfOrganismsInGroup(group_id);
+ double num = (t-g) * (t-g);
+ double denom = (t*t);
- reward = (1 - ((ideal_group_size - orgs_in_group)*(ideal_group_size - orgs_in_group)))/(ideal_group_size * ideal_group_size);
+ reward = 1 - (num/denom);
if (reward < 0) reward = 0;
/*if (orgs_in_group < ideal_group_size) {
reward = orgs_in_group*orgs_in_group;
More information about the Avida-cvs
mailing list