Pipelines are more flexible than you imagine, but they're really an abstraction for EC-style population modification. That's not what you want. You want to create an entire population at a time under a distribution specified by the EDA model. To do this, abandon pipelines entirely, and simply write your own Breeder subclass, EDABreeder (or perhaps a better name, as there are many EDA algorithms) which creates one population from another. That's what we did for PSO, if you look out on CVS you'll see the PSO code. It's very simple, just override the method public Population breedPopulation(EvolutionState state) This should return a revised Population based on the current EvolutionState. It's probably best not to reuse the existing Population located at state.population (in case someone's weird code relies on its existence). You can get a fresh, empty copy with state.population.emptyClone() Sean On Mar 7, 2007, at 5:51 AM, Petr Posik wrote: > Hi, folks. > > I'm new to ECJ, just discovering its basic functionality. Besides, > I work in > the field of EDAs. (For those who are not aware of them: they do > not use > crossover and mutation, rather they fit a probabilistic model to > selected > individuals and create offspring by sampling from that model). > > I understand the idea behind pipelines like this: > I need to create N new individuals. I instruct ECJ to run N times > (or N/2 > times, it depends) e.g. the following pipeline: > 1] For each (or each pair of) offspring, ask the mutation to create > it (them). > 2] Mutation asks crossover to create and individual(s) which it can > mutate. > 3] Crossover asks selection methods to provide parents. > (If I am wrong, pls. correct me.) > > IMHO, to create an EDA in ECJ, I would have to use a huge pipeline > since all > the selected individuals become parents of all the offspring > produced. It > also means that the pipeline would not be called repeatedly, but > only once > per generation. > > Does ECJ allow me to do that? How do I set up such a "pipeline for > population" (as opposed to "pipeline for individuals")? > > Thanks a lot for any suggestions or pointers. > Best regards, > > Petr Posik