I'm still struggling to figure out how to have my fitness logic output some values to the statistics file, so I can see them in relation to the individual. I don't think I can do it from a statistics hook or from a method on the individual, because the variables are internal to the fitness algorithm. I can see how to find the statisticslog variable, but the fitness object only receives the state, not the parameter base (at least as far as I can see). In the example code, base is passed in to the setup() method, but the fitness method doesn't have a setup() method. I can simply output the variables, but they go to stdout instead of the statistics file, and I'd like it to be near the genome output. What am I missing? Is there some sample code for how to output variables to the statistics log from within the context of a fitness method? On Aug 1, 2011, at 12:41 PM, Sean Luke wrote: > 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