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)
bool Acao(const char *acao)
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)
void DebugPopulacaoAE(TVector< TPonto > &populacao, const char *titulo)
virtual void Copiar(TPonto objecto)
Fica com uma cópia do objecto.
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()
Chapar antes da execução do algoritmo. Limpa valores estatísticos, e fixa o instante limite de tempo para...
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)
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)
virtual void Vizinhanca(TVector< TPonto > &vizinhos)
~TProcuraMelhorativa(void)
void ResetParametros() override
Inicializa os parametros, indicadores e instâncias.
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.
static int resultado
Resultado retornado pelo algoritmo na última execução.
virtual bool Parar(void)
Verifica se a procura deve ser interrompida.