This page contains the version history for the Genetic Algorithms Component Library. The latest patches and updates are available on our Support Page.
Note: THE GACL uses the RiverSoftAVG Common Classes Library. Please see the RCCL Version History for additional details.
-------------------------------------------------------------------
November 19, 2023 Version 6.3
- Updated for RAD Studio 12 Athens Support
- Removed unused result assignation in TRSGPIndividual<T>.SelectNode method
- Added default result = false to TRSCustomGeneticProgramming<T>.DoFairCrossover method
- Removed unused declaration in TRSCustomGeneticProgramming<T>.CreateSizeFairRoulette method
- Added default result = false to TRSCustomGeneticProgramming<T>.DoCrossover method
- Removed unused declaration in TRSCustomGeneticProgramming<T>.DoCrossover method
- Removed unused declaration in TRSCustomGeneticProgramming<T>.DoHoistMutation method
- Assigned return value of overloaded DoPointMutation to result in TRSCustomGeneticProgramming<T>.DoInvert method
- Assigned return value of overloaded DoPointMutation to result in TRSCustomGeneticProgramming<T>.DoPointMutation method
- Assigned DoMutation to result in TRSCustomGeneticProgramming<T>.DoMutate method
- Removed unused declaration in TRSCustomGeneticProgramming<T>.DoMutate method
- Removed unused declaration in TRSCustomGeneticProgramming<T>.DoShrinkMutation method
-------------------------------------------------------------------
July 23, 2023 Version 6.2.1
- Updated for RAD Studio 11.3 Alexandria Support
-------------------------------------------------------------------
September 19, 2021 Version 6.2
- Updated for RAD Studio 11 Alexandria Support
-------------------------------------------------------------------
June 10, 2020 Version 6.1.1
- Updated for RAD Studio 10.4 Sydney Support
-------------------------------------------------------------------
November 25, 2018 Version 6.1
- Updated for RAD Studio 10.3 Rio Support
-------------------------------------------------------------------
January 27, 2018 Version 6.0.2
- Recompiled because of RiverSoftAVG Common Classes Library Changes
-------------------------------------------------------------------
August 13, 2017 Version 6.0.1
- Recompiled for RAD Studio 10.2.1 Tokyo Support
-------------------------------------------------------------------
April 2, 2017 Version 6.0
- Added RAD Studio 10.2 Tokyo Support
- Added Linux Support
-------------------------------------------------------------------
February 20, 2017 Version 5.3.4
- Recompiled because of RiverSoftAVG Common Classes Library Changes
-------------------------------------------------------------------
January 8, 2017 Version 5.3.3
- Recompiled because of RiverSoftAVG Common Classes Library Changes
-------------------------------------------------------------------
November 6, 2016 Version 5.3.2
- Updated unit namespace documentation for GACL units
-------------------------------------------------------------------
October 9, 2016 Version 5.3.1
- Recompiled because of RiverSoftAVG Common Classes Library Changes
-------------------------------------------------------------------
July 24, 2016 Version 5.3
- Reduced size of installer by removing RiverSoftAVG Common Classes Library
- Updated installer to download RiverSoftAVG Common Classes Library as needed
- Updated installer creation procedure to automatically generate
version numbers and be encrypted
-------------------------------------------------------------------
June 5, 2016 Version 5.2.2
- Recompiled because of RiverSoftAVG Common Classes Library Changes
-------------------------------------------------------------------
May 22, 2016 Version 5.2.1
- Recompiled because of RiverSoftAVG Common Classes Library Changes
-------------------------------------------------------------------
April 24, 2016 Version 5.2
- Added RAD Studio 10.1 Berlin Support
- Removed Directory Exists warning from installer
-------------------------------------------------------------------
March 13, 2016 Version 5.1.6
- Fixed Controls being grayed out in Delphi Palette when target was iOS 64-bit
-------------------------------------------------------------------
March 5, 2016 Version 5.1.5
- Recompiled because of RiverSoftAVG Common Classes Library Changes
-------------------------------------------------------------------
February 5, 2016 Version 5.1.4
- Fixed TRSGeneticAlgorithm gene encode/decode as integer
- Recompiled because of RiverSoftAVG Common Classes Library Changes
- Recompiled for Delphi 10 Seattle Update 1
-------------------------------------------------------------------
January 10, 2016 Version 5.1.3
- Recompiled because of RiverSoftAVG Common Classes Library Changes
-------------------------------------------------------------------
December 6, 2015 Version 5.1.2
- Recompiled because of RiverSoftAVG Common Classes Library Changes
- Fixed bug in installer which would not set the library path correctly
for iOS64 in XE8+
-------------------------------------------------------------------
November 16, 2015 Version 5.1.1
- Recompiled because of RiverSoftAVG Common Classes Library Changes
-------------------------------------------------------------------
September 6, 2015 Version 5.1
- Added RAD Studio 10 Seattle Support
-------------------------------------------------------------------
June 14, 2015 Version 5.0.1
- Recompiled because of RiverSoftAVG Common Classes Library Changes
-------------------------------------------------------------------
May 17, 2015 Version 5.0
- Official v5.0 Release
- Fixed regression in TRSCustomGeneticComponent.SelectRoulette method to
correctly find the value in the CumNormFitnesses (it was one off
because the binary search needs to find the value that is less
than or equal to the current midpoint but greater than midpoint-1)
- Fixed regression in TRSCustomGeneticAlgorithm mutation where the
MutationProbability was accidentally used to see if ANY mutation
occurred instead of whether a mutation occurred on a single bit
- Overrode TRSCustomGeneticAlgorithm.Mutate method to ensure
mutation *always* occurs with the genetic algorithms
- Fixed TRSCustomGeneticProgramming<T>.SelectSizeFairNode method to
correctly find the value in the RouletteWheel (it was one off
because the binary search needs to find the value that is less
than or equal to the current midpoint but greater than midpoint-1)
-------------------------------------------------------------------
May 3, 2015 Version 5.0 EEP 2
- Added RAD Studio XE8 Support
- Implemented Size Fair Crossover and Depth Fair Crossover
- Changed calculation of binary search midpoint in TRSCustomGeneticComponent.SelectRoulette
method to avoid overflow
- Changed calculation of binary search midpoint in TRSCustomGeneticProgramming<T>.SelectSizeFairNode
method to avoid overflow
- Added CodeSite Debugging Statements
-------------------------------------------------------------------
February 15, 2015 Version 5.0 EEP 1
- Fixed access violation in TRSCustomGeneticComponent.DoParallelEvolve
method where Index equals end of Population.Count
- Modified TRSCustomGeneticProgrammingExecutor<T>.LoadFromXML(IXMLGPDomainType)
method to only load instructions (and clear out old instructions)
if the XML contains more than 0 instructions
- Added support for USE_OMNIXML compiler flag (defined in RSDefines.inc)
- Added support for USE_ADOM compiler flag (defined in RSDefines.inc)
- Added TRSCustomGeneticProgrammingVariant class, base component for
genetic programming using Variants and unlimited arity instructions
- Added TRSGeneticProgrammingVariant class, published component for
genetic programming using Variants and unlimited arity instructions
- Added TRSCustomGeneticProgrammingVariantExecutor class, base component for
executing evolved genetic programs using Variants
- Added TRSCustomGeneticProgrammingVariantExecutor class, published component for
executing evolved genetic programs using Variants
- Added TRSGPVariantInstruction class, instruction class with Variant
constants and variables
- Added TRSGPVariantInstructions collection class
- Added TRSGPVariantNode class, Variant genetic program tree node (unlimited arity)
- Added TRSGeneticProgrammingVariant component
- Added TRSGeneticProgrammingVariantExecutor component
- Added TGAProbabilityArray type
- Added TGAProbabilityTable type
- Added DEFAULT_ITERATION_LENGTH constant
- Added DEFAULT_ADAPTION_SAMPLE_SIZE constant
- Updated TGAGetHelpEditor for variant genetic programming components
- Added Cart Centering Demo using the TRSGeneticProgrammingVariant component
- Added Mobile Cart Centering Executor Demo
Known Issues
- SizeFairCrossover and DepthFairCrossover TRSCustomGeneticProgramming<T>.BloatStrategy
do not work
-------------------------------------------------------------------
January 31, 2015 Version 5.0 EEP 0
- New base class, TRSCustomGeneticComponent, which contains the common code between
genetic algorithms and genetic programming
- Completely rebuilt from the ground up Tree-based Genetic Programming
with Functions, Constants, and Variables
- Generics-based Genetic Programming implementation
- 6 Initialization Methods (Full, Grow, Half and Half, Ramped Full,
Ramped Grow, and Ramped Half and Half)
- 3 Basic Genetic Operations (crossover, mutation, and inversion)
- 6 Different Mutation Methods (Subtree, Replacement, Constant, Shrink, Hoist, and
Point)
- 17 Different Bloat Control Strategies (Limit Size or Depth, Tarpeian
Size or Depth, Unfit Size or Depth, Shrink Size or
Depth, Hoist Size or Depth, Size Fair or Depth Fair
Crossover, Size or Depth Parsimony Pressure, Covariant Size or Depth
Parsimony Pressure, and Lexicographic Parsimony Pressure)
- Executor component for executing your winning genetic programs
- Genetic Programming XML Schema for saving and loading genetic
programming problems and solutions
Detailed List of Improvements and Bug Fixes
- Deprecated old TRSGeneticProgram component and its unit
- Added IRSSimpleVirtualMachine.LinesOfCode property
- Added IRSSimpleVirtualMachine.ExecutionIndex property
- Renamed IRSSimpleVirtualMachine.ExecutionState property to State
- Moved IRSSimpleVirtualMachine from RSGeneticProgram to RSVirtualMachine
- Moved TRSSimpleVirtualMachine and classes from RSGeneticProgram
to RSVirtualMachine
- Added Documentation Insight docs
- Refactored TRSCustomGeneticAlgorithm component to descend
from new TRSCustomGeneticComponent, which is a shared ancestor
for genetic algorithms and genetic programming
- Added TRSCustomGeneticComponent.GenerationLimit property
- Added TRSCustomGeneticComponent.UseGenerationLimit property
- Modified behavior of TRSCustomGeneticComponent.Evolve method
to not execute if Limits/Cutoffs reached (before you could
execute one generation)
- Added TRSIndividual.WeightedFitness property (Weighted Fitness
allows weighting the fitness for searching the solution space
to guide the search. Fitness still evaluates if an individual
solves the problem, but the weighted fitness can help constrain
the search. For example, genetic programs can weight the fitness
by reducing the fitness by the size of the program (limiting
growth)
- Added TRSCustomGeneticComponent.Halt property to halt execution
of Evolve(Integer) method
- Modified TRSCustomGeneticComponent.Reproduce method to be a function
that returns TRUE if the child is not just a copy of a parent,
i.e., crossover, mutation, and/or inversion occurred.
- Modified TRSCustomGeneticComponent.DoEvolveOneStep method to
evaluate fitness only if crossover, mutation, and/or inversion
occurred
- Modified TRSCustomGeneticComponent.OnReproduce event to also
allow user to say if child was modified in event
- Fixed TRSCustomGeneticComponent.CalculateCumulativeNormalizedFitnesses method
when FitnessMethod is Minimize
- Fixed bug in TRSCustomGeneticAlgorithm.Crossover method where
1 byte genes would select an invalid bit crossover point
- Fixed bug in TRSCustomGeneticAlgorithm.LoadFromXML(IXMLGADomainType)
method where the genetic component would not be initialized before
loading (causing any later evolve calls to initialize the loaded
population away)
- Published new TRSGeneticAlgorithm.GenerationLimit property
- Published new TRSGeneticAlgorithm.UseGenerationLimit property
- Published new TRSGeneticAlgorithm.InitialDuplicatesRetries property
- Added IRSGeneticProgramReaderWriter, Interface for Genetic Program Reader/Writer
- Added IRSGeneticProgramEngine<T>, Generics interface for a Genetic Program Engine
- Added TRSGPNode<T>, Generics class for genetic program trees
- Added TRSGPTreeNode<T>, Generics class for genetic program trees (unlimited Arity)
- Added TRSGPBinaryNode<T>, Generics class for genetic program trees (Arity <= 2)
- Added TRSGPContext<T>, Generics class for genetic programming Context
- Added TRSGPInstruction<T>, Generics class for genetic program instruction
- Added TRSGPInstructions<T>, Generics class for collection of genetic program instructions
- Added TRSGPIndividual<T>, Generics class for genetic program individual
- Added TRSGPPopulation<T>, Generics class for collection of genetic program individuals
- Added TRSCustomGeneticProgramming<T>, Generics class for genetic programming
- Added TRSCustomGeneticProgrammingExecutor<T>, Generics class for executing a genetic program tree
- Added TRSCustomGeneticProgramming class, base component for
genetic programming using doubles and unlimited arity instructions
- Added TRSGeneticProgramming class, published component for
genetic programming using doubles and unlimited arity instructions
- Added TRSCustomBinaryGeneticProgramming class, base component for
genetic programming using doubles and maximum arity of 2 instructions
- Added TRSBinaryGeneticProgramming class, published component for
genetic programming using doubles and maximum arity of 2 instructions
- Added TRSCustomGeneticProgrammingExecutor class, base component for
executing evolved genetic programs using doubles
- Added TRSCustomGeneticProgrammingExecutor class, published component for
executing evolved genetic programs using doubles
- Added TRSGPFloatInstruction class, instruction class with double
precision constants and variables
- Added TRSGPFloatInstructions collection class
- Added TRSGPFloatNode class, double-precision genetic program tree node (unlimited arity)
- Added TRSGPBinaryFloatNode class, double-precision genetic program tree node (arity<=2)
- Added DEFAULT_DUPLICATES_RETRIES constant
- Added DefaultMutationWeights constant
- Added SNoTerminalsFound resource string
- Added SNoOperationsFound resource string
- Added SNoInstructionsFound resource string
- Added SNoInstructionAssigned resource string
- Added SNodeFull resource string
- Added SInvalidTerminalNode resource string
- Added TGPGeneticInstruction type
- Added TGPGeneticInstructions type
- Added TGPCrossoverMethod type
- Added TGPMutationMethod type
- Added TGPPointMutationMethod type
- Added TGPMutationMethodWeights type
- Added TGPBloatStrategy type
- Added TGPInitializationMethod type
- Added EGPException class
- Added TGeneticProgramEditor component editor
- Updated TGAGetHelpEditor for genetic programming components
-------------------------------------------------------------------
December 28, 2014 Version 4.5.3
- Recompiled because of RiverSoftAVG Common Classes Library Changes
-------------------------------------------------------------------
November 16, 2014 Version 4.5.2
- Recompiled for RAD Studio XE7 Update 1
-------------------------------------------------------------------
September 22, 2014 Version 4.5.1
- Recompiled because of RiverSoftAVG Common Classes Library Changes
-------------------------------------------------------------------
September 7, 2014 Version 4.5
- Added RAD Studio XE7 Support
- Changed packages to use LibSuffix.inc exclusively (no more LibSuffix120.inc,
LibSuffix130.inc, etc)
-------------------------------------------------------------------
July 6, 2014 Version 4.4
- Added Appmethod (Object Pascal) Support
- Recompiled for Delphi XE6 Update 1
- Recompiled because of RiverSoftAVG Common Classes Library Changes
-------------------------------------------------------------------
April 27, 2014 Version 4.3
- Added RAD Studio XE6 Support
-------------------------------------------------------------------
March 30, 2014 Version 4.2.2
- Recompiled because of RiverSoftAVG Common Classes Library Changes
-------------------------------------------------------------------
February 9, 2014 Version 4.2.1
- Updated because of RiverSoftAVG Common Classes Library Changes
-------------------------------------------------------------------
January 19, 2014 Version 4.2
- Recompiled for RiverSoftAVG Common Classes Library Changes
-------------------------------------------------------------------
September 22, 2013 Version 4.1
- Added RAD Studio XE5 Support
- Added Android Support
- Validated library on physical Android Device
-------------------------------------------------------------------
August 25, 2013 Version 4.0.1
- Added missing *.inc files to installer so that components can be
built
-------------------------------------------------------------------
August 18, 2013 Version 4.0
- Validated library on physical iOS Device
- Changed code to call DisposeOf on AUTOREFCOUNT, not NEXTGEN
-------------------------------------------------------------------
July 29, 2013 Version 4.0b1
- Recompiled for RiverSoftAVG Common Classes Library Changes
-------------------------------------------------------------------
July 21, 2013 Version 4.0b0
- Added RAD Studio XE4 Support
- Added iOS Support
- Dropped RAD Studio 2009 Support
- Refactored classes to use generics versions of lists and hash tables instead
of classes from Contnrs.pas, GLists.pas, InterfaceCollections.pas,
Structures.pas, and GHashTable.pas
- Added N-Queens Mobile Demo App
- Added [Weak] Attribute to owner objects references for
Automatic Reference Counting (ARC) compiler
- Changed ComponentPlatformsAttribute from pidRS_PLATFORM_SUPPORT
to pidRS_DESKTOP_SUPPORT (RSGeneticProgram does not support
MOBILE)
Note: This release dramatically changed support classes in order to
better support XE4 Mobile compiler features: Automatic Reference Counting,
TList deprecation, and suggested deprecation of Pointer type. It makes
heavy use of generics instead of older TList-type and TGHashTable classes
which used pointers. A lot of effort has gone into making the new classes
support the same methods and properties of the old classes. However,
there may be changes needed to be made to your code. Of special note:
- InterfaceCollections unit has been replaced with RSInterfaceCollections unit
- Contnrs.pas, GLists.pas, and GHashTable.pas have been replaced with
System.Generics.Collections.pas or RSGenerics.Collections.pas
The old units are still available but are not used.
-------------------------------------------------------------------
March 24, 2013 Version 3.2.1
- Changed occurrences of #13#10 to use sLineBreak constant
-------------------------------------------------------------------
January 27, 2013 Version 3.2
- Changed Evaluation version code allowing
no restrictions, except only for VCL and FMX Win32/64 and
displaying nag screen when Delphi is not running
- Updated for Rad Studio XE3, Update 2
-------------------------------------------------------------------
November 25, 2012 Version 3.1
- Updated Help File including changing popup links to
normal links and updated hierarchy topics
- Added TGAGetHelpEditor component editor to display Genetic Algorithms component help
-------------------------------------------------------------------
September 16, 2012 Version 3.0
- Added RAD Studio XE3 Support
-------------------------------------------------------------------
June 03, 2012 Version 3.0 EEP3
- Updated for Rad Studio XE2, Update 4, HotFix 1
-------------------------------------------------------------------
April 22, 2012 Version 3.0 EEP2
- Updated for Rad Studio XE2, Update 4
- Recompiled for RiverSoftAVG Common Classes Library Changes
- Updated readme.rtf
-------------------------------------------------------------------
March 17, 2012 Version 3.0 EEP1
- Added Support for FireMonkey
- Added 8-Queens (FMX) Demo application
-------------------------------------------------------------------
December 11, 2011 Version 2.0
- Added support for Rad Studio XE2, Win32 and Win64
-------------------------------------------------------------------
September 29, 2010 Version 1.3
- Added support for Rad Studio XE
-------------------------------------------------------------------
Sept 7, 2009 Version 1.2
- Added support for Delphi 2010
- Changed help file(s) from WinHelp to HTML Help. Note that there
is a known issue with the display to Delphi links (available with
WinHelp but not HTML Help)
-------------------------------------------------------------------
Jun 20, 2009 Version 1.11
- Fixed bug in TRSGABits.CrossOver method (thanks HKH)
-------------------------------------------------------------------
Jan 31, 2009 Version 1.1
- Added support for Delphi 2009 (Final)
-------------------------------------------------------------------
Nov 23, 2008 Version 1.1B1
- Changed Install Directory to C:\Comps\RiverSoftAVG to reduce chances
of too long path names (on new installs to a machine)
-------------------------------------------------------------------
Nov 16, 2008 Version 1.1B0
- Added support for Delphi 2009
- Added include RSDefines.inc to RSGeneticProgram.pas
- Modified classes to avoid warnings about collisions with
new methods added to TObject (D2009/.NET)
-------------------------------------------------------------------
Feb 29, 2008 Version 1.0
- Added code for Load/SaveXML for the new properties
- Updated RSGADomainXML.pas and RSGeneticAlgorithmXML.pas with
new XML bindings based on new properties (MinValue, MaxValue, etc)
- Added RiverSoftAVG.AI.Genetic.Design VCL.NET Design-Time package
- Added icon for TRSGeneticProgram
- Added $R compiler commands to import component bitmaps (required by
Delphi.NET) to RSGAReg.pas
- Added 8 Queens (NET) demo project
- Added 8 Queens Comparison demo project
- Modified 8 Queens Demo projects to not need RiverSoftAVG
Charting Component Suite installed (just uncomment {$DEFINE NOCHARTS})
- Updated Help File with Class Hierarchies and Sorted See Also Topics
- Updated Installer
-------------------------------------------------------------------
Feb 09, 2008 Version 1.0 EEP3
- Improved TRSGAGene floating point accessors significantly
to encode floating point values properly (or attempt to)
even when the len is less than 32 bits
- Added TRSGAGene.PreserveSignBit property and code to encode/decode
numeric values with or without the sign bit
- Added property
- Added TRSCustomGeneticAlgorithm.OnCrossover event
- Moved TRSCustomGeneticAlgorithm.Initialized property from
protected to public visibility
- Finished Help File (except for experimental RSGeneticProgram)
-------------------------------------------------------------------
Oct 06, 2007 Version 1.0 EEP2
- Added RAD Studio 2007 .NET Support
- Added RAD Studio 2007 support to installer
-------------------------------------------------------------------
August 2007 Version 1.0 EEP1
- Initial Version
- Notes: .NET version does not install properly
|