Code Monkey home page Code Monkey logo

alps-ec's Introduction

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.

  // Pseudocode for FSALPS

  procedure FSALPS GEN()
  AgeScheme ← SelectAgeingScheme() 
  layers ← CreateLayers(AgeScheme)
  i ← SequentialLayerSelection(layers) 
  probVector ← InitialFeatureProbabilities() 
  while not TerminationCondition() do
      if BottomLayer(i) & TooOld(i) then 
         probVector ← ComputeFeatureProbs()
         j ← CreateRandomGenome(probVector)
      else
         if mutation then
            j ← DoMutation(probVector) 
         else
            if crossover then
               j ← DoCrossover()
            end if 
         end if
      end if
      offspringIndex ← SelectSlotNextGeneration(i) 
      j ← CreateChild(offspringIndex) 
      EvaluateChild(j)
      TryMoveUp(i,j )
  end while 
  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

alps-ec's People

Contributors

anthonyawuley avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.