ec.gp.build
Class PTCFunctionSet
java.lang.Object
|
+--ec.gp.GPFunctionSet
|
+--ec.gp.build.PTCFunctionSet
- All Implemented Interfaces:
- Clique, PTCFunctionSetForm, java.io.Serializable, Setup
- 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.
- 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 |
all, name, nodes, nodes_h, nodesByArity, nonterminals, nonterminals_h, nonterminalsOverArity, nonterminalsUnderArity, P_FUNC, p_funcinfo, P_FUNCINFO, P_NAME, P_SIZE, terminals, terminals_h |
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 java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
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
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.
PTCFunctionSet
public PTCFunctionSet()
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
- 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)