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.

-------------------------------------------------------------------

February 20, 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-2017 RiverSoftAVG
Last modified: February 20, 2017