GACL Version History
Home Up Feedback Search

Products
Order
Downloads
Support
Articles & Tips
Recommended Links
About

 
 

 
  Other Links:
Delphi CodeSmith Blog 

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
 

Send mail to webmasterNO@SPAMRiverSoftAVG.com with questions or comments about this web site.
Copyright © 2002-2023 RiverSoftAVG
Last modified: November 20, 2023