CILib Changes

Release History

Version Date Description
0.7 TBA
0.6.12 2008-12-13 Bee's Algorithm added
0.6.11 2008-05-07 Long over due release
0.6.10 2007-11-30 Major refactoring and bug fix release
0.6.9 2007-10-12 NichePSO update and general maintenence release
0.6.8 2007-09-27 Entity changes. Feature release with additional bug fixes
0.6.6 2007-03-18 Feature release and bug fixes

Release 0.7 - TBA

Type Changes By
update Removed the dependency on the exec plugin for the simulator scripts. Fixes o. gpampara
update Migrated to SLF4j. Removed Log4j. Fixes 2491662. gpamapra
fix Added the functionality to maintain the state of measurements. Fixes 2283761. gpampara
fix Applied patch to correct the MersenneTwister. Fixes 2444407. Thanks to Nelis Franken. gpampara
fix Simplified the hierarchy for PopulationBasedAlgorithms. Fixes 2489514. gpampara

Release 0.6.12 - 2008-12-13

Type Changes By
fix Entity objects return the correct type of Comparator they need. Fixes 2149357. gpampara
fix Corrected a sequencing issue. Coevolutionary algorithms should behave as expected. Fixes 2112021. gpampara
fix Implemented correct equals() and hashCode() methods for stateful objects. Fixes 2000258. gpampara
update Fixed a logic error in SelectiveContributionUpdateStrategy. Fixes 2059318. Thanks to Killearnith. gpampara
fix Scripts created during the build process. Fixes 2061774. gpampara
fix Added a new creation method that returns a Fitness object with the provided value. Fixes 2046047. gpampara
fix Pulled the FitnessCalculator up into AbstractEntity. Fixes 2046158. gpampara
fix Allow for measurements to create the directory structure as needed. Fixes 2007991. gpampara
update Ability to set the manner in which PRNG's seed values are determined. Fixes 1963749. gpampara
add Added the DataSetManager class to simplify working with data sets. Fixes 1969423. heatzync
add Added the ClusteringUtils class to simplify clustering. Fixes 1969420. heatzync
add Added the KMeansAlgorithm. Fixes 1969412. heatzync
add Added the ClusteringProblem class to simplify setting up a clustering problem. Fixes 1969406. heatzync

Release 0.6.11 - 2008-05-07

Type Changes By
fix Refactored the NeighbourhoodBestUpdateStrategy references into AbstractEntity from AbstractParticle to correct the introduced Topology.getBestEntity() issue. Fixes 1931903. gpampara
update Refactored the DE implememtation to cater for the DE/x/y/z notation. Fixes 1921291. gpampara
fix Refactored the CrossoverStrategy and MutationStrategy classes to make the actions they perform simpler. Fixes 1921298. gpampara
update Refactored the Topology classes to determine the best entity from the population. Algorithm classes no longer provide that accessor method. Fixes 1832365. gpampara
update Added the initial StatsUtil class. Will be refactored over time. Fixes 1835762. gpampara
fix Refactored the container classes so that Graph is not a top level interface. Fixes 1891781. gpampara
update Graphs should maintain edge cost and weight information. Fixes 1891787. gpampara
update Cleaned up some redundant object usage. Fixes 1858834. Thanks to Wiehann Matthysen. gpampara
fix Added a utilty class to provide addition functionality for Vectors. Fixes 1845509. Thanks to heatzync. gpampara

Release 0.6.10 - 2007-11-30

Type Changes By
fix Cloning of generic types. Also changes the manner in which other objects handle cloning. Fixes 1837438. gpampara
fix HalkidiVazirgiannisIndex cluster variance calculation. Fixes 1835575. heatzync
remove Remove the GCIterationStrategy and related classes. Fixes 1827723. gpampara
update Refactor the Vector types to be more consistent. Fixes 1827386. gpampara
fix TopologyVisitor uses the outer algorithm in MultiPopulationBasedAlgorithms. Fixes 1828379. gpampara
update Refactor Clustering index functions into different package. Fixes 1829410. heatzync

Release 0.6.9 - 2007-10-12

Type Changes By
add Implemented a stopping condition that is based on a population's diversity: stoppingcondition.MinimumDiversity. heatzync
update Updates to RotatedFunctionDecorator. Specifies whether or not to recreate the rotation matrix based on a ControlParameter. Thanks to solorunda. gpampara
update Merged the NichePSO code into the source tree. Initial commit - expect some changes. gpampara
update Log4J related updates. gpampara
Removed the redundant RotatedFunction. gpampara
update Refactored the PopulationBasedAlgorithms to have them all reference a PopulationInitialisationStrategy. The PopulationInitialisationStrategy is now the only object that is knowledgeable of the number of Entity objects. gpampara
update Refactored the VelocityUpdateStrategy classes. The updateControlParameters() method now accepts a particle. All Particles new implement a updateControlParameters() method. gpampara
update Renamed the ControlParameterUpdateStrategies to ControlParameter classes. Renamed the package name as well and refactored associated classes. Should be simpler now :) gpampara

Release 0.6.8 - 2007-09-27

Type Changes By
update Corrected many issues regarding generics. The code should be cleaner and have less type warnings. gpampara
update Converted the function shifting into a function decorator and added the ability to rotate functions. gpampara
add Implemented a BoundedPositionUpdateStrategy to adjust Particle behaviour at search space boundaries. Six different boundary constraint strategies have been added: BouncingBoundaryConstraintStrategy, ClampingBoundaryConstraintStrategy, DeflectionBoundaryConstraintStrategy, NearestBoundaryConstraintStrategy, PeriodicBoundaryConstraintStrategy and RandomBoundaryConstraintStrategy heatzync
update Fixed some potential bugs in ControlParameterUpdateStrategy code. gpampara
add Added the new structure for the diversity measuement. gpampara
update Corrected the manner in which the structure of the PSO iteration strategies are defined (ASynchrounsousIterationStrategy and SynchronousIterationStrategy). The code should be more clear. gpampara
update Improved the implementation and usage of the problem.dataset.AssociatedPairDataSetBuilder and functions.continuous.ClusteringFitnessFunction hierarchies. heatzync
add functions.continuous.ScatterSeperationRatio.java is a generalisation for validity indices that make use of the intra-cluster (within-cluster) scatter and inter-cluster (between-cluster) seperation values. These include the Davies-Bouldin index as well as the Dunn indices. heatzync
add Two of the Generalised Dunn Indices have been implemented: functions.continuous.DunnIndex33.java and functions.continuous.DunnIndex53.java. functions.continuous.GeneralisedDunnIndex.java was added to help with the implementation. heatzync
add functions.continuous.MaulikBandyopadhyayIndex.java: a new Clustering Validity Index functions.continuous.VeenmanReindersBackerIndex.java: a new Clustering Validity Index heatzync
functions.continuous.HalkidiVazirgiannisIndex.java was previously called functions.continuous.ScatterDensityIndex.java. heatzync
problem.dataset.CachingDataSetBuilder.java was previously called problem.dataset.CachedDistanceDataSetBuilder.java. heatzync
add measurement.single.NumberOfClustersFormed.java is a new measurement that measures the number of clusters that are formed by the best solution of the current iteration. heatzync
update Updated and re-implemented unit tests. heatzync
remove Removed functions.continuous.QuantisationErrorTest.java, because its functionality is tested inside functions.continuous.ClusteringFitnessFunctionTest.java. heatzync
add measurement.single.GenericFunctionMeasurement.java: A measurement that takes any function (you have to use the .setFunction() method) and returns the value (or fitness) of that function. This class was created so that it is possible to make use of any of the existing functions in the "functions" package without the need to actually optimise that function, i.e. without using it as a fitness function. heatzync
add pso.iterationstrategies.PerElementReinitialisation.java: A boundary constraint that only reinitialises those components of the Vector (inside the Entity) that have move outside of the bounds, as opposed to reinitialising the entire Entity as in the case of the ReinitialisationBoundary class. heatzync
update Refactored a few classes. Corrected some typos. Added some more fitness functions for intra-cluster measurements. heatzync
add pso.iterationstrategies.BouncingPositionUpdateStrategy.java: Instead of making use of boundary constraints that reinitialise entire Particles (or components thereof), this class is a proactive approach to prevent the Particles from moving outside of the domain. Before moving a Particle to it's new location, this position update strategy first checks to see whether the Particle will be outside of the domain. If not, the Particle is moved. If one of the components of a Particle will be outside of the domain, it is placed very close to the boundary of the domain (but still inside) and the Particle's velocity for that component is inverted (multiplied by -1), effectively making the Particle bounce of the sides of the domain. heatzync
update Added a reference to the Problem from within the DataSetBuilder. heatzync
update Some classes used Double.MIN_VALUE incorrectly. Double.MIN_VALUE is the smallest double (that can be represented in Java) that is greater than 0.0. The smallest double is actually -Double.MAX_VALUE. heatzync
add Added the revised Entity heirarchy. This effectively allows for dynamic properties to be associated with all Entity objects. The main driver for the change was the need for extra information with regards to coevolution changes that will come into CILib shortly. Entity implementations such as Particle, Individual and the like now share a datastructure to store their properties within. gpampara
add Added the new classes to the Type system. This change effectively enables the Entity hierarchy change by moving the container classes such as Tree into the Type system so that they can be used within Entities. A further modification was the notion that all Trees, Sets and Vectors are essentially special cases of Grpahs. This now means that all container types extend from Graph interface. The old container code will remain until all the functionality has been ported to the new packages. gpampara
update Refactored some code and made some methods generic. Cleaned up some comments and mainly made sure the tree is currently in a sane state. gpampara
update Renamed a few methods to make the intention of the methods more clear. gpampara
update Changed the Type system hierarchy by pushing the isInsideBounds() method up into the Type class. This change simplified the DomainParser code. gpampara
remove Removed the need for a user defined exception class, as the description is the main need and not the new class. gpampara

Release 0.6.6 - 2007-03-18

Type Changes By
add Added support to define functions within the XML specification file or programatically, having the Expression Tree then created and evaluated. ExpressionFunction defines this functionality and relies on the library JEP (http://jep.sourceforge.net) gpampara
add Added the new operator system for algorithms using Entities. Main benefactor at the moment is the EC framework. gpampara
add Added support to have all ContinuousFunction classes have the ability to define relative X-axis and Y-axis shifts. Functions are no longer only defined to have their reference point at the origin. apengelbrecht
update Added the new changes page to the Maven build prcess to keep track of the changes made within CILib. Also updated some documentation. gpampara