Print

Print


prob is an auxillary parameter for all pipelines and selection  
methods.  It's used mostly by MultiBreedingPipeline to decide which  
of several auxillary pipelines to select.  For example, if a  
MultiBreedingPipeline has pipelines X and Y, and X has a prob of 0.25  
and Y has a prob of 0.75, then when MultiBreedingPipeline is pulsed,  
it will pulse pipeline X  25% of the time, else Y.  The parameters  
were stored in the subsidiary pipelines, rather than in  
MultiBreedingPipeline, because a long time ago (10 years maybe) I  
imagined that there would be a variety of probabilistic-style  
pipelines and I didn't want to repeat myself.

This is not well documented; I'll look into adding some documentation  
to BreedingSource and MultiBreedingPipeline.

Sean

On May 20, 2008, at 7:09 PM, Peter Drake wrote:

> I've got this line in my params file that I don't understand:
>
> breed.reproduce.prob = 0.1
>
> I did a search through all of the ECJ code, and the only appearance  
> of the base "breed.reproduce" is in ec.breed.ReproductionPipeline.  
> The trouble is, there's no parameter "prob" for this class.
>
> Am I missing something, or is this just a case where the  
> documentation has become out of sync with the code?
>
> I'm guessing this is parameter controls the likelihood of  
> reproducing an individual rather than producing a new one through  
> crossover or mutation, but guessing makes me very nervous.
>
> Some context, in case it helps:
>
> breed.multibreed.generate-max = false
> breed.multibreed.num-sources = 2
> breed.multibreed.source.0 = ec.gp.koza.CrossoverPipeline
> breed.multibreed.source.1 = ec.breed.ReproductionPipeline
> breed.reproduce.prob = 0.1
> gp.koza.xover.prob = 0.9
>
> (Does the Koza pipeline not include the possibility of reproduction?)
>
> Peter Drake
> http://www.lclark.edu/~drake/
>
>
>