[Avida-SVN] r3213 - in development: documentation source/analyze source/main

ruppmatt at myxo.css.msu.edu ruppmatt at myxo.css.msu.edu
Fri Apr 17 09:14:14 PDT 2009


Author: ruppmatt
Date: 2009-04-17 12:14:14 -0400 (Fri, 17 Apr 2009)
New Revision: 3213

Modified:
   development/documentation/analyze.html
   development/source/analyze/cAnalyzeGenotype.cc
   development/source/analyze/cAnalyzeGenotype.h
   development/source/main/cPhenPlastGenotype.cc
   development/source/main/cPhenPlastGenotype.h
Log:
Added prob_viable to AnalyzeGenotype's output list.  Changed task_prob.N to prob_task.N for consistency.

Modified: development/documentation/analyze.html
===================================================================
--- development/documentation/analyze.html	2009-04-17 00:00:13 UTC (rev 3212)
+++ development/documentation/analyze.html	2009-04-17 16:14:14 UTC (rev 3213)
@@ -774,7 +774,8 @@
   <td><strong>phen_likely_fitness</strong> (Fitness of the Most Likely Phenotype)</td>
 </tr>
 <tr>
-  <td><strong>task_prob.n</strong> (Probability of task n being performed) </td>
+  <td><strong>prob_task.n</strong> (Probability of task n being performed) </td>
+  <td><strong>prob_viable</strong> (Probability of genotype viability) </td>
 </tr>
 </table>
 </div>

Modified: development/source/analyze/cAnalyzeGenotype.cc
===================================================================
--- development/source/analyze/cAnalyzeGenotype.cc	2009-04-17 00:00:13 UTC (rev 3212)
+++ development/source/analyze/cAnalyzeGenotype.cc	2009-04-17 16:14:14 UTC (rev 3213)
@@ -294,7 +294,9 @@
   ADD_GDATA(double (), "phen_avg_fitness",   "Phen Plast Wtd Avg Fitness",            GetAverageFitness,         SetNULL, 0, 0, 0);
   ADD_GDATA(double (), "phen_likely_freq",   "Freq of Most Likely Phenotype",         GetLikelyFrequency,        SetNULL, 0, 0, 0);
   ADD_GDATA(double (), "phen_likely_fitness","Fitness of Most Likely Phenotype",      GetLikelyFitness,          SetNULL, 0, 0, 0);
+  ADD_GDATA(double (), "prob_viable",        "Probability Viable",                    GetViableProbability,      SetNULL, 0, 0, 0);
   
+  
   // @JEB There is a difference between these two. parent_muts is based on an alignment. mut_steps is based on recorded mutations during run.
   ADD_GDATA(const cString& (), "parent_muts", "Mutations from Parent", GetParentMuts,   SetParentMuts, 0, "(none)", "");
   ADD_GDATA(const cString (), "mut_steps", "Mutation Steps from Parent", GetMutSteps,   SetMutSteps,   0, "", "");
@@ -326,8 +328,8 @@
            ("task", &cAnalyzeGenotype::DescTask, &cAnalyzeGenotype::GetTaskCount, 5));
   dcm->Add("env_input", new tDataEntryOfType<cAnalyzeGenotype, int (int)>
            ("env_input", &cAnalyzeGenotype::DescEnvInput, &cAnalyzeGenotype::GetEnvInput));
-  dcm->Add("task_prob", new tDataEntryOfType<cAnalyzeGenotype, double (int)>
-           ("task_prob", &cAnalyzeGenotype::DescTaskProb, &cAnalyzeGenotype::GetTaskProbability, 5));
+  dcm->Add("prob_task", new tDataEntryOfType<cAnalyzeGenotype, double (int)>
+           ("prob_task", &cAnalyzeGenotype::DescTaskProb, &cAnalyzeGenotype::GetTaskProbability, 5));
   
   
   // The remaining values should actually go in a seperate list called
@@ -578,6 +580,7 @@
   m_phenplast_stats->m_likely_fitness = pp.GetLikelyFitness();
   m_phenplast_stats->m_num_phenotypes = pp.GetNumPhenotypes();
   m_phenplast_stats->m_task_probabilities = pp.GetTaskProbabilities();
+  m_phenplast_stats->m_viable_probability = pp.GetViableProbability();
 }
 
 void cAnalyzeGenotype::CalcLandscape(cAvidaContext& ctx)

Modified: development/source/analyze/cAnalyzeGenotype.h
===================================================================
--- development/source/analyze/cAnalyzeGenotype.h	2009-04-17 00:00:13 UTC (rev 3212)
+++ development/source/analyze/cAnalyzeGenotype.h	2009-04-17 16:14:14 UTC (rev 3213)
@@ -226,6 +226,7 @@
       double  m_likely_frequency;
       double  m_min_fit_frequency;
       double  m_max_fit_frequency;
+      double m_viable_probability;
       tArray<double> m_task_probabilities;
   };
   mutable cAnalyzePhenPlast* m_phenplast_stats;
@@ -390,6 +391,7 @@
   double GetLikelyFrequency()  const { CheckPhenPlast(); return m_phenplast_stats->m_likely_frequency; }
   double GetLikelyFitness()     const { CheckPhenPlast(); return m_phenplast_stats->m_likely_fitness; }
   int    GetNumTrials()         const { CheckPhenPlast(); return m_phenplast_stats->m_recalculate_trials; }
+  double GetViableProbability()  const { CheckPhenPlast(); return m_phenplast_stats->m_viable_probability; }
   double GetTaskProbability(int task_id) const { 
     if (task_id >= m_world->GetEnvironment().GetNumTasks()) return 0.0;
     CheckPhenPlast();

Modified: development/source/main/cPhenPlastGenotype.cc
===================================================================
--- development/source/main/cPhenPlastGenotype.cc	2009-04-17 00:00:13 UTC (rev 3212)
+++ development/source/main/cPhenPlastGenotype.cc	2009-04-17 16:14:14 UTC (rev 3213)
@@ -77,6 +77,7 @@
   m_max_fit_freq    =   0.0;
   m_min_fit_freq    =   0.0;
   m_phenotypic_entropy = 0.0;
+  m_viable_probability = 0.0;
   m_min_fitness     = (*uit)->GetFitness();
   while(uit != m_unique.end()){
     cPlasticPhenotype* this_phen = static_cast<cPlasticPhenotype*>(*uit);
@@ -98,8 +99,9 @@
     m_phenotypic_entropy -= freq * log(freq) / log(2.0);
     
     for (int i = 0; i < num_tasks; i++)
-      m_task_probabilities[i] += freq * ((this_phen->GetLastTaskCount()[i] > 0) ? 1 : 0);
+      m_task_probabilities[i] += (this_phen->GetLastTaskCount()[i] > 0) ? freq : 0;
     
+    m_viable_probability += (this_phen->IsViable() > 0) ? freq : 0;
     ++uit;
   }
   

Modified: development/source/main/cPhenPlastGenotype.h
===================================================================
--- development/source/main/cPhenPlastGenotype.h	2009-04-17 00:00:13 UTC (rev 3212)
+++ development/source/main/cPhenPlastGenotype.h	2009-04-17 16:14:14 UTC (rev 3213)
@@ -82,6 +82,7 @@
     double m_max_fit_freq;
     double m_min_fit_freq;
     double m_min_fitness;
+    double m_viable_probability;
     tArray<double> m_task_probabilities;
     
     
@@ -107,7 +108,7 @@
     const cPlasticPhenotype* GetMostLikelyPhenotype() const;
     const cPlasticPhenotype* GetHighestFitnessPhenotype() const;
     tArray<double> GetTaskProbabilities() const { return m_task_probabilities; }
-    
+    double GetViableProbability() const { return m_viable_probability; }
 };
 
 #endif




More information about the Avida-cvs mailing list