All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ec.breed.README Maven / Gradle / Ivy

Go to download

ECJ, A Java-based Evolutionary Computation Research System. ECJ is a research EC system written in Java. It was designed to be highly flexible, with nearly all classes (and all of their settings) dynamically determined at runtime by a user-provided parameter file. All structures in the system are arranged to be easily modifiable. Even so, the system was designed with an eye toward efficiency. ECJ is developed at George Mason University's ECLab Evolutionary Computation Laboratory. The software has nothing to do with its initials' namesake, Evolutionary Computation Journal. ECJ's sister project is MASON, a multi-agent simulation system which dovetails with ECJ nicely.

The newest version!
This directory contains some simple utility breeding pipelines.  These
pipelines don't make modifications of individuals, so if you're looking
for crossover or mutation etc., you'll need to check in other packages
more specifically designed for your representation.

ec.breed.ReproductionPipeline
	Requests an individual from its sole source pipeline, then
	makes a copy of it and returns the copy.  Largely used in the
	genetic programming package.

ec.breed.MultiBreedingPipeline
	When asked to create one or more children, selects from among
	some N source pipelines attached to it, requests indivdiuals
	from the chosen source, copies them, and returns them.  The
	selection procedure is probabilistic, based on the 'probability'
	values stored in each of the sources (in fact,
	MultiBreedingPipeline is the reason those probability values exist.
	This is historical: we probably should have stored them in
	the MultiBreedingPipeline instead!  Might change in the future.)

ec.breed.ForceBreedingPipeline
	When asked to create some N children, this repeatedly requests from
	its sole source some M<=N children at a time (you specify the M)
	until it gets the N children asked for.  This is useful for various
	minor tricks, such as forcing Crossover to only produce one individual.

ec.breed.BufferedBreedingPipeline
	When asked to create some N children, this makes a large request
	from its sole source to create some M >= N children at a time
	(you specify the M).  It then returns N of these children, storing
	away the other M - N ones.  When asked again to create some more 
	children, it reaches into this storage and provides some of them.
	When the storage is depleted, it creates another M children.  This
	is useful for certain minor tricks: for example, enabling you to cross
	over two individuals, then cross them over *again*.  We'd do that by
	attaching the same BufferedBreedingPipeline (with M=2) to _both_
	sources of a CrossoverPipeline (use the "same" options).  The
	BufferedBreedingPipeline then has another CrossoverPipeline as its
	source.  When the top CrossoverPipeline asked for its first child
	to cross over, the BufferedBreedingPipeline would demand two children
	from the subsidiary CrossoverPipeline (already crossed over), then
	provide one of them.  When the second child is requested, the remaining
	child would be provided. 

ec.breed.GenerationSwitchPipeline
	This pipeline takes two sources.  If the generation is less than G,
	then the pipeline provides copies of individuals from source 0.  Else
	it provides copies of individuals from source 1.




© 2015 - 2025 Weber Informatics LLC | Privacy Policy