ECJ

Version		Change Log
----------------------------------------------------------------------------
1		Initial version

2		First prerelease, too many additions to mention

3		Second prerelease
		Race condition bug fixed in ec.gp.koza.Crossover
	     	Breeding trees can now be prespecified
		Crossover can throw away the second sibling
		Multiplexer sped up by a factor of 10!  I might do the
			same thing for Parity and Regression if I have time,
			though for Regression it won't make much of a 
			difference -- thanks to Poli and Langdon
		Lots of little additions and tweaks
		GPNode functions increased
		Regression's * operator no longer shortcuts (due to NaN/Inf)
		Documentation fixes
		Fitness.equivalentTo() now is ==, not >=
		ec.util.Version modified slightly
		Individuals can now be written out to streams, not just logs

4		Third prerelease
		Finisher and Exchanger now are told the run result 
			(success/failure) when they're cleaning up
		Protected Log (rlog) in ec.app.regression.func.Log now is:
				(if (= x 0) x (abs (log x)))
			It was incorrectly:
				(if (<= x 0) x (abs (log x)))
		Edge domain added, with basic function classes
		GPNode.readNode() and ERC.readNode() now check to 
			make sure that the character after the read node is 
			whitespace, (, ), or end of string
		GPTree's readTree() method now checks if a line is empty, 
			rather than bombing.  :-)
		Default population size is now 1024
		Koza FULL/GROW/HALF algorithms now ramp properly; before 
			they were fixed to maxDepth rather than ramping 
			between minDepth and maxDepth.
		ECJ now uses the following for its FULL/GROW/HALF algorithm
			parameter defaults:
				GROW:  	min-depth=5, max-depth=5 (Koza standard
					for mutation)
				FULL:	undefined
				HALF:	min-depth=2, max-depth=6 (Koza standard
					for new individuals)
			Unlike Koza, ECJ permits single-terminal trees/subtrees
		Fixed the documentation for FULL/GROW/HALF to describe the
			odd things that Koza and lil-gp do.
		MersenneTwister and MersenneTwisterFast implement the new, 
			official, improved Mersenne Twister seeding algorithm.
		MersenneFastest.c file deleted
		Three Classes Shortened to the 31 char Mac filename limit:
			ParameterClassNotFoundException ->
				ParameterClassLoadException
			FitnessProportionateSelection ->
				FitProportionateSelection
			SteadyStateBreedingSourceForm ->
				SteadyStateBSourceForm
		ec/params and ec/simple/params files now don't have overlapping
			stuff
		ec/gp/params no longer includes ec/multiobjective/params
		ec.gp.koza.KozaShortStatistics now splits up
			postEvaluationStatistics so that you can include
			stuff in an overriding class before a println 
			is issued.