3.3.3
-----------------------------------------------------------
* Simplified the MinimizingMakeChange example
* Added new class DummyGridClientMediator
* Added new class MessageContext
* Added new class BasicContext
* Added new class PersistableObject
* Added new base class NaturalSelectorExt
* Added new class DateKit
* Added default constructor for class NaturalSelector
* Did a lot of architectural improvements in JGAPClientGP
* Added a bunch of attributes to JGAPResultGP
* Added a bunch of attributes to JGAPRequestGP
* JGAPWorkerGP: measure duration of work
* Added methods to IGridClientMediator
* Considered age in BestChromosomesSelector
* Inherited BestChromosomesSelector from NaturalSelectorExt
* Inherited WeightedRouletteSelector from
NaturalSelectorExt
* Inherited TournamentSelector from NaturalSelectorExt
* Inherited ThresholdSelector from NaturalSelectorExt
* Enhanced Configuration.clone()
* Fixed bug in GPConfiguration.clone()
* Fixed bug in class MathProblem, avoiding evolution
* Fixed bug in GPPopulation.determineFittestProgram()
* GPConfiguration: added method setFitnessEvaluator
* Improved GP TournamentSelector
* Introduced new class StaticPopulationCreator
* GPProgramBase: Replaced -1 with constant
* GPPopulation: added methods setGPPrograms and
copyGPPrograms
* GPFitnessFunction: caught exception in fitness
determination that could result from ensureUniqueness
* Enhanced conf. settings in CrossoverOperator
* Enhanced conf. settings in DefaultConfiguration
* Refactored GABreeder to better design
* Fixed bug in BreederBase with multiple selectors
* JGAPResultGP: added support for generic data
* MasterInfo: added preset constructor; added username,
GUID
* FileKit: added getTemDir()
* Enhanced Javadoc, fixed spelling errors
* Added some package.html description files
* Added a note about Xerces in lib/readme.txt
3.3.2
-----------------------------------------------------------
* Added new class RangedSwappingMutationOperator, thanx
to Florian
* Added package description to equalDistribution package
* Added method setMutationRate to class MutationOperator
* Fixed bug in GABreeder with preservation of fittest,
thanx to Oscar
* Fixed bug in Population with preservation of fittest,
thanx to Francisco
* Enhanced CrossoverOperator: full x-over selected by
default; allow x-over of new age chroms (thanx to Zahir)
* Introduced trove maps to CachedFitnessFunction
* Enhanced CachedFitnessFunction, thanx to Tobias
* Added new unit tests
* Added one-file PDF documentation, thanx to Denis
* Equipped MapGene and SetGene with fast trove4j maps
* Made all tests for MapGene and SetGene pass
* Enhanced Javadoc, fixed spelling errors
3.3.1
-----------------------------------------------------------
* Introduced mutation of Genetic Programming commands
* Utilized XStream library for serialization issues
* Utilized trove4J: fast and consistent map replacement
* Integrated Robocode 1.5 with JGAP
* Added cloning capabilities to many RobocodeJGAP commands
* Fitness value of original chromosome is set to clone when
cloning the chromosome
* Enabled cloning of application data in genes
* Moved method niceMemory from GPGenotype to SystemKit
* Made class IComplexCommand serializable
* Added execute_object() to ForLoop
* Fixed output of generation number in GPGenotype.evolve()
* Briefer log messages in GPGenotype
* Added default constructor to GPFitnessFunction
* Renamed all auxiliary test classes from xxxForTest to
xxxForTesting
* Fixed Maven pom file (thanx to Fabian)
* Enhanced Genotype tests to check for unique chromosomes
3.3
-----------------------------------------------------------
* Integrated Robocode 1.4.8 with JGAP
* Added persistent representations of GPPopulation,
GPProgram, ProgramChromosome and CommandGene
* Enhanced interface IProgramCreator
* GPProgram: added a growOrFull method for initializing
programs with given chromosomes
* CommandGene: added service method ensureUniqueness
* Now infinity is not accepted as a fitness value
* New method getAssignableFromClass in BaseGPChromosome
* New interface IComplexCommand for declaring GP commands
as complex
* Enhanced DefaultGPFitnessEvaluator: capable of handling
IllegalStateException's (for wrong programs)
* Enhanced GPProgram: capable of handling
IllegalStateException's (for wrong programs)
* Enhanced GPGenotype.outputSOlution()
* Fixed serious bug with GP mutation of functions
* Fixed bug with GP evolution (probability fix)
* Fixed Java 6 bug with MathProblem
* Fixed bug in GPProblem.createTree
* Fixed bug in DynamicMutationExample
* Enhanced logging of GP information
* Enhanced Javadoc
* Added some unit tests
3.2.2
-----------------------------------------------------------
* Enhanced GP evolution: prototype program always
recognized in first evolution round
* Added IPopulationCreator and DefaultPopulationCreator:
allow for presetting the GP population at start-up
* Added IProgramCreator and DefaultProgramCreator: allow for
sophisticated custom initialization of GP programs
(IGPProgram)
* Added convenient constructor to ProgramChromosome
* Chromosome can be configured to always calculate fitness
value (instead of caching only)
* Added getGenes() to class CompositeGene
* Added some few unit tests
* Added missing Javadoc, enhanced Javadoc
* Preset keepPopulationSize to true instead of false
* Fixed two bugs in MultiObjectiveExample
* Fixed small bugs in Configuration with locking null
valued properties
3.2.1
-----------------------------------------------------------
* Made Robocode example work with newest Robocode version
* Enhanced Robocode example a lot
* Added Maven pom file
* Added custom-initialization mechanism for GP
* Introduced log4j
* Fixed bug with allTimeBest and cloning (see bug 1744077)
* Made INodeValidator serializable
* Enhanced IGPChromosome by method getFunctionSet()
* Added Java command version to NOP
* Enhanced Javadoc a lot
* Fixed bug with GABreeder.evolution (bug 1748528)
* Added two utility functions to SystemKit
* Fixed some few Javadocs
* Improved Chromosome.hashCode()
* Added some few unit tests
3.2
-----------------------------------------------------------
* Ported JGAP from Java 1.4 to Java 5
* Enhanced architecture BaseChromosome, Chromosome a lot
* Introduced breeder (interface IBreeder, base class
BreederBase, class GABreeder) to simplify evolution
outside/without Genotype --> grid
* Enhanced grid logic a lot
* Enhanced GP program generation a lot (a low "max nodes"
parameter does not lead to program abortion any more;
auto-consider NOP if necessary for creating valid
programs...)
* Enhanced evolution loop
* Improved speed of UTF-8 encoding
* Unified character encoding and decoding
* Introduced CachedFitnessFunction
* Enabled GPConfiguration for grid computing
* Better ADF support in Genetic Programming
* Added GP function ExchangeMemory and others
* Added GP program caching to speedup evolution
* Added GP TournamentSelector (by Javier and Enrique)
* Added complex Robocode example (thanx to Javier and
Enrique)
* Removed static attribute from get/setGPConfiguration
in class GPGenotype
* Added matrixed memory to class Culture
* Added contains method to class Culture
* Added concrete getName() to functions and terminals
* Added example with distributed fitness computation
* Introduced grid classes IEvolveStrategy and
DefaultEvolveStrategy
* Made IGPProgram cloneable --> please consider when
upgrading your code
* Made WeightedRouletteSelector serializable
* Made BestChromosomesSelector cloneable
* Changed configuration to avoid using unmodifyable
collection for genetic operators (as it is not cloneable)
* Added job-oriented approach (package org.jgap.impl.job)
for grid computing
* Introduced grid classes IWorkerRet