ec.gp.sasc
Class SASCNode

java.lang.Object
  extended by ec.gp.GPNode
      extended by ec.gp.sasc.SASCNode
All Implemented Interfaces:
GPNodeParent, Prototype, Setup, Serializable, Cloneable

public abstract class SASCNode
extends GPNode

Esta classe representa um nó que será controlado dinamicamente pelo método SSSC

Author:
Rafael Inhasz
See Also:
Serialized Form

Field Summary
 double beta
          Parâmetro beta do método SSSC
static double CHILDREN_COMPAT_WEIGHT
           
 double crossCount
          Este parâmetro indica quantas vezes este nó já foi selecionado como ponto de crossover em todo o processo evolutivo
static double FUNC_COMPAT_WEIGHT
           
 double lastSemanticFactor
          Esta variável guarda o valor de lambda calculado para este nó durante o último crossover, caso este nó esteja no segundo indivíduo selecionado.
 double meanShock
          Este parâmetro representa a média do choque que será aplicado na atualização do parâmetro sigma
static String P_BETA
           
static String P_DIMENSIONS
           
static String P_MEAN_SHOCK
           
static String P_SIZE
           
static String P_SSSC_BASE
           
static double SIGMA_MIN
           
 EvolutionState state
          Guarda o objeto-resumo do processo evolutivo
 boolean switched
          Este parâmetro indica se o nó faz parte de uma sub-árvore daquele nó selecionado para o último crossover
 boolean useLatex
          Este parâmetro determina se a exibição dos nós será feita em laTeX ou em texto mesmo
 
Fields inherited from class ec.gp.GPNode
argposition, children, constraints, GPNODEPRINTTAB, MAXPRINTBYTES, NODESEARCH_ALL, NODESEARCH_CUSTOM, NODESEARCH_NONTERMINALS, NODESEARCH_TERMINALS, P_NODE, P_NODECONSTRAINTS, parent, REPLACEMENT_CHAR, SITUATION_MUTATION, SITUATION_NEWIND
 
Constructor Summary
SASCNode()
           
 
Method Summary
 Parameter defaultBase()
          Retorna a base que pode ser utilizada diretamente para parametrização do node selector
 double getCrossCount()
           
abstract  String getNodeName()
          Método que deverá ser implementado por cada nó, retornando o seu nome
abstract  double getSemanticCompatibilityFunction(int n, SASCNode nodeCompared)
          Retorna o valor da função de compatibilidade semântica para a dimensão n
 double getSigma()
          Retorna o valor do parâmetro sigma_i do nó
 double getSSACParameter()
          Retorna o valor do parâmetro do nó segundo o método de Angeline
 double getSSSCDeltaParameter(SASCNode rootNodeSecondParent)
          Retorna o valor do parâmetro delta do nó de acordo o método SSSC, dado o segundo indivíduo já selecionado para o crossover, representado pelo seu nó raiz enviado no parâmetro rootNodeSecondParent
 double getSSSCLambdaParameter(SASCNode nodeCompared, double beta)
          Retorna o parâmetro lambda de um determinado nó (segundo o método SSSC), dado o nó já selecionado no primeiro indivíduo, enviado no parâmetro nodeCompared
 String getSymbolicEquation()
          Esta função retorna a representação simbólica da equação que o indivíduo representa
 double getTotalBuildingBlocks()
          Retorna o n'umero de buildong blocks deste sub-ramo
 boolean hasBigSigma(double bigSigma)
          Retorna se ao menos um dos nós da árvore possui sigma maior que o parâmetro bigSigma
 boolean hasChild(GPNode nodeChild)
          Retorna se algum dos filhos deste nó possui nó nodeChild em um dos seus sub-ramos.
 boolean hasNode(GPNode nodeChild)
          Retorna se algum dos sub-ramos deste nó possui nó nodeChild.
 boolean hasSameNodeWithGreaterDepth(GPNode nodeCompared)
          Verifica se este nó possui o nó nodeCompared em sua estrutura, com altura igual ou maior aquela apresentado originalmente pelo nó nodeCompared
 String makeLatexTree()
          Desenha em Latex a árvore para este nó e todo o sub-ramo por ele formado
 String makeLatexTreePostCrossover(SASCNode nodePoint)
          Desenha em Latex a árvore para este nó e todo o sub-ramo por ele formado, em um formato especial para a exibição pós-crossover, onde os sub-ramos trocados são destacados
 String makeLatexTreePostCrossoverS(SASCNode nodePoint, boolean partCrossPoint)
          Método auxiliar para desenhar em Latex a árvore para este nó e todo o sub-ramo por ele formado, em um formato especial para a exibição pós-crossover, onde os sub-ramos trocados são destacados
 String makeLatexTreePreCrossover(SASCNode nodePoint)
          Desenha em Latex a árvore para este nó e todo o sub-ramo por ele formado, em um formato especial para a exibição pré-crossover, onde os pontos selecionados para o crossover são destacados
 GPNode metaCloneReplacing(GPNode newSubtree, GPNode oldSubtree, double alpha, EvolutionState state, int thread)
          Uma vez selecionados os dois sub-ramos que serão trocados através do crossover, este método realiza a troca e atualiza os parâmetros dasárvore do indivíduo O método funciona da seguinte forma: ele é inicialmente chamado a partir de uma classe externa (geralmente a classe que operacionaliza o crossover), que o aplica ao nó raiz de um dos indivíduos que participarão do crossover, passando como parâmetros o sub-ramo a substituir (oldSubtree) e o sub-ramo substituto (newSubtree).
 GPNode metaCloneReplacingNoSubclone(GPNode newSubtree, GPNode oldSubtree)
          É o método geralmente utilizado nas operações de mutação O método funciona da seguinte forma: ele é inicialmente chamado a partir de uma classe externa (geralmente a classe que operacionaliza a mutação), que o aplica ao nó raiz do indivíduo que sofre a mutação, passando como parâmetros o sub-ramo a substituir (oldSubtree) e o sub-ramo substituto (newSubtree).
 Object pickNodeSSAC(double rnd)
          Este método tem a função de selecionar um nó da árvore por meio de roulette-wheel selection, segundo o método SSAC de Angeline.
 Object pickNodeSSAC(double rnd, double accumParameters, double totalParameters)
          Método auxiliar para a seleção do nó segundo o método SSAC - faz a pesquisa nos sub-ramos
 Object pickNodeSSSCFirst(double rnd, double accumParameters, double totalParameters, SASCNode rootNodeSecondParent)
          Método auxiliar para a seleção do nó do PRIMEIRO INDIVÍDUO, de acordo com o método SSSC - faz a pesquisa nos sub-ramos Neste momento, o segundo indivíduo já foi selecionado, e o seu nó raiz é enviado como parâmetro (rootNodeSecondParent) para que a seleção do nó do primeiro indivíduo possa seja orientada de forma a evitar um crossover inativo
 Object pickNodeSSSCFirst(double rnd, SASCNode rootNodeSecondParent)
          Este método tem a função de selecionar um nó da árvore do PRIMEIRO INDIVÍDUO por meio de roulette-wheel selection, segundo o método SSSC.
 Object pickNodeSSSCSecond(double rnd, double accumSigmaSemantics, double totalSigmaSemantics, SASCNode metaNode, double beta)
          Método auxiliar para a seleção do nó do SEGUNDO INDIVÍDUO, de acordo com o método SSSC - faz a pesquisa nos sub-ramos Neste momento, o nó do primeiro indivíduo já foi selecionado, e é enviado como parâmetro (nodeCompared) para que a seleção do nó no segundo indivíduo possa fazer também a avaliação semântica.
 Object pickNodeSSSCSecond(double rnd, SASCNode nodeCompared, double beta)
          Este método tem a função de selecionar um nó da árvore do SEGUNDO INDIVÍDUO por meio de roulette-wheel selection, segundo o método SSSC.
 void resetNode(EvolutionState state, int thread)
          Inicializa o nó
 void resetSwitches()
          Apaga uma eventual marca de crossover do nó
 void setSwitched()
          Atualiza o parâmetro que indica se o nó foi um dos pontos de seleção do último crossover
 void setup(EvolutionState state, Parameter base)
          Método para a configuração do objeto
 double sumNodes()
          Retorna o total de nós da árvore
 double sumSSACParameters()
          Calcula a soma dos parâmetros da árvore segundo o método SSAC de Angeline
 double sumSSSCDeltaParameters(SASCNode rootNodeSecondParent)
          Calcula a soma dos parâmetros delta da árvore segundo o método SSSC
 double sumSSSCLambdaParameter(SASCNode nodeCompared, double beta)
          Calcula a soma dos parâmetros lambda da árvore segundo o método SSSC, dado o nó já selecionado no primeiro indivíduo, dado pelo parâmetro nodeCompared
 String toString()
          Retorna o nome do nó simplesmente, ou o código latex para o seu desenho, se o parâmetro useLatex = true
 void updateSigma(double alpha, EvolutionState state, int thread)
          Realiza a atualização do parâmetro sigma, segundo o método SSSC
 
Methods inherited from class ec.gp.GPNode
atDepth, checkConstraints, clone, cloneReplacing, cloneReplacing, cloneReplacing, cloneReplacingAtomic, cloneReplacingAtomic, cloneReplacingNoSubclone, constraints, contains, depth, errorInfo, eval, lightClone, makeCTree, nodeEquals, nodeEquivalentTo, nodeHashCode, nodeInPosition, numNodes, numNodes, parentType, printNode, printNode, printNodeForHumans, printRootedTree, printRootedTree, printRootedTreeForHumans, readNode, readNode, readRootedTree, readRootedTree, replaceWith, rootedTreeEquals, rootedTreeHashCode, rootParent, swapCompatibleWith, toStringForError, toStringForHumans, verify, writeNode, writeRootedTree
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

SIGMA_MIN

public static final double SIGMA_MIN
See Also:
Constant Field Values

CHILDREN_COMPAT_WEIGHT

public static final double CHILDREN_COMPAT_WEIGHT
See Also:
Constant Field Values

FUNC_COMPAT_WEIGHT

public static final double FUNC_COMPAT_WEIGHT
See Also:
Constant Field Values

P_MEAN_SHOCK

public static final String P_MEAN_SHOCK
See Also:
Constant Field Values

P_SSSC_BASE

public static final String P_SSSC_BASE
See Also:
Constant Field Values

P_DIMENSIONS

public static final String P_DIMENSIONS
See Also:
Constant Field Values

P_SIZE

public static final String P_SIZE
See Also:
Constant Field Values

P_BETA

public static final String P_BETA
See Also:
Constant Field Values

useLatex

public boolean useLatex
Este parâmetro determina se a exibição dos nós será feita em laTeX ou em texto mesmo


meanShock

public double meanShock
Este parâmetro representa a média do choque que será aplicado na atualização do parâmetro sigma


switched

public boolean switched
Este parâmetro indica se o nó faz parte de uma sub-árvore daquele nó selecionado para o último crossover


crossCount

public double crossCount
Este parâmetro indica quantas vezes este nó já foi selecionado como ponto de crossover em todo o processo evolutivo


state

public EvolutionState state
Guarda o objeto-resumo do processo evolutivo


lastSemanticFactor

public double lastSemanticFactor
Esta variável guarda o valor de lambda calculado para este nó durante o último crossover, caso este nó esteja no segundo indivíduo selecionado. Caso esteja no primeiro indivíduo, lambda não está definido, e portanto a variável terá valor zero.


beta

public double beta
Parâmetro beta do método SSSC

Constructor Detail

SASCNode

public SASCNode()
Method Detail

defaultBase

public Parameter defaultBase()
Retorna a base que pode ser utilizada diretamente para parametrização do node selector

Specified by:
defaultBase in interface Prototype
Overrides:
defaultBase in class GPNode

setup

public void setup(EvolutionState state,
                  Parameter base)
Método para a configuração do objeto

Specified by:
setup in interface Prototype
Specified by:
setup in interface Setup
Overrides:
setup in class GPNode
Parameters:
state - Objeto EvolutionState que guarda as informações sobre a evolução do processo
base - Base de parametrização auxiliar. Se esse parâmetro for enviado com valor "database" por exemplo, qualquer parâmetro desta classe poderá ser obtida no arquivo de parâmetros através da keyword "database.". Por exemplo, para obter o tamanho da base de treinamento, a keyword seria "database.training".

getCrossCount

public double getCrossCount()
Returns:
Retorna quantas vezes este nó já foi selecionado como ponto de crossover em todo o processo evolutivo

resetSwitches

public void resetSwitches()
Apaga uma eventual marca de crossover do nó


getSigma

public double getSigma()
Retorna o valor do parâmetro sigma_i do nó


resetNode

public void resetNode(EvolutionState state,
                      int thread)
Inicializa o nó

Overrides:
resetNode in class GPNode

sumSSACParameters

public double sumSSACParameters()
Calcula a soma dos parâmetros da árvore segundo o método SSAC de Angeline


getSSACParameter

public double getSSACParameter()
Retorna o valor do parâmetro do nó segundo o método de Angeline


pickNodeSSAC

public Object pickNodeSSAC(double rnd)
Este método tem a função de selecionar um nó da árvore por meio de roulette-wheel selection, segundo o método SSAC de Angeline. Dado um número aleatório com distribuição Uniforme [0,1], sorteado fora e enviado a este método no parâmetro rnd, este método fará a seleção deste ponto por roulette-wheel selection, de acordo com a razão entre a soma dos parâmetros até aquele nó e a soma total dos parâmetros Uma observação importante: ESTE MÉTODO DEVERÁ SER APLICADO SOMENTE AO NÓ RAIZ

Returns:
Retorna o nó selecionado pelo método SSAC

pickNodeSSAC

public Object pickNodeSSAC(double rnd,
                           double accumParameters,
                           double totalParameters)
Método auxiliar para a seleção do nó segundo o método SSAC - faz a pesquisa nos sub-ramos

Returns:
Retorna objetos diferentes, em duas situações: - Se o nó procurado está no sub-ramo representado por este nó, retorna o próprio nó: SASCNode - Caso o nó procurado não esteja no sub-ramo representado por este nó, retorna a soma dos parâmetros acumulada até então, incluindo os parâmetros do sub-ramo representado por este nó Uma observação importante: ESTE MÉTODO DEVERÁ SER APLICADO SOMENTE AOS SUB-RAMOS DO NÓ RAIZ

sumSSSCLambdaParameter

public double sumSSSCLambdaParameter(SASCNode nodeCompared,
                                     double beta)
Calcula a soma dos parâmetros lambda da árvore segundo o método SSSC, dado o nó já selecionado no primeiro indivíduo, dado pelo parâmetro nodeCompared


getSemanticCompatibilityFunction

public abstract double getSemanticCompatibilityFunction(int n,
                                                        SASCNode nodeCompared)
Retorna o valor da função de compatibilidade semântica para a dimensão n

Parameters:
dimension - dimensão em que a compatibilidade semântica será avaliada

getSSSCLambdaParameter

public double getSSSCLambdaParameter(SASCNode nodeCompared,
                                     double beta)
Retorna o parâmetro lambda de um determinado nó (segundo o método SSSC), dado o nó já selecionado no primeiro indivíduo, enviado no parâmetro nodeCompared


pickNodeSSSCSecond

public Object pickNodeSSSCSecond(double rnd,
                                 SASCNode nodeCompared,
                                 double beta)
Este método tem a função de selecionar um nó da árvore do SEGUNDO INDIVÍDUO por meio de roulette-wheel selection, segundo o método SSSC. Neste momento, o nó do primeiro indivíduo já foi selecionado, e é enviado como parâmetro (nodeCompared) para que a seleção do nó no segundo indivíduo possa fazer também a avaliação semântica. Dado um número aleatório com distribuição Uniforme [0,1], sorteado fora e enviado a este método no parâmetro rnd, este método fará a seleção deste ponto por roulette-wheel selection, de acordo com a razão entre a soma dos parâmetros lambda até aquele nó e a soma total dos parâmetros lambda em toda a árvore Uma observação importante: ESTE MÉTODO DEVERÁ SER APLICADO SOMENTE AO NÓ RAIZ

Returns:
Retorna o nó selecionado pelo método SSSC

pickNodeSSSCSecond

public Object pickNodeSSSCSecond(double rnd,
                                 double accumSigmaSemantics,
                                 double totalSigmaSemantics,
                                 SASCNode metaNode,
                                 double beta)
Método auxiliar para a seleção do nó do SEGUNDO INDIVÍDUO, de acordo com o método SSSC - faz a pesquisa nos sub-ramos Neste momento, o nó do primeiro indivíduo já foi selecionado, e é enviado como parâmetro (nodeCompared) para que a seleção do nó no segundo indivíduo possa fazer também a avaliação semântica.

Returns:
Retorna objetos diferentes, em duas situações: - Se o nó procurado está no sub-ramo representado por este nó, retorna o próprio nó: SASCNode - Caso o nó procurado não esteja no sub-ramo representado por este nó, retorna a soma dos parâmetros lambda acumulada até então, incluindo os parâmetros lambda do sub-ramo representado por este nó Uma observação importante: ESTE MÉTODO DEVERÁ SER APLICADO SOMENTE AOS SUB-RAMOS DO NÓ RAIZ

sumSSSCDeltaParameters

public double sumSSSCDeltaParameters(SASCNode rootNodeSecondParent)
Calcula a soma dos parâmetros delta da árvore segundo o método SSSC


getSSSCDeltaParameter

public double getSSSCDeltaParameter(SASCNode rootNodeSecondParent)
Retorna o valor do parâmetro delta do nó de acordo o método SSSC, dado o segundo indivíduo já selecionado para o crossover, representado pelo seu nó raiz enviado no parâmetro rootNodeSecondParent


pickNodeSSSCFirst

public Object pickNodeSSSCFirst(double rnd,
                                SASCNode rootNodeSecondParent)
Este método tem a função de selecionar um nó da árvore do PRIMEIRO INDIVÍDUO por meio de roulette-wheel selection, segundo o método SSSC. Neste momento, o segundo indivíduo já foi selecionado, e o seu nó raiz é enviado como parâmetro (rootNodeSecondParent) para que a seleção do nó do primeiro indivíduo possa seja orientada de forma a evitar um crossover inativo Dado um número aleatório com distribuição Uniforme [0,1], sorteado fora e enviado a este método no parâmetro rnd, este método fará a seleção deste ponto por roulette-wheel selection, de acordo com a razão entre a soma dos parâmetros delta até aquele nó e a soma total dos parâmetros delta em toda a árvore Uma observação importante: ESTE MÉTODO DEVERÁ SER APLICADO SOMENTE AO NÓ RAIZ DO PRIMEIRO INDIVÍDUO

Returns:
Retorna o nó selecionado pelo método SSSC para o primeiro reprodutor

pickNodeSSSCFirst

public Object pickNodeSSSCFirst(double rnd,
                                double accumParameters,
                                double totalParameters,
                                SASCNode rootNodeSecondParent)
Método auxiliar para a seleção do nó do PRIMEIRO INDIVÍDUO, de acordo com o método SSSC - faz a pesquisa nos sub-ramos Neste momento, o segundo indivíduo já foi selecionado, e o seu nó raiz é enviado como parâmetro (rootNodeSecondParent) para que a seleção do nó do primeiro indivíduo possa seja orientada de forma a evitar um crossover inativo

Returns:
Retorna objetos diferentes, em duas situações: - Se o nó procurado está no sub-ramo representado por este nó, retorna o próprio nó: SASCNode - Caso o nó procurado não esteja no sub-ramo representado por este nó, retorna a soma dos parâmetros delta acumulada até então, incluindo os parâmetros delta do sub-ramo representado por este nó Uma observação importante: ESTE MÉTODO DEVERÁ SER APLICADO SOMENTE AOS SUB-RAMOS DO NÓ RAIZ DO PRIMEIRO INDIVÍDUO

getNodeName

public abstract String getNodeName()
Método que deverá ser implementado por cada nó, retornando o seu nome

Returns:

toString

public String toString()
Retorna o nome do nó simplesmente, ou o código latex para o seu desenho, se o parâmetro useLatex = true

Specified by:
toString in class GPNode

makeLatexTree

public String makeLatexTree()
Desenha em Latex a árvore para este nó e todo o sub-ramo por ele formado

Overrides:
makeLatexTree in class GPNode
Returns:

makeLatexTreePreCrossover

public String makeLatexTreePreCrossover(SASCNode nodePoint)
Desenha em Latex a árvore para este nó e todo o sub-ramo por ele formado, em um formato especial para a exibição pré-crossover, onde os pontos selecionados para o crossover são destacados


makeLatexTreePostCrossover

public String makeLatexTreePostCrossover(SASCNode nodePoint)
Desenha em Latex a árvore para este nó e todo o sub-ramo por ele formado, em um formato especial para a exibição pós-crossover, onde os sub-ramos trocados são destacados


makeLatexTreePostCrossoverS

public String makeLatexTreePostCrossoverS(SASCNode nodePoint,
                                          boolean partCrossPoint)
Método auxiliar para desenhar em Latex a árvore para este nó e todo o sub-ramo por ele formado, em um formato especial para a exibição pós-crossover, onde os sub-ramos trocados são destacados

Parameters:
partCrossPoint - indica se o sub-ramo faz parte da parte trocada ou não

setSwitched

public void setSwitched()
Atualiza o parâmetro que indica se o nó foi um dos pontos de seleção do último crossover


metaCloneReplacing

public GPNode metaCloneReplacing(GPNode newSubtree,
                                 GPNode oldSubtree,
                                 double alpha,
                                 EvolutionState state,
                                 int thread)
Uma vez selecionados os dois sub-ramos que serão trocados através do crossover, este método realiza a troca e atualiza os parâmetros dasárvore do indivíduo O método funciona da seguinte forma: ele é inicialmente chamado a partir de uma classe externa (geralmente a classe que operacionaliza o crossover), que o aplica ao nó raiz de um dos indivíduos que participarão do crossover, passando como parâmetros o sub-ramo a substituir (oldSubtree) e o sub-ramo substituto (newSubtree). O método então começa uma procura pelo nó a substituir, começando pelo nó raiz. Não sendo este o nó a substituir, o nó é clonado (sem seus filhos) e o método é recursivamente aplicado aos primeiros filhos do nó raiz, onde o procedimento é repetido. Sempre que a pesquisa em um nó termina com uma resposta negativa à procura do nó a substituir, o nó é clonado sem seus filhos e reposicionado na árvore. No momento em que o nó é encontrado, é executado o método cloneReplacing(), que faz um clone do nó substituto (agora com todos os seus filhos) para que ele seja no passo seguinte posicionado na árvore no lugar do nó anterior. Além disso, é nesse momento que o parâmetro sigma da árvore sofre a atualização, de acordo com o método de crossover utilizado.

Parameters:
newSubtree - sub-ramo que não pertence à árvore do indivíduo, e que passará a integrá-la através do crossover
oldSubtree - sub-ramo que pertence à árvore do indivíduo, e será substituído através do crossover
alpha - parâmetro alpha que será utilizado para atualizar a parameter tree do indivíduo
state - objeto que resumo o estágio atual do processo evolutivo
thread - thread de processamento, utilizado principalmente para o caso de multi-processamento, não contemplado aqui
Returns:
Retorna o nó sobre o qual foi aplicado, com a substituição (caso este nó contenha o sub-ramo a ser substituído) ou sem a substituição, exatamente como encontrava-se antes da aplicação do método

metaCloneReplacingNoSubclone

public GPNode metaCloneReplacingNoSubclone(GPNode newSubtree,
                                           GPNode oldSubtree)
É o método geralmente utilizado nas operações de mutação O método funciona da seguinte forma: ele é inicialmente chamado a partir de uma classe externa (geralmente a classe que operacionaliza a mutação), que o aplica ao nó raiz do indivíduo que sofre a mutação, passando como parâmetros o sub-ramo a substituir (oldSubtree) e o sub-ramo substituto (newSubtree). O método então começa uma procura pelo nó a substituir, começando pelo nó raiz. Não sendo este o nó a substituir, o nó é clonado (sem seus filhos) e o método é recursivamente aplicado aos primeiros filhos do nó raiz, onde o procedimento é repetido. Sempre que a pesquisa em um nó termina com uma resposta negativa à procura do nó a substituir, o nó é clonado sem seus filhos e reposicionado na árvore. No momento em que o nó é encontrado, este é posicionado na árvore no lugar do nó anterior. Além disso, é nesse momento que o parâmetro sigma da árvore sofre a atualização, de acordo com o método de crossover utilizado.

Parameters:
newSubtree - sub-ramo que não pertence à árvore do indivíduo, e que passará a integrá-la através do crossover
oldSubtree - sub-ramo que pertence à árvore do indivíduo, e será substituído através do crossover
Returns:
Retorna o nó sobre o qual foi aplicado, com a substituição (caso este nó contenha o sub-ramo a ser substituído) ou sem a substituição, exatamente como encontrava-se antes da aplicação do método

sumNodes

public double sumNodes()
Retorna o total de nós da árvore


hasBigSigma

public boolean hasBigSigma(double bigSigma)
Retorna se ao menos um dos nós da árvore possui sigma maior que o parâmetro bigSigma


hasChild

public boolean hasChild(GPNode nodeChild)
Retorna se algum dos filhos deste nó possui nó nodeChild em um dos seus sub-ramos. A pesquisa não inclui o próprio nó sobre o qual o método é aplicado


hasNode

public boolean hasNode(GPNode nodeChild)
Retorna se algum dos sub-ramos deste nó possui nó nodeChild. Diferentemente do método hasChild, este próprio nó (sobre o qual o método é inicialmente aplicado) também participa da pesquisa


hasSameNodeWithGreaterDepth

public boolean hasSameNodeWithGreaterDepth(GPNode nodeCompared)
Verifica se este nó possui o nó nodeCompared em sua estrutura, com altura igual ou maior aquela apresentado originalmente pelo nó nodeCompared


updateSigma

public void updateSigma(double alpha,
                        EvolutionState state,
                        int thread)
Realiza a atualização do parâmetro sigma, segundo o método SSSC

Parameters:
alpha - parâmetro alpha, conforme especificação do método SSSC
state - objeto que resume o estágio atual do processo evolutivo
thread - thread atual de processamento

getTotalBuildingBlocks

public double getTotalBuildingBlocks()
Retorna o n'umero de buildong blocks deste sub-ramo

Returns:

getSymbolicEquation

public String getSymbolicEquation()
Esta função retorna a representação simbólica da equação que o indivíduo representa