[Avida-cvs] [avida-svn] r602 - in development: Avida.xcodeproj source/main

brysonda@myxo.css.msu.edu brysonda at myxo.css.msu.edu
Sat Apr 8 06:28:45 PDT 2006


Author: brysonda
Date: 2006-04-08 09:28:45 -0400 (Sat, 08 Apr 2006)
New Revision: 602

Modified:
   development/Avida.xcodeproj/project.pbxproj
   development/source/main/cEnvironment.cc
   development/source/main/cEnvironment.h
   development/source/main/nReaction.h
Log:
Add new reaction value type, 'lin'.  Grants a linearly increasing reward based on the number of times the task has been performed.  Value determines the slope of the line.   Calculated reward is additive with respect to the current merit.

Modified: development/Avida.xcodeproj/project.pbxproj
===================================================================
--- development/Avida.xcodeproj/project.pbxproj	2006-04-08 05:56:08 UTC (rev 601)
+++ development/Avida.xcodeproj/project.pbxproj	2006-04-08 13:28:45 UTC (rev 602)
@@ -11,7 +11,6 @@
 		7005A70409BA0FA90007E16E /* cTestCPUInterface.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7005A70209BA0FA90007E16E /* cTestCPUInterface.cc */; };
 		7005A70509BA0FA90007E16E /* cTestCPUInterface.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 7005A70109BA0FA90007E16E /* cTestCPUInterface.h */; };
 		7005A70609BA0FA90007E16E /* cTestCPUInterface.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7005A70209BA0FA90007E16E /* cTestCPUInterface.cc */; };
-		7005A70709BA0FA90007E16E /* cTestCPUInterface.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 7005A70109BA0FA90007E16E /* cTestCPUInterface.h */; };
 		7005A70809BA0FA90007E16E /* cTestCPUInterface.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7005A70209BA0FA90007E16E /* cTestCPUInterface.cc */; };
 		7005A83209BA621F0007E16E /* cOrgMessage.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70B0868808F49EA800FC65FE /* cOrgMessage.cc */; };
 		700AEB7C09E3490400A073FD /* avida-smt.cfg in CopyFiles */ = {isa = PBXBuildFile; fileRef = 700AEB7B09E3490300A073FD /* avida-smt.cfg */; };
@@ -37,7 +36,6 @@
 		7013846409028B3E0087ED2E /* cAvidaConfig.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7013846009028B3E0087ED2E /* cAvidaConfig.cc */; };
 		7013852D0902E36B0087ED2E /* avida.cfg in CopyFiles */ = {isa = PBXBuildFile; fileRef = 7013852C0902E36B0087ED2E /* avida.cfg */; };
 		7013852E0902E36B0087ED2E /* avida.cfg in CopyFiles */ = {isa = PBXBuildFile; fileRef = 7013852C0902E36B0087ED2E /* avida.cfg */; };
-		701D51CD09C645F50009B4F8 /* cAvidaContext.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 701D51CB09C645F50009B4F8 /* cAvidaContext.h */; };
 		701D51CF09C645F50009B4F8 /* cAvidaContext.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 701D51CB09C645F50009B4F8 /* cAvidaContext.h */; };
 		701D51D109C645F50009B4F8 /* cAvidaContext.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 701D51CB09C645F50009B4F8 /* cAvidaContext.h */; };
 		701D915D094B864A008B845F /* cFallbackWorldDriver.cc in Sources */ = {isa = PBXBuildFile; fileRef = 701D915C094B864A008B845F /* cFallbackWorldDriver.cc */; };
@@ -94,7 +92,6 @@
 		7054A12109A7BEFC00038658 /* cThread.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7054A11F09A7BEFC00038658 /* cThread.cc */; };
 		7054A12209A7BEFC00038658 /* cThread.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 7054A11E09A7BEFC00038658 /* cThread.h */; };
 		7054A12309A7BEFC00038658 /* cThread.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7054A11F09A7BEFC00038658 /* cThread.cc */; };
-		7054A12409A7BEFC00038658 /* cThread.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 7054A11E09A7BEFC00038658 /* cThread.h */; };
 		7054A12509A7BEFC00038658 /* cThread.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7054A11F09A7BEFC00038658 /* cThread.cc */; };
 		7054A17009A8014600038658 /* cAnalyzeJobQueue.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 7054A16E09A8014600038658 /* cAnalyzeJobQueue.h */; };
 		7054A17109A8014600038658 /* cAnalyzeJobQueue.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7054A16F09A8014600038658 /* cAnalyzeJobQueue.cc */; };
@@ -513,9 +510,6 @@
 				706D33280854A90D00D7DC8F /* inst_set.smt in CopyFiles */,
 				701384350900A45B0087ED2E /* organism.smtx in CopyFiles */,
 				7013852D0902E36B0087ED2E /* avida.cfg in CopyFiles */,
-				7054A12409A7BEFC00038658 /* cThread.h in CopyFiles */,
-				7005A70709BA0FA90007E16E /* cTestCPUInterface.h in CopyFiles */,
-				701D51CD09C645F50009B4F8 /* cAvidaContext.h in CopyFiles */,
 				700AEB7C09E3490400A073FD /* avida-smt.cfg in CopyFiles */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;

Modified: development/source/main/cEnvironment.cc
===================================================================
--- development/source/main/cEnvironment.cc	2006-04-08 05:56:08 UTC (rev 601)
+++ development/source/main/cEnvironment.cc	2006-04-08 13:28:45 UTC (rev 602)
@@ -148,6 +148,7 @@
       if (var_value=="add") new_process->SetType(nReaction::PROCTYPE_ADD);
       else if (var_value=="mult") new_process->SetType(nReaction::PROCTYPE_MULT);
       else if (var_value=="pow") new_process->SetType(nReaction::PROCTYPE_POW);
+      else if (var_value=="lin") new_process->SetType(nReaction::PROCTYPE_LIN);
       else {
         cerr << "Unknown reaction process type '" << var_value
         << "' found in '" << reaction->GetName() << "'." << endl;
@@ -676,20 +677,21 @@
     assert(cur_task != NULL);
     const double task_quality = task_lib.TestOutput(*cur_task, &taskctx);
     const int task_id = cur_task->GetID();
+    const int task_cnt = task_count[task_id];
     
     // If this task wasn't performed, move on to the next one.
     if (task_quality == 0.0) continue;
     
     // Examine requisites on this reaction
-    if (TestRequisites(cur_reaction->GetRequisites(), task_count[task_id], reaction_count) == false) {
+    if (TestRequisites(cur_reaction->GetRequisites(), task_cnt, reaction_count) == false) {
       continue;
     }
     
-	// Mark this task as performed...
-	result.MarkTask(task_id, task_quality);
+    // Mark this task as performed...
+    result.MarkTask(task_id, task_quality);
 
     // And lets process it!
-    DoProcesses(ctx, cur_reaction->GetProcesses(), resource_count, task_quality, result);
+    DoProcesses(ctx, cur_reaction->GetProcesses(), resource_count, task_quality, task_cnt, result);
     
     // Mark this reaction as occuring...
     result.MarkReaction(cur_reaction->GetID());
@@ -777,7 +779,7 @@
 
 void cEnvironment::DoProcesses(cAvidaContext& ctx, const tList<cReactionProcess>& process_list,
                                const tArray<double>& resource_count, const double task_quality,
-                               cReactionResult& result) const
+                               const int task_count, cReactionResult& result) const
 {
   const int num_process = process_list.GetSize();
   
@@ -796,7 +798,6 @@
     if (in_resource == NULL) {
       consumed = max_consumed * task_quality;
     }
-    
     // Otherwise we're using a finite resource
     else {
       const int res_id = in_resource->GetID();
@@ -807,7 +808,7 @@
       // Make sure we're not above the maximum consumption.
       if (consumed > max_consumed) consumed = max_consumed;
 
-	  consumed *= task_quality;  // modify consumed based on task quality
+      consumed *= task_quality;  // modify consumed based on task quality
       
       // Test if we are below the minimum consumption.
       if (consumed < min_consumed) consumed = 0.0;
@@ -832,6 +833,9 @@
       case nReaction::PROCTYPE_POW:
         result.MultBonus( pow(2.0, bonus) );
         break;
+      case nReaction::PROCTYPE_LIN:
+        result.AddBonus( bonus * task_count);
+        break;
       default:
         assert(false);  // Should not get here!
         break;

Modified: development/source/main/cEnvironment.h
===================================================================
--- development/source/main/cEnvironment.h	2006-04-08 05:56:08 UTC (rev 601)
+++ development/source/main/cEnvironment.h	2006-04-08 13:28:45 UTC (rev 602)
@@ -74,7 +74,7 @@
 
   bool TestRequisites(const tList<cReactionRequisite>& req_list, int task_count, const tArray<int>& reaction_count) const;
   void DoProcesses(cAvidaContext& ctx, const tList<cReactionProcess>& process_list, const tArray<double>& resource_count,
-                   const double task_quality, cReactionResult& result) const;
+                   const double task_quality, const int task_count, cReactionResult& result) const;
 
   cEnvironment(); // @not_implemented
   cEnvironment(const cEnvironment&); // @not_implemented

Modified: development/source/main/nReaction.h
===================================================================
--- development/source/main/nReaction.h	2006-04-08 05:56:08 UTC (rev 601)
+++ development/source/main/nReaction.h	2006-04-08 13:28:45 UTC (rev 602)
@@ -14,7 +14,8 @@
   enum {
     PROCTYPE_ADD = 0,
     PROCTYPE_MULT,
-    PROCTYPE_POW
+    PROCTYPE_POW,
+    PROCTYPE_LIN
   };
 }
 




More information about the Avida-cvs mailing list