On Mar 21, 2007, at 7:04 AM, Alberto Cuesta wrote: > Hello all, > > why ec.Evolve setups some parameters of the EvolutionState?, namely: Good question. Some answers: > evolutionState.parameters It's not easy to load the parameters parameter from a Parameter Database which is defined by the parameters parameter. :-) > evolutionState.output ECJ needs to be able to output messages if it fails in the very earliest loading time. So this has to be preset. > evolutionState.evalthreads > evolutionState.breedthreads These variable determine the number of random number generators, see below. > evolutionState.random > evolutionState.randomSeedOffset This is historical -- there's no particular reason we can't set the random number generators in EvolutionState I think. So I think we can easily get rid of all but evolutionState.parameters and evolutionState.output. Now one problem here is that output and parameters are both things that you'd want to swap out or subclass. One option would be to create an interface for each which you can implement. The simplest option right now is for you to just subclass directly. A problem with the interface mechanism is that Output has some static methods, so it'd probably have to be an abstract class instead. Sean