> i am using the *GenerationalEvolutionEngine *with a *TargetFitness
> *(targetFitness
> = 100 and isNatural = true). Then i invoke the *envolve *to the *engine
> *object
> to obtain the fittestCandidate. Then i invoke the method *getFitness *of
> my
> *FitnessEvaluator *passing the object "fittestCandidate" and it return a
> value *less than 100* (this value should be at least 100).
>
> So i add an EvolutionObserver to the engine to log the data. I prints the
> getBestCandidateFitness<
http://watchmaker.uncommons.org/api/org/uncommons/watchmaker/framework/PopulationData.html#getBestCandidateFitness()>()
> and obtain a value of 100 in the last evolution.
>
> The question is why the evolutionEngine is returning an object that have
> a
> fitness less than 100?? Any idea?
To make sure I'm clear what the problem is, the evolution observer says
the fitness is 100 but your fitness evaluator says it is less than 100
when you run it again on the same candidate?
Is your fitness evaluator deterministic? Will it always return the same
value for the same input or is there a random element to it?
You could try using the evolvePopulation method instead. This will return
the entire population, sorted in descending order of fitness, with the
fitness score attached to each individual. This will at least show you
what the evolution engine thinks the fitness scores are and may help to
isolate the problem.
Dan.
--
Daniel Dyer