项目作者: anthonyawuley

项目描述 :
Integration of ALPS and FSALPS into ECJ
高级语言: Java
项目地址: git://github.com/anthonyawuley/alps-ec.git
创建时间: 2015-12-22T22:52:59Z
项目社区:https://github.com/anthonyawuley/alps-ec

开源协议:Other

下载


Welcome to Age Layered Population Structure (ALPS) and Feature Selection ALPS (FSALPS) ECJ!

The system provides anALPS extension to the open source ECJ System

Copyright 2015 by Anthony Awuley
Brock University Computer Science Department
Licensed under the Academic Free License version 3.0
See the file “LICENSE” for more information

The ALPS[Hornby,2006] strategy is a diversity–enhancing algorithm that works with algorithms
with elements of randomness in them . It uses an age–layered population and restricts breeding
and competition between individuals. ALPS ability to maintain diversity in its population is largely
due to regular introduction of individuals from different fitness basins and the novel control of
competition between individuals.

The implementation is based on the version 22 of the open source Evolutionary Computation system in Java
developed by Sean Luke [ECJ,V22]

[Hornby,2006] Gregory Hornby. Alps: the age-layered population structure for reducing the problem of
premature convergence. In Mike Cattolico, editor, GECCO, pages 815–822. ACM, 2006.

[ECJ,V22] S. Luke, G. Balan S. Paus Z. Skolicki E. Popovici J. Harrison J. Bassett R. Hubley, L. Panait and
A. Chhircop. Ecj: A java-based evolutionary computation research system, version 22, 06 2000-2015.
http://www.cs.gmu.edu/~eclab/projects/ecj/ [Online; Accessed: 2 April 2014].


ALPS CONFIGURATION

The parameter files are located in the directory io/params/ and the main class is in ec.main.Run.
Three tutorials have been set up and can be found in the directories

  1. ec/app/alps/tutorial1/
  2. ec/app/alps/tutorial2/
  3. ec/app/alps/tutorial3/
  4. ec/app/fsalps/tutorial4/

A brief introduction is given to setting up 1 and 2.

Setting up ALPS GP (see ec/app/alps/tutorial2/params/tutorial2.params).

ALPS CONFIGURATION

SAMPLE ALPS OUTPUT

SAMPLE ALPS OUTPUT


FSALPS

Feature Selection ALPS is a modification of Hornby’s ALPS algorithm directed towards the selection of relevant terminals (features) in a GP tree. It uses a frequency counting system to rank the terminals. The ranked values are converted into probabilities and are used in the selection of terminals during construction of trees/sub-trees.

  1. // Pseudocode for FSALPS
  2. procedure FSALPS GEN()
  3. AgeScheme SelectAgeingScheme()
  4. layers CreateLayers(AgeScheme)
  5. i SequentialLayerSelection(layers)
  6. probVector InitialFeatureProbabilities()
  7. while not TerminationCondition() do
  8. if BottomLayer(i) & TooOld(i) then
  9. probVector ComputeFeatureProbs()
  10. j CreateRandomGenome(probVector)
  11. else
  12. if mutation then
  13. j DoMutation(probVector)
  14. else
  15. if crossover then
  16. j DoCrossover()
  17. end if
  18. end if
  19. end if
  20. offspringIndex SelectSlotNextGeneration(i)
  21. j CreateChild(offspringIndex)
  22. EvaluateChild(j)
  23. TryMoveUp(i,j )
  24. end while
  25. end procedure

FSALPS Configuration

FSALPS CONFIGURATION

SAMPLE FSALPS OUTPUT

SAMPLE FSALPS OUTPUT

================

Authors and Contributors

ALPS & FSALPS : Anthony Awuley @aawuley

ECJ : Sean Luke

Support or Contact

Having trouble with setting up ALPS & FSALPS? Check out our documentation or contact support

Project page Prof. Brian Ross

For all ECJ related supports contact Sean Luke