[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