[Avida-SVN] r1883 - development/source/main

goingssh at myxo.css.msu.edu goingssh at myxo.css.msu.edu
Thu Aug 2 05:35:03 PDT 2007


Author: goingssh
Date: 2007-08-02 08:35:03 -0400 (Thu, 02 Aug 2007)
New Revision: 1883

Modified:
   development/source/main/cTaskLib.cc
Log:
added another optimize function


Modified: development/source/main/cTaskLib.cc
===================================================================
--- development/source/main/cTaskLib.cc	2007-08-02 12:20:12 UTC (rev 1882)
+++ development/source/main/cTaskLib.cc	2007-08-02 12:35:03 UTC (rev 1883)
@@ -2168,6 +2168,7 @@
   // if the org hasn't output yet enough numbers, just return without completing any tasks
   if (ctx.GetOutputBuffer().GetNumStored() < ctx.GetOutputBuffer().GetCapacity()) return 0;
 
+
   double quality = 0.0;
   const cArgContainer& args = ctx.GetTaskEntry()->GetArguments();
 
@@ -2201,6 +2202,7 @@
 	}
 	for (int i=0; i<args.GetInt(3); i++)
 		vars[i] = tempVars[i] / tot;
+	//	cout << "x: " << vars[0] << " ";
   } 
   else 
   {
@@ -2219,7 +2221,8 @@
   switch(function) {
     case 1:
 	  Fx = vars[0];		// F1
-      break;
+	  //	  cout << "Fx1: " << Fx << " ";
+	  break;
 
     case 2:
       Fx = (1.0 + vars[1]) * (1.0 - sqrt(vars[0] / (1.0 + vars[1])));   // F2
@@ -2256,9 +2259,11 @@
     case 9:
     {
       double sum = 0;
+      //      cout << "9x: " << vars[0] << " ";
       for (int i=1; i<5; i++)
-			sum += vars[i]/4.0;
-      Fx = (1.0 + 9*sum) * (1.0 - sqrt(vars[0] / (1.0 + 9*sum)));
+	sum += vars[i]/4.0;
+      double Gx = 1+9*sum;
+      Fx = Gx * (1.0 - sqrt(vars[0]/Gx));
       break;
     }
 
@@ -2267,10 +2272,21 @@
       double sum = 0;
       for (int i=1; i<5; i++)
 	sum += vars[i]/4.0;
-      Fx = (1.0 + sum) * (1.0 - pow(vars[0] / (1.0 + sum), 2.0));
+      double Gx = 1+9*sum;
+      Fx = Gx * (1.0 - pow(vars[0]/Gx, 2.0));
       break;
     }
 
+    case 11:
+    {
+      double sum = 0;
+      for (int i=1; i<5; i++)
+	sum += vars[i]/4.0;
+      double Gx = 1+9*sum;
+      Fx = Gx * (1 - sqrt(vars[0]/Gx) - (vars[0]/Gx)*(sin(3.14159*vars[0]*10)));
+      break;
+    }
+
     default:
       quality = .001;
   }




More information about the Avida-cvs mailing list