3#include "../TProcura.h"
@ IND_GERACOES
número de estados gerados durante a procura
@ IND_EPOCAS
Número de épocas decorridas num algoritmo evolutivo. Uma época é uma geração única.
@ IND_MELHORATIVA
Marcador para permitir a extensão do enum em subclasses.
TProcuraMelhorativa * TPonto
@ IND_PROCURA
Marcador para permitir a extensão do enum em subclasses.
@ PARAMETROS_PROCURA
Marcador para permitir a extensão do enum em subclasses.
TVector< TPonto > SelecionarSobreviventesAE(TVector< TPonto > &populacao, TVector< TPonto > &descendentes)
void ObterExtremos(TVector< TPonto > &populacao, int &minCusto, int &maxCusto)
static int epocas
Número de épocas decorridas num algoritmo evolutivo. Uma época é uma geração única.
void LibertarVector(TVector< TPonto > &vector, int excepto=-1)
TVector< TPonto > SelecionarPaisAE(TVector< TPonto > &populacao)
virtual void Cruzamento(TPonto a, TPonto b)
virtual void Copiar(TPonto objecto)
Fica com uma cópia do objecto.
void DebugID(int id, int pop)
void DebugPassoAG(int pop, int min, int max)
void CalcularAvaliacoes(TVector< TPonto > &vizinhos, int &melhorValor, int &melhorIndice)
virtual void NovaSolucao(void)
TPonto MelhorAtual(TPonto &atual, TVector< TPonto > &vizinhos, int indice)
void DebugOptimoLocal(TPonto solucao)
TVector< TPonto > AplicarDiversidadeAE(TVector< TPonto > &populacao)
TVector< TPonto > CompletarPopulacaoAE(TVector< TPonto > &populacao)
TVector< TPonto > ReproduzirAE(TVector< TPonto > &pais, TVector< TPonto > &populacao)
void DiversidadeAE(TVector< TPonto > &populacao, int &minDist, int &maxDist, int &avgDist, int &melhorPior)
void LimparEstatisticas()
Chamar antes da execução do algoritmo. Limpa valores estatísticos, e fixa o instante limite de tempo ...
void DebugMelhorEncontrado(TPonto ponto)
void Inicializar(void)
Inicializar a instância. No final, chamar NovaSolucao() para inicializar o estado.
void Explorar() override
definir para explorar manualmente os dados (não definido em TProcura, apenas em TProcuraConstrutiva)
void DebugPopulacaoAE(TVector< TPonto > &populacao, TString titulo)
virtual int Avaliar(void)
void DebugGeracaoAE(int epoca, TVector< TPonto > &populacao)
int MelhorCusto(TVector< TPonto > &populacao, bool inverter=false)
int64_t Indicador(int id) override
Redefinição. Ver TProcura::Indicador().
void DebugPassoEM(TPonto solucao)
void DebugInicioEM(int ID, TPonto solucao)
int custo
Custo total, atualizada após Avaliar()
static int lowerBound
Lower Bound, se existir.
virtual int Distancia(TPonto a)
TProcuraMelhorativa(void)
void Selecao(int &pai, int &mae, TVector< int > &pesos, int total)
void DebugCruzamentoAG(int gPai, int gMae, int gFilho, int mutou)
void DebugDiversidadeAE(TVector< TPonto > &populacao, TString titulo)
virtual void Vizinhanca(TVector< TPonto > &vizinhos)
~TProcuraMelhorativa(void)
void ResetParametros() override
Inicializa os parâmetros, indicadores e instâncias.
static const char * debugPrefixo
Utilizar como prefixo em cada linha no método Debug() do estado.
bool Parar(void)
Verifica se a procura deve ser interrompida.
void VerificaMelhor(TPonto &melhor, TPonto atual)
void OrdemValor(TVector< TPonto > &populacao, TVector< int > &id)
int ExecutaAlgoritmo()
Executa o algoritmo com os parametros atuais.
virtual TPonto Duplicar(void)=0
Cria um objecto que é uma cópia deste.
static int geracoes
Número de estados gerados.
Classe base para todas as procuras.
virtual void Inicializar(void)
Coloca o objecto no estado inicial da procura.
static int resultado
Resultado retornado pelo algoritmo na última execução.
virtual bool Parar(void)
Verifica se a procura deve ser interrompida.