What's New in the API

This section documents the history of important changes in the API.

Version 0.6.2

Conditions extended. Upon request the terminate-package has been extended. The interface of IMultiCondition has been defined and two classes AndCondition and OrCondition implementing this interface have been added. This allows arbitrary logical relations. In addition TrueCondition and FalseCondition have been added which evaluate always to true resp. false.

Version 0.6.1

Nothing visible. This version only contains internal fixes.

Version 0.6.0

Interface of IScore changed. The method getValue() has been renamed to getValueAsObject(). In addition the score classes have now methods getValue() which allows to create scores from the GUI when needed (i.e. in termination conditions).
Serious Fix for Algorithm Loading. A serious error has been corrected, that prevented algorithms from being loaded when using properties that were dependent from each other (and were not loaded in the correct order). The thrown property change vetoes led to an error.
Checks for valid values added. In several operator classes more validity checks have been added in order to make it harder to create operators with invalid parameters.
Metadata support. An algorithm has now an attached metadata store to store data not directly related to the algorithm structure, such as the UI data. Don't take that metadata store as final -- it will probably be changed in the future.
Property Change Events. Algorithm elements now fire property changes upon metadata changes or structural changes. The event support is preliminary and will be extended in the future.
Evaluators Some more evaluators have been added, i.e. for the Rosenbrock, Rastrigin and Griewank functions. These evaluators support two different genotypes (float array and double array).
Examples removed The example classes have been removed and were added to their own Eclipse plugin. Algorithms and Java files are available for separate download.

Version 0.5.3

Nothing. Changes only affect UI.

Version 0.5.2

Nothing that is visible to the user.

Version 0.5.1

Save format for algorithms has changed. The XML format in which algorithms are saved has been changed to be able to handle arrays (and arrays of arrays) properly. The classes AlgorithmBuilder and AlgorithmWriter will handle this change automatically. The builder will import old files just like before, however the writer will only create files in the newer format.
Interface IAlgorithmRunner renamed to IRunner Was done for consistency reasons. Should not affect users.

Version 0.5.0

Descriptors in separate files There's no need to enter descriptor information in the constructor of an operator. This information is now held in separate XML files. These files can be created via the GUI now.
Evaluators moved The OneMax and the Rastrigin evaluator have been moved to the package org.evolvica.core.eval.
ExtendedBitSet replaced The ExtendedBitSet class has been replaced by BitVector.
Serialization All operators and genotypes are now serializable. Individuals collections should now be saveable correctly.

Version 0.4.0

General In the first public version 0.4.0 everything's new!