ec.gp.build
Class PTCFunctionSet

java.lang.Object
  extended by ec.gp.GPFunctionSet
      extended by ec.gp.build.PTCFunctionSet
All Implemented Interfaces:
Clique, PTCFunctionSetForm, Setup, java.io.Serializable

public class PTCFunctionSet
extends GPFunctionSet
implements PTCFunctionSetForm

PTCFunctionSet is a GPFunctionSet which adheres to PTCFunctionSetForm, and thus can be used with the PTC1 and PTC2 methods. Terminal and nonterminal probabilities for nodes used in this function set are determined by the prob parameter for the nodes' GPNodeConstraints object. That's not the greatest solution, because it could require making a lot of different GPNodeConstraints, customized for each node, but it's the best I can do for now. The nonterminalSelectionProbabilities() method computes nonterminal selection probability using the probabilities above, per type, for the size requested. If the size is small enough (smaller than CACHE_SIZE), then the result is memoized so it doesn't need to be computed again next time.

Version:
1.0
Author:
Sean Luke
See Also:
Serialized Form

Field Summary
static int CACHE_SIZE
           
 float[][] p_y
          cache of nonterminal selection probabilities -- dense array [size-1][type].
 float[][] q_ny
          nonterminal probabilities[type][thenodes], in organized form
 float[][] q_ty
          terminal probabilities[type][thenodes], in organized form
 
Fields inherited from class ec.gp.GPFunctionSet
name, nodes, nodes_h, nodesByArity, nonterminals, nonterminals_h, nonterminalsOverArity, nonterminalsUnderArity, P_FUNC, P_NAME, P_SIZE, terminals, terminals_h
 
Constructor Summary
PTCFunctionSet()
           
 
Method Summary
 float[] computeNonterminalSelectionProbabilities(int expectedTreeSize)
           
 float[] nonterminalProbabilities(int type)
          Returns an organized distribution (see ec.util.RandomChoice) of likelihoods that various nonterminals in the function set will be chosen over other nonterminals with the same return type.
 float[] nonterminalSelectionProbabilities(int expectedTreeSize)
          Returns an array (by return type) of the probability that PTC1 must pick a nonterminal over a terminal in order to guarantee the expectedTreeSize.
 void setup(EvolutionState state, Parameter base)
          Must be done after GPType and GPNodeConstraints have been set up
 float[] terminalProbabilities(int type)
          Returns an organized distribution (see ec.util.RandomChoice) of likelihoods that various terminals in the function set will be chosen over other terminals with the same return type.
 
Methods inherited from class ec.gp.GPFunctionSet
functionSetFor, postProcessFunctionSet, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

q_ty

public float[][] q_ty
terminal probabilities[type][thenodes], in organized form


q_ny

public float[][] q_ny
nonterminal probabilities[type][thenodes], in organized form


CACHE_SIZE

public static final int CACHE_SIZE
See Also:
Constant Field Values

p_y

public float[][] p_y
cache of nonterminal selection probabilities -- dense array [size-1][type]. If any items are null, they're not in the dense cache.

Constructor Detail

PTCFunctionSet

public PTCFunctionSet()
Method Detail

terminalProbabilities

public float[] terminalProbabilities(int type)
Description copied from interface: PTCFunctionSetForm
Returns an organized distribution (see ec.util.RandomChoice) of likelihoods that various terminals in the function set will be chosen over other terminals with the same return type. The ordering of the array is the same as the terminals[type][...] array in GPFunctionSet.

Specified by:
terminalProbabilities in interface PTCFunctionSetForm

nonterminalProbabilities

public float[] nonterminalProbabilities(int type)
Description copied from interface: PTCFunctionSetForm
Returns an organized distribution (see ec.util.RandomChoice) of likelihoods that various nonterminals in the function set will be chosen over other nonterminals with the same return type. The ordering of the array is the same as the nonterminals[type][...] array in GPFunctionSet.

Specified by:
nonterminalProbabilities in interface PTCFunctionSetForm

setup

public void setup(EvolutionState state,
                  Parameter base)
Description copied from class: GPFunctionSet
Must be done after GPType and GPNodeConstraints have been set up

Specified by:
setup in interface Setup
Overrides:
setup in class GPFunctionSet

nonterminalSelectionProbabilities

public float[] nonterminalSelectionProbabilities(int expectedTreeSize)
Description copied from interface: PTCFunctionSetForm
Returns an array (by return type) of the probability that PTC1 must pick a nonterminal over a terminal in order to guarantee the expectedTreeSize. Only used by PTC1, not by PTC2.

Specified by:
nonterminalSelectionProbabilities in interface PTCFunctionSetForm

computeNonterminalSelectionProbabilities

public float[] computeNonterminalSelectionProbabilities(int expectedTreeSize)