org.encog.ml.prg.generator
Class RampedHalfAndHalf

java.lang.Object
  extended by org.encog.ml.prg.generator.AbstractPrgGenerator
      extended by org.encog.ml.prg.generator.RampedHalfAndHalf
All Implemented Interfaces:
PopulationGenerator, PrgGenerator, MultiThreadable

public class RampedHalfAndHalf
extends AbstractPrgGenerator

Because neither the grow or full method provide a very wide array of sizes or shapes on their own, Koza (1992) proposed a combination called ramped half-and-half. Half the initial population is constructed using full and half is constructed using grow. This is done using a range of depth limits (hence the term "ramped") to help ensure that we generate trees having a variety of sizes and shapes. (from: A field guide to genetic programming) This algorithm was implemented as described in the following publication: Genetic programming: on the programming of computers by means of natural selection MIT Press Cambridge, MA, USA (c)1992 ISBN:0-262-11170-5


Constructor Summary
RampedHalfAndHalf(EncogProgramContext theContext, int theMinDepth, int theMaxDepth)
          Construct the ramped half-and-half generator.
 
Method Summary
 ProgramNode createNode(Random rnd, EncogProgram program, int depthRemaining, List<ValueType> types)
          Create a random node for an Encog Program.
 int determineMaxDepth(Random rnd)
          
 int getMinDepth()
           
 
Methods inherited from class org.encog.ml.prg.generator.AbstractPrgGenerator
addPopulationMember, attemptCreateGenome, createRandomNode, createTerminalNode, generate, generate, generateRandomOpcode, getContext, getMaxConst, getMaxDepth, getMaxGenerationErrors, getMinConst, getRandomFactory, getScore, getThreadCount, isHasEnum, setMaxConst, setMaxGenerationErrors, setMinConst, setRandomFactory, setScore, setThreadCount
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RampedHalfAndHalf

public RampedHalfAndHalf(EncogProgramContext theContext,
                         int theMinDepth,
                         int theMaxDepth)
Construct the ramped half-and-half generator.

Parameters:
theContext - The context.
theMinDepth - The minimum depth.
theMaxDepth - The maximum depth.
Method Detail

createNode

public ProgramNode createNode(Random rnd,
                              EncogProgram program,
                              int depthRemaining,
                              List<ValueType> types)
Create a random node for an Encog Program.

Parameters:
rnd - Random number generator.
program - The program that the node should be generated for.
depthRemaining - The depth remaining to generate.
types - The types to generate.
Returns:
The newly created node.

determineMaxDepth

public int determineMaxDepth(Random rnd)

Overrides:
determineMaxDepth in class AbstractPrgGenerator

getMinDepth

public int getMinDepth()
Returns:
The minimum depth.


Copyright © 2014. All Rights Reserved.