Sure. But instead of doing that, why not just subclass the problem in question and substitute an eval which does:
modify the individual
>>I subclass the problem and call its evaluate(..) method inside the evalPopChunk(..) of my customized evaluator. Is it not the same as you suggested above?
>>Another query: In this case, the problem.evaluate(..) does nothing but some checking and sets ind.evaluated = false because I am waiting for the evaluation data (ie. fitness) in my custom evaluator. It takes time to get the fitness. So, what I do is to wait and as soon as I get any fitness data, I counter check the hash of sending genotype vs receiving genotype that is already evaluated. If they match, then I set the fitness in evaluator using setFitness(...) method. Then do ind.evaluated = true.
So, my question is : If I perform some work ( eg. fitness sharing ) on the fitness before calling setFitness(), then I set the updated fitness using setFitness() do I need to do some extra work on breeding/selection or post statistics? More specifically, is the updated fitness contribute in the selection process of breeding pipeline? Currently, I do fitness sharing before calling setFitness() but the data are not convincing even the ECJ stdout outputs for best fitness does not matches the per generational output.
Thanks for you time