org.encog.ml.prg.generator
Class RampedHalfAndHalf
java.lang.Object
org.encog.ml.prg.generator.AbstractPrgGenerator
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
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 |
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.
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.