|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectec.gp.GPNode
ec.gp.sasc.SASCNode
public abstract class SASCNode
Esta classe representa um nó que será controlado dinamicamente pelo método SSSC
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 java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final double SIGMA_MIN
public static final double CHILDREN_COMPAT_WEIGHT
public static final double FUNC_COMPAT_WEIGHT
public static final String P_MEAN_SHOCK
public static final String P_SSSC_BASE
public static final String P_DIMENSIONS
public static final String P_SIZE
public static final String P_BETA
public boolean useLatex
public double meanShock
public boolean switched
public double crossCount
public EvolutionState state
public double lastSemanticFactor
public double beta
Constructor Detail |
---|
public SASCNode()
Method Detail |
---|
public Parameter defaultBase()
defaultBase
in interface Prototype
defaultBase
in class GPNode
public void setup(EvolutionState state, Parameter base)
setup
in interface Prototype
setup
in interface Setup
setup
in class GPNode
state
- Objeto EvolutionState que guarda as informações sobre a evolução do processobase
- 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.public double getCrossCount()
public void resetSwitches()
public double getSigma()
public void resetNode(EvolutionState state, int thread)
resetNode
in class GPNode
public double sumSSACParameters()
public double getSSACParameter()
public Object pickNodeSSAC(double rnd)
public Object pickNodeSSAC(double rnd, double accumParameters, double totalParameters)
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Ó RAIZpublic double sumSSSCLambdaParameter(SASCNode nodeCompared, double beta)
public abstract double getSemanticCompatibilityFunction(int n, SASCNode nodeCompared)
dimension
- dimensão em que a compatibilidade semântica será avaliadapublic double getSSSCLambdaParameter(SASCNode nodeCompared, double beta)
public Object pickNodeSSSCSecond(double rnd, SASCNode nodeCompared, double beta)
public Object pickNodeSSSCSecond(double rnd, double accumSigmaSemantics, double totalSigmaSemantics, SASCNode metaNode, double beta)
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Ó RAIZpublic double sumSSSCDeltaParameters(SASCNode rootNodeSecondParent)
public double getSSSCDeltaParameter(SASCNode rootNodeSecondParent)
public Object pickNodeSSSCFirst(double rnd, SASCNode rootNodeSecondParent)
public Object pickNodeSSSCFirst(double rnd, double accumParameters, double totalParameters, SASCNode rootNodeSecondParent)
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ÍDUOpublic abstract String getNodeName()
public String toString()
toString
in class GPNode
public String makeLatexTree()
makeLatexTree
in class GPNode
public String makeLatexTreePreCrossover(SASCNode nodePoint)
public String makeLatexTreePostCrossover(SASCNode nodePoint)
public String makeLatexTreePostCrossoverS(SASCNode nodePoint, boolean partCrossPoint)
partCrossPoint
- indica se o sub-ramo faz parte da parte trocada ou nãopublic void setSwitched()
public GPNode metaCloneReplacing(GPNode newSubtree, GPNode oldSubtree, double alpha, EvolutionState state, int thread)
newSubtree
- sub-ramo que não pertence à árvore do indivíduo, e que passará a integrá-la através do crossoveroldSubtree
- sub-ramo que pertence à árvore do indivíduo, e será substituído através do crossoveralpha
- parâmetro alpha que será utilizado para atualizar a parameter tree do indivíduostate
- objeto que resumo o estágio atual do processo evolutivothread
- thread de processamento, utilizado principalmente para o caso de multi-processamento, não contemplado aqui
public GPNode metaCloneReplacingNoSubclone(GPNode newSubtree, GPNode oldSubtree)
newSubtree
- sub-ramo que não pertence à árvore do indivíduo, e que passará a integrá-la através do crossoveroldSubtree
- sub-ramo que pertence à árvore do indivíduo, e será substituído através do crossover
public double sumNodes()
public boolean hasBigSigma(double bigSigma)
public boolean hasChild(GPNode nodeChild)
public boolean hasNode(GPNode nodeChild)
public boolean hasSameNodeWithGreaterDepth(GPNode nodeCompared)
public void updateSigma(double alpha, EvolutionState state, int thread)
alpha
- parâmetro alpha, conforme especificação do método SSSCstate
- objeto que resume o estágio atual do processo evolutivothread
- thread atual de processamentopublic double getTotalBuildingBlocks()
public String getSymbolicEquation()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |