------------------------------------------------------------------------------- -- CHANGELOG -- ------------------------------------------------------------------------------- Version 0.3.2 (06-10-2002) : -------------------------- - changed Log and EALogLayout to fit Log4J 1.2 changes - fix in ExtendedLineIntegerRecombination: number of required chromosomes was wrong - added new constructors in GeneticOperator - added setName() and setDescription in GeneticOperator - implemented a single-thread mode in AbstractAlgorithm - added class FlowGraph - added class FlowEdge - added class FlowVertex - added abstract methods to FlowElement: activate() and canBeActivated() - implemented abstract methods in subclasses of FlowElement - several cosmetic changes (info and warning messages) Version 0.3.1 (03-25-2002) : -------------------------- - added several methods in IndividualSink interface - updated GenericSink and XMLSink to match new interface - removed AlgorithmProcessingException - added new constructor in all exception classes to be able to log stack traces - added the ability to log exception stack traces in EALogLayout, can be turned off via option - some code cleaup in Log class Version 0.3 (03-12-2002) : -------------------------- - removed class ConditionalThread - removed class Controller - removed class GateThread - removed class MergeStream - removed class NotificationThread - removed class SingleLoopController - removed class SingleThread - removed class SinkThread - removed class SourceThread - removed class SplitStream - removed class ThreadController - removed class ThreadOperator - removed class ThreadSynchronization - removed class Trace - removed deprecated method calls depending on Trace - IndividualMutation : default mutation propability is read from config file - ChromosomeMutation : default mutation propability is read from config file - Configuration : access to default system values is now possible - GeneticOperator : added getAttributePath() - AbstractAlgorithm : made run/info commands configurable - removed interface MergeStreamProcessor - removed interface SplitStreamProcessor - removed interface MultiStreamProcessor - deprecated interface SingleStreamProcessor - added process( IndividualStream ) to StreamProcessor interface - all stream processors implement StreamProcessor interface instead of SingleStreamProcessor - FileProcessor : added configuration file support - ASCIIFileProcessor : added configuration file support - BinaryFileProcessor : added configuration file support - XMLFileProcessor : added configuration file support - removed XMLPrintProcessor : superceded by XMLFileProcessor - PrintProcessor : now extends AbstractPrintProcessor, removed file writing support - added AppendingASCIIPrintProcessor - added NotSupportedException - added NotImplementedException - chromosome classes are defined by interface Chromosome now - changed all chromosome classes to match new interface - added class AbstractChromosome - added dedicated chromosome classes for int, float, long, double arrays - added several classes for integer array mutation (without reflection) - added several classes for integer array recombination (without reflection) - ASCIIFileProcessor : added flag surpressRepresentation - added handling of default values in Configuration - added get/setChromosomeSet in Chromosome and AbstractChromosome - changed ChromosomeSet from class to interface - added AbstractChromosomeSet - added ConstantChromosomeSet (relying on an array, is probably faster) - added VariableChromosomeSet (contains old ChromosomeSet functionality) - Individual : changed constructor because of chromosome set interface - updated classes in package ini because of chromosome set change - IndividualRecombination update because of chromosome set change - added class IndividualCollection - added class IndividualIterator - added class IndividualArrayList - added class IndividualLinkedList - added class IndividualVector - changed IndividualStream to IndividualCollection in all classes - added Log4JProcessor - EALogLayout is able to surpress thread information by configuration key - added several more exceptions and the appropriate handling of them - fixed method() extract() in ResultExtractor: was not public - added separate method the updating result extractor in AbstractAlgorithm - added EARuntimeException - NotSupportedException and NotImplementedException extend EARuntimeException - removed filter( Individual ) from IndividualFilter interface - interface IndividualGate completely changed - population classes completely rewritten to match new IndividualGate interface - abstract method recombine( ArrayChromosome[] ) removed in appropriate Recombination operators - abstract method recombine( ListChromosome[] ) removed in appropriate Recombination operators - removed Termination class and its subclasses Version 0.2.4 (01-03-2002) : ---------------------------- - replaced equalSet by hasEqualSet in Individual - added getFilter() in AbstractPopulation - fixed bug in ArrayChromosome : equality check did not work correctly - fixed bug in ConditionalRouter : stream condition was not set in constructor - added class ModuloCondition - Configuration completely rewritten, now supports hierarchical preferences based on central XML file - changed messages in CommandLineParserException - fixed bugs in CommandLineParser : too many to mention - configuration tree support in CommandLineParser - configuration tree support in Log - configuration tree support ion AbstractAlgorithm - added new logging categories to Log - replaced old logging category in MessageBroker Version 0.2.3.1 (12-11-2001) : ------------------------------ - added new constructor in IndividualMutation - removed deprecated methods from IndividualMutation - fixed bug in tournament selection operators, wrong winners were appended to output stream Version 0.2.3 (12-10-2001) : ---------------------------- - fix: AbstractPopulation constructor with filter did not set the gate variable in the filter - added interface IndividualConduit - added class StreamConduit - added class DefaultIndividualConduit - conduits are supported in AlgorithmChecker now - conduits are supported in FlowElementFactory now - compound score can differentiate between weak and strong dominance - fix in AlgorithmChecker : conduits were checked but no information was printed - fix in ScoreEvaluation : score was not appended to individuals - added class NullConnector as work-around for conduit-merger connection bug - added size() in CompoundScore - added FloatInitialization - fix in DefaultFitness : comparison between equals value returned 1 - deprecated constructor in DefaultIndividualComparator() - added class IndividualScoreComparator - added class IndividualFitnessComparator - added class ReverseFitnessComparator - process() and select() methods in Selection now throw exceptions - in TournamentSelection an IndividualComparator can be set now - added class FitnessTournamentSelection for convenience - added class ScoreTournamentSelection for convenience Version 0.2.2.1 (11-27-2001) : ------------------------------ - fixed possible endless loop in AbstractFork, AbstractMerger and AbstractConduit causing an OutOfMemoryError Version 0.2.2 (11-26-2001) : ---------------------------- - added class DelayElement - added class RandomDelayElement - added class RandomWordInitialization - added example for use of delay elements - added interface IndividualCombiner - added class StreamCombiner - added class IndividualCombiner - added support for generation of stream combiners in FlowElementFactory - added example for use of combiner element - added IntegerInitialization - CompoundScore now has a constructor without arguments - Score is now serializable - Fitness is now serializable - ScoreComparator is now serializable - Chromosome is now serializable - ChromosomeSet is now serializable - IndividualStream is now serializable - ArrayStream is now serializable - ListStream is now serializable - VectorStream is now serializable - Individual is now serializable - CompoundScore now has toString() method - added AbstractPrintProcessor - added FileProcessor - added BinaryFileProcessor - added XMLFileProcessor - interface IndividualGate has now toArray() method - removed useless methods getVector() and getArray() from AbstractPopulation - AbstractPopulation : new constructor added, individual comparator removed - GenericPopulation : added new constructor - SortedPopulation : added new constructor Version 0.2.1 (11-20-2001) : ---------------------------- - added class CompoundScore - class Initialization moved to package mss.ea.ini + some code cleanup in class - corrected import of class Initialization in examples - added new constructor in IntegerArrayInitialization - added new constructor in IntegerSequenceInitialization - added class RandomStringInitialization - added interface IndividualSplitter - added class StreamMultiCaster - added class CloningSplitter - added class DistributingSplitter - added class ReplicatingSplitter - added support for generation of stream multi casters in FlowElementFactory - some API documentation updates Version 0.2 (11-13-2001) : -------------------------- - ThreadController now makes use of a command line parser - added getID() in GeneticOperator changes incorporated from xthread branch : - added class AbstractAlgorithm - added class AbstractConduit - added class AbstractConnector - added class AbstractFork - added class AbstractMerger - added class AbstractMessage - added class AbstractSink - added class AbstractSource - added class AlgorithmChecker - added class CollectionMessage - added class CommandLineParser - added class CommandLineParserException - added class ConditionalRouter - added class CountingMutex - added class DefaultIndividualCollector - added class DefaultResultExtractor - added class EAMessageTypes - added class ElementState - added class EventNotifier - added class FlowElement - added class FlowElementFactory - added class Message - added class MessageBroker - added class MessageChannel - added class MessageRecipient - added class MessageType - added class MultiConditionalRouter - added class Mutex - added class Notification - added class ObjectMessage - added class ResultExtractor - added class SinkOverflowException - added class StreamCollector - added class StreamConnector - added class StreamGate - added class StreamRouter - added class StreamSink - added class StreamSource - added class Sync - added interface IndividualCollector - added interface IndividualFilter - added interface IndividualRouter - interface IndividualSink changed: now throws a SinkOverflowException - interface IndividualGate does not extend Source/Sink any longer - EAException passes output to debug target - SinkOverflowException thown in GenericSink - SinkOverflowException thown in XMLSink - AbstractPopulation cleaned up, some methods added and some deprecated - GenericPopulation is now based on ArrayList - SortedPopulation cleaned up - SortedSteadyPopulation cleaned up - changed toString() in GeneticOperator - changed examples to new algorithm creation scheme - DiscreteReinsertion now implements the IndividualFilter interface - EliteReinsertion now implements the IndividualFilter interface - EliteReinsertion2 now implements the IndividualFilter interface - PureReinsertion now implements the IndividualFilter interface - Reinsertion now implements the IndividualFilter interface - UniformReinsertion now implements the IndividualFilter interface - ConditionalThread has been deprecated - Controller has been deprecated - GateThread has been deprecated - MergeStream has been deprecated - NotificationThread has been deprecated - SingleLoopController has been deprecated - SingleThread has been deprecated - SinkThread has been deprecated - SourceThread has been deprecated - SplitStream has been deprecated - ThreadController has been deprecated - ThreadOperator has been deprecated - ThreadSynchronization has been deprecated Version 0.1.1 (09-13-2001) : ---------------------------- - added ShiftArrayMutation operator - added SubstitutionArrayMutation operator - added hasFitness() and hasScore() in class Individual - changed behaviour of individual comparison, compareTo() is now able to handle null-valued scores - deprecated the member variable population in class Individual - added some test cases for class Individual - bug fix: processing of individual streams was skipped in ScoreEvaluation and FitnessScaling sometimes because of missing reset of stream pointer before processing - added class Version, which provides version information Version 0.1 (08-28-2001) : -------------------------- - initial public release