ec.gp.sasc.statistics
Class SASCStatistics

java.lang.Object
  extended by ec.Statistics
      extended by ec.gp.koza.KozaStatistics
          extended by ec.gp.sasc.statistics.SASCStatistics
All Implemented Interfaces:
Setup, Singleton, SteadyStateStatisticsForm, Serializable

public class SASCStatistics
extends KozaStatistics

Esta classe é responsável por armazenar estatísticas específicas sobre o processo de crossover

Author:
Rafael Inhasz
See Also:
Serialized Form

Field Summary
 Individual best_of_all
           
 Individual[] best_of_generation
           
 int bestOfLog
           
static double BIG_SIGMA
           
 int[] breedLog
          The Statistics' log
 boolean logMetaControle
           
 int[] metaControleLog
           
static String P_BESTOF_FILE
           
static String P_DETAIL_FILE
           
 
Fields inherited from class ec.gp.koza.KozaStatistics
best_of_run, P_COMPRESS, P_FULL, P_STATISTICS_FILE, statisticslog
 
Fields inherited from class ec.Statistics
children, P_CHILD, P_NUMCHILDREN
 
Constructor Summary
SASCStatistics()
           
 
Method Summary
 void finalStatistics(EvolutionState state, int result)
          Finaliza os procedimentos de estatísticas e controles
 Individual getBestOfIndividual(EvolutionState state)
          Retorna o melhor indivíduo já registrado até aqui
 int getIndexOfBestOfIndividual(EvolutionState state)
          Retorna o índice no array do melhor indivíduo registrado até aqui
 void initBestOfFile(EvolutionState state)
          Executa os procedimentos de inicialização do arquivo de melhores indivíduos de todas as gerações
 void newGeneration(EvolutionState state)
          Executa os procedimentos necessários para uma nova geração
 void postCrossoverStatistics(EvolutionState state)
          Executa os procedimentos posteriores a uma operação de crossover
 void postEvaluationStatistics(EvolutionState state)
          Método executado após a etapa de avaliação dos indivíduos.
 void postInitializationStatistics(EvolutionState state)
          Método executado após a inicialização do objeto
 void preBreedingStatistics(EvolutionState state)
          Executa os procedimentos anteriores ao início do processo de aplicação dos operadores genéticos
 void preCrossoverStatistics(EvolutionState state, int individualOrder, int subpopulation)
          Executa os procedimentos anteriores a um crossover
 void preMutationStatistics(EvolutionState state, int individualOrder, int subpopulation)
          Executa os procedimentos anteriores a uma mutação
 void preReproductionStatistics(EvolutionState state, int individualOrder, int subpopulation)
          Executa os procedimentos anteriores a uma operação de reprodução (clonagem)
 void printCrossoverParent(EvolutionState state, GPIndividual ind, SASCNode node, int orderParent, int subpopulation, int subpopParent)
          Grava um dos indivíduos selecionados para o crossover no arquivo de detalhes, com destaque para o ponto de combinação selecionado
 void printFirstChildCrossover(EvolutionState state, GPIndividual ind, SASCNode node, int subpopulation)
          Grava o primeiro filho gerado pelo crossover no arquivo de detalhes, com destaque para o sub-ramo alterado no processo
 void printMutationChild(EvolutionState state, GPIndividual ind, SASCNode node, int subpopulation)
          Grava o resultado da mutação no arquivo de detalhes, com destaque para o sub-ramo alterado no processo
 void printMutationParent(EvolutionState state, GPIndividual ind, SASCNode node, int subpopulation)
          Grava o indivíduo selecionado para mutação no arquivo de detalhes, com destaque para o ponto de mutação selecionado
 void printSecondChildCrossover(EvolutionState state, GPIndividual ind, SASCNode node, int individualOrder, int subpopulation)
          Grava o segundo filho gerado pelo crossover no arquivo de detalhes, com destaque para o sub-ramo alterado no processo
 void setup(EvolutionState state, Parameter base)
          Método para a configuração do objeto
 
Methods inherited from class ec.gp.koza.KozaStatistics
postBreedingStatistics, preEvaluationStatistics, preInitializationStatistics
 
Methods inherited from class ec.Statistics
generationBoundaryStatistics, individualsBredStatistics, individualsEvaluatedStatistics, postCheckpointStatistics, postInitialEvaluationStatistics, postPostBreedingExchangeStatistics, postPreBreedingExchangeStatistics, preCheckpointStatistics, preInitialEvaluationStatistics, prePostBreedingExchangeStatistics, prePreBreedingExchangeStatistics
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface ec.steadystate.SteadyStateStatisticsForm
generationBoundaryStatistics, individualsBredStatistics, individualsEvaluatedStatistics, postInitialEvaluationStatistics, preInitialEvaluationStatistics
 

Field Detail

P_DETAIL_FILE

public static final String P_DETAIL_FILE
See Also:
Constant Field Values

P_BESTOF_FILE

public static final String P_BESTOF_FILE
See Also:
Constant Field Values

breedLog

public int[] breedLog
The Statistics' log


bestOfLog

public int bestOfLog

metaControleLog

public int[] metaControleLog

logMetaControle

public boolean logMetaControle

BIG_SIGMA

public static final double BIG_SIGMA
See Also:
Constant Field Values

best_of_generation

public Individual[] best_of_generation

best_of_all

public Individual best_of_all
Constructor Detail

SASCStatistics

public SASCStatistics()
Method Detail

setup

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

Specified by:
setup in interface Setup
Overrides:
setup in class KozaStatistics
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". Os principais parâmetros obtidos por essa classe são: detail.file - nome do arquivo onde todos os crossovers serão detalhados em formato latex, se o parâmetro logDetails = true bestof.file - nome do arquivo onde serão gravados os melhores indivíduos de cada geração, também em formato latex

postInitializationStatistics

public void postInitializationStatistics(EvolutionState state)
Método executado após a inicialização do objeto

Overrides:
postInitializationStatistics in class KozaStatistics

postEvaluationStatistics

public void postEvaluationStatistics(EvolutionState state)
Método executado após a etapa de avaliação dos indivíduos. Aqui está definida a seguinte regra: se a geração for múltipla de 100, é feito o log completo: - detalhamento de todos os crossovers (detail.file) - meta-controle: grava um arquivo para cada subpopulação / geração, contendo todos os indivíduos da população com sigma > SASCNode.BIG_SIGMA; o arquivo terá o nome "subpop." + subpopulation + ".meta-gen." + generation A gravação do arquivo bestof.file ocorre sempre, até mesmo porque é único e contém indivíduos de todas as gerações

Overrides:
postEvaluationStatistics in class KozaStatistics

getBestOfIndividual

public Individual getBestOfIndividual(EvolutionState state)
Retorna o melhor indivíduo já registrado até aqui

Parameters:
state -
Returns:

getIndexOfBestOfIndividual

public int getIndexOfBestOfIndividual(EvolutionState state)
Retorna o índice no array do melhor indivíduo registrado até aqui

Parameters:
state -
Returns:

newGeneration

public void newGeneration(EvolutionState state)
Executa os procedimentos necessários para uma nova geração

Parameters:
state -

initBestOfFile

public void initBestOfFile(EvolutionState state)
Executa os procedimentos de inicialização do arquivo de melhores indivíduos de todas as gerações

Parameters:
state -

preBreedingStatistics

public void preBreedingStatistics(EvolutionState state)
Executa os procedimentos anteriores ao início do processo de aplicação dos operadores genéticos

Overrides:
preBreedingStatistics in class KozaStatistics

preCrossoverStatistics

public void preCrossoverStatistics(EvolutionState state,
                                   int individualOrder,
                                   int subpopulation)
Executa os procedimentos anteriores a um crossover

Parameters:
state -
individualOrder - posição do primeiro reprodutor no array de indivíduos
subpopulation - subpopulação à qual pertence o primeiro reprodutor

preMutationStatistics

public void preMutationStatistics(EvolutionState state,
                                  int individualOrder,
                                  int subpopulation)
Executa os procedimentos anteriores a uma mutação

Parameters:
state -
individualOrder - posição do primeiro indivíduo no array de indivíduos
subpopulation - subpopulação à qual pertence o primeiro indivíduo

preReproductionStatistics

public void preReproductionStatistics(EvolutionState state,
                                      int individualOrder,
                                      int subpopulation)
Executa os procedimentos anteriores a uma operação de reprodução (clonagem)

Parameters:
state -
individualOrder - posição do primeiro indivíduo no array de indivíduos
subpopulation - subpopulação à qual pertence o primeiro indivíduo

postCrossoverStatistics

public void postCrossoverStatistics(EvolutionState state)
Executa os procedimentos posteriores a uma operação de crossover

Parameters:
state -

printCrossoverParent

public void printCrossoverParent(EvolutionState state,
                                 GPIndividual ind,
                                 SASCNode node,
                                 int orderParent,
                                 int subpopulation,
                                 int subpopParent)
Grava um dos indivíduos selecionados para o crossover no arquivo de detalhes, com destaque para o ponto de combinação selecionado

Parameters:
state -
ind - indivíduo selecionado
node - ponto de combinação do crossover
orderParent - ordem: primeiro (1) ou segundo (2) reprodutor
subpopulation - subpopulação à qual pertence o pai

printMutationParent

public void printMutationParent(EvolutionState state,
                                GPIndividual ind,
                                SASCNode node,
                                int subpopulation)
Grava o indivíduo selecionado para mutação no arquivo de detalhes, com destaque para o ponto de mutação selecionado

Parameters:
state -
ind - indivíduo selecionado
node - ponto de combinação do crossover
subpopulation - subpopulação à qual pertence o pai

printFirstChildCrossover

public void printFirstChildCrossover(EvolutionState state,
                                     GPIndividual ind,
                                     SASCNode node,
                                     int subpopulation)
Grava o primeiro filho gerado pelo crossover no arquivo de detalhes, com destaque para o sub-ramo alterado no processo

Parameters:
state -
ind - indivíduo selecionado
node - ponto de combinação do crossover
subpopulation - subpopulação à qual pertence o pai

printMutationChild

public void printMutationChild(EvolutionState state,
                               GPIndividual ind,
                               SASCNode node,
                               int subpopulation)
Grava o resultado da mutação no arquivo de detalhes, com destaque para o sub-ramo alterado no processo

Parameters:
state -
ind - indivíduo selecionado
node - ponto de combinação do crossover
orderParent - ordem: primeiro (1) ou segundo (2) reprodutor
subpopulation - subpopulação à qual pertence o pai

printSecondChildCrossover

public void printSecondChildCrossover(EvolutionState state,
                                      GPIndividual ind,
                                      SASCNode node,
                                      int individualOrder,
                                      int subpopulation)
Grava o segundo filho gerado pelo crossover no arquivo de detalhes, com destaque para o sub-ramo alterado no processo

Parameters:
state -
ind - indivíduo selecionado
node - ponto de combinação do crossover
subpopulation - subpopulação à qual pertence o pai

finalStatistics

public void finalStatistics(EvolutionState state,
                            int result)
Finaliza os procedimentos de estatísticas e controles

Specified by:
finalStatistics in interface SteadyStateStatisticsForm
Overrides:
finalStatistics in class KozaStatistics