Print

Print


On Jul 29, 2011, at 12:15 PM, Roger Worden wrote:

> I'm new to Java and OO but with lots of experience in procedural  
> languages,
> so I'm struggling a bit with the ECJ class libraries. I have  
> constructed an
> evaluator and can see correct results in the genome displayed by the  
> default
> statistics methods. Now I need to customize the final results for  
> reporting,
> output to a file etc. I'd like to customize finalStatistics, and it  
> seems I need to
> customize printFitnessForHumans to get access to the genome so I can
> format it.
>
> Can someone post or point me to some sample code for finalStatistics  
> that
> shows me how to access the current individual (I'm assuming  
> finalStatistics is
> called once per individual), or how to access the whole state from  
> this
> method?

It sounds like what you're really trying to do is write out some  
statistics about your genome.  Fitness objects don't have anything to  
do with this -- instead, the genome is handled in the Individual  
itself.  Different representations of Individuals have different kinds  
of genomes.  For example, FloatVectorIndividual holds a genome  
consisting of an array of floats.

Additionally, finalStatistics is called only once, at the end of an  
evolutionary run.  It's not per-individual.  I presume you're trying  
to report stuff on each Individual in the population say.  In this  
case, you could make a finalStatistics which does this:

	For each subpopulation in the population
		For each individual in the subpopulation
			Cast the individual into the type I'm using
			Grab genome information out of that individual and do stuff with it

Sean