JGAP Changelog

What's new in JGAP 3.6.1

Jan 11, 2012
  • Corrected classpath for the example .bat-files
  • Removed obsolete .bat files
  • New class SeededRandomGenerator
  • Added test cases

New in JGAP 3.6 (Jan 11, 2012)

  • Fixex bug in GABreeder.evolve (fitness calculation)
  • GP: made distributed math example working
  • GP: Enhanced TicTacToe example a lot
  • GP: Matrix commands: Enhanced usability
  • GP: optimized crossing over
  • GP: Introduced ISingleNodeValidator for node validation
  • during GP program creation
  • New example for MapGene: MapGeneExample
  • GP: Made class Variable cloneable
  • GPConfiguration: fixed clone (variables now considered)
  • Added Island example for GP, see examples.gp.island
  • GP evolution: Enhanced Garbage Collection to avoid heap
  • overflow
  • GP evolution: warning message for prototype program
  • reusage now only displayed once
  • JGAPClientGP: now considering isEvolutionFinished also
  • for fragmented results
  • Some GP commands: added convenience constructors
  • Some GP commands: added guard to avoid invalid operation
  • GP: Constant: Support for cloning
  • Added guard to ADF.getArity
  • Fibonacci GP example: Beautified output of free memory
  • Speedup of ProgramChromosome.isPossible
  • Enhanced Javadoc
  • Added test cases
  • Fixed some existing test cases

New in JGAP 3.5 (Jan 11, 2012)

  • Added Island Model example
  • Addes symbolic regression a la Eureqa
  • Added simple GP example, (KarubProblem)
  • Updated XStream library to version 1.3.1
  • Added new GP example: examples.gp.SimpleExample
  • Improved monitoring of evolution progress a lot
  • Added monitoring support to all genetic operators
  • Added new interface iUniqueKey, introduced it to
  • IChromosome and Gene
  • Added new class PopulationContext: stores pop. data
  • together with context data (for monitoring)
  • Added new class MultipleIntegerGene
  • Introduced method hashCode() for class Population
  • Support cloning of application data of sample chromosome
  • Avoid stack overflow in DoubleGene.mapValueToWithinBounds
  • Optimized growOrFullNode
  • Fixed PersistableObject.save
  • Fixed bug in grid example for distributed fitness
  • calculation
  • Fixed AbstractSupergene's newGeneInternal
  • Fixed AbstractSupergene's applyMutation
  • Enhanced Chromosome's clone-method
  • Added listeners that fire before and after genetic
  • operators are being applied (see class BreederBase)
  • Fixed AveragingChrossoverOperator: added cloning
  • Fixed GP functions CountMatrix and ResetMatrix
  • Fixed toString of GP function ADF
  • Fixed constructor of NaturalSelector
  • GP function If: Fixed clone, extended functionality
  • GP function IfElse: extended functionality
  • Added JGAPFactory.getUniqueKey
  • Improved class PopulationHistory
  • Added SystemKit.getGUID
  • Added test cases
  • Fixed existing test cases
  • Enhanced Javadoc

New in JGAP 3.4.4 (Jan 11, 2012)

  • Better support for custom Chromosome classes:
  • replaced new Chromosome(..) statement where appropriate
  • Fixed issue in GABreeder with call of BulkFitnessFunction
  • Fixed bug 2562266: cloning now considers fitness value
  • Fixed crossover bug for CompositeGenes
  • Optimized GP program creation runtime (see method
  • ProgramChromosome.selectNode)
  • Introduced evolve(IEvolutionMonitor) to Genotype
  • Added cloning of multi-objective object in Chromosome
  • GPGenotype: added utility functions like verifyChildNodes
  • Added interface IEvolutionMonitor
  • Added monitor implementations: ChainedMonitors,
  • TimedMonitor, FitnessImprovementMonitor
  • Added method execute_boolean to GP terminal Argument
  • Enhanced MinimizingMakeChange audit example
  • Enhanced ADF.toString()
  • Enhanced Javadoc

New in JGAP 3.4.3 (Jan 11, 2012)

  • GPConfiguration: added support for matrices
  • Introduced option for disabling cloning of command genes
  • during creation of GP programs in Programchromosome
  • Added matrix-centric GP commands: WriteToMatrix,
  • ReadFromMatrix, CountMatrix, ReplaceInMatrix, ResetMatrix
  • Added GP commands: Tupel, CharacterProvider
  • Intruduced getCommandType for CommandGenes
  • Added constant CharacterClass to CommandGene
  • Added deleteDirectory to FileKit
  • Added a second deleteFile method to FileKit
  • Noughts and Crosses example: added matrix commands
  • Fixed bug in IfElse.clone. Thanx to szabolcs
  • Fixed clone-bug in LesserThan, GreaterThan, Equals,
  • Push. Thanx to Frank Pape
  • Enhanced Javadoc

New in JGAP 3.4.2 (Jan 11, 2012)

  • Corrected cloning of alleles in Chromosome.clone()
  • Fixed the Salesman problem: use real coordinates instead
  • of city indices only; skip acceptable cost option (did
  • not work); removed shuffle (done with JGAP itself)
  • Fixed about box in GA version of Mona Lisa example,
  • increased polygon number in resource file
  • Added a mathematical example, see package examples.math
  • Fixed the MultiObjective example: fixed MO evaluator and
  • comparator, enhanced output
  • Enhanced Javadoc

New in JGAP 3.4.1 (Jan 11, 2012)

  • Enhanced GP evolution cycle by avoiding dead ends
  • Enhanced the Mona Lisa Painting Problem (GP version)
  • Added constructor for SUbProgram to control minimum and
  • maximum arity
  • Reintroduced mutation in BranchTypingCross
  • Added convenience constructor in Terminal
  • Worked over the multi-objective example
  • Fixed maxTries-bug in GPGenotype.evolve()
  • Fixed Terminal.clone()
  • Fixed Subprogram.clone()
  • Fixed Terminal.applyMutation(..)
  • Fixed bug in BranchTypingCross with option for simple
  • chromosome selection
  • Fixed bug in BranchTypingCross with fallback-decision
  • of crossing over
  • Fixed bug in GP functions Min and Max
  • Enhanced Javadoc

New in JGAP 3.4 (Jan 11, 2012)

  • Added the Mona Lisa painting problem (GA and GP version).
  • Thanx to Yann for his great contribution
  • Enhanced Javadoc
  • Added some unit tests
  • CommandGene, ProgramChromosome: added support for
  • dynamization of the arity of nodes
  • GPConfiguration: added parameter for dynamization of
  • nodes' arities
  • GPPopulation: enhanced creation of new programs
  • ProgramChromosome
  • CommandGene: added new versions of method
  • ensureUniqueness
  • ProgramChromosome, GPProgram: implemented interface
  • IBusinessKey (method getBusinessKey)
  • ProgramChromosome.growOrFullNode: Added logging in case
  • of an ignored problem
  • GP-command terminal now supports primitive class types
  • Made some GP-commands cloneable: True, False, If, IfElse,
  • Equals, Add, Subtract, Multiply, Divide, Exp, Increment,
  • IncrementMemory, IfDyn, Loop, Or, Xor, Not, Multiply3,
  • ReadTerminalIndexed, ReadTerminal, Push, Pop, Pow, Max,
  • Min, RandomGenerator, Modulo, Round, Sine, StoreTerminal,
  • StoreTerminalIndexed, Tangent, TransferMemory, Abs, Add3,
  • Add4, AddAndStore, ArcCosine, ArcSine, ArcTangent,
  • Ceil, ExchangeMemory, Floor, ForLoop, ForXLoop, Log,
  • GreaterThan, LesserThan
  • Enhanced compareTo of several GP commands
  • Added option in BranchTypingCross to plainly select a
  • chromosome
  • Added constructors for GP-command NOP, False, True, And
  • Fixed bug in ForLoop.clone
  • Made GP commands of TicTacToe example cloneable
  • Replaced System.out's in examples with call to logger
  • (but kept them in AntTrailProblem due to formatting
  • issues)
  • Added interface IUniqueCommand for GP commands, optimized
  • GP program creation
  • Add setTournamentSize in TournamentSelector
  • Output of command's class when violating uniqueness
  • constraint via CommandGene.ensureUniqueness
  • GPFitnessFunction: added exception logging
  • Made inner class TournamentSelectorConfigurable of
  • org.jgap.impl.TournamentSelector serializable
  • Simplified GP class IncrementMemory by removing an
  • obsolete constructor
  • GPProgram: extracted statement into new method
  • putToCache, removed two todos
  • GPTestCase: added method getRandomGenerator

New in JGAP 3.3.4 (Jan 11, 2012)

  • Extended GP documentation a lot
  • Added 12 new GP functions
  • Improved error handling in JGAPClientGP
  • Fittest individual is always preserved in GP evolution
  • Strongly Improved functionality of grid computing
  • Added new classes XStreamPassThruConverter and
  • JGAPGPXStream for easing XStream usage
  • Enhanced interface IGridConfigurationGP
  • Added a new GP-command, Add4 (addition of 4 numbers)
  • Added FitnessAgeValueComparator to NaturalSelector
  • Added painted desert example (package examples.gp)
  • Added SystemKit.printHelp(..)
  • Enhanced interface IGridClientMediator and implementing
  • class GridClientMediator
  • FileKit: added some service methods
  • GridKit: added method writeTextFile
  • Added default constructor to GP classes (for dynamic
  • instantiation)
  • Introduced DefaultClientFeedback
  • New class DefaultClientFeedback
  • New class ResultData
  • New class ResultVerification
  • corrected AgeFitnessValueComparator in NaturalSelector,
  • thanx to Eran for pointing that out
  • Replaced AgeFitnessValueComparator with
  • FitnessAgeValueComparator in BestChrom.Selector, thanx to
  • Eran
  • Optimized UniqueRandomGenerator.nextInt()
  • Fixed bug in NumberKit.niceDecimalNumber
  • Fixed bug in GP terminal False
  • Fixed bug in ColtRandomGenerator.nextInt()
  • Improved Javadoc
  • Added test cases

New in JGAP 3.3.3 (Jan 11, 2012)

  • 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