[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