TProcura
Biblioteca em C++ para testes paramétricos de algoritmos, e coleção de algoritmos de procura e otimização
Loading...
Searching...
No Matches
TCodificacaoPermutacao.h
Go to the documentation of this file.
1#pragma once
3
4// nomes dos parâmetros fixos na codificação binária
10
12 vizInserirCP = 1, // insere um elemento noutro local (deslocando os outros)
13 vizTrocaParCP, // troca dois elementos (permuta)
14 vizInverterSegmentoCP, // inverte um segmento
15};
16
18 distHammingCP = 1, // número de posições com valores diferentes
19 distKendallTauCP, // distância Kendall tau (número de pares fora de ordem)
20 distSpearmanFootruleCP // distância Spearman footrule (soma das diferenças absolutas das posições)
21};
22
25{
26public:
29
30 TVector<int> estado; // codificação por permutação
31 static int nElementos; // número de elementos na permutação
32
33 // métodos necessários redefinir
34 int Avaliar(void) = 0;
35 TPonto Duplicar(void) = 0;
36
37 // deve carregar a instância, para variáveis estáticas, da subclasse
38 // definir valores globais: nElementos
39 void Inicializar(void)=0;
40
41 // métodos que podem ser redefinidos
42 void Debug(bool completo = true) override;
43
44 // métodos que não se prevê que sejam redefinidos
45 void Copiar(TPonto objecto);
46 void NovaSolucao(void);
47 bool Acao(const char* acao);
48 void ResetParametros();
49 // operadores melhorativos
51 void Mutar(void);
52 void Cruzamento(TPonto a, TPonto b);
53 int Distancia(TPonto a);
54
55 using TProcura::Debug;
56private:
57 static const char* nomesVizinhanca[];
58};
59
ETiposDistanciaPermutacao
@ distKendallTauCP
@ distSpearmanFootruleCP
ECodificacaoPermutacao
@ TIPO_DISTANCIA_CP
@ LIMITE_VIZINHOS_CP
@ TIPO_MUTAR_CP
@ PARAMETROS_CP
@ TIPO_VIZINHO_CP
@ TIPO_CRUZAR_CP
ETiposVizinhancaPermutacao
@ vizInverterSegmentoCP
@ PARAMETROS_MELHORATIVA
void Debug(bool completo=true) override
Mostra o estado no ecrã, para debug.
void Cruzamento(TPonto a, TPonto b)
bool Acao(const char *acao)
void Inicializar(void)=0
Coloca o objecto no estado inicial da procura.
void Vizinhanca(TVector< TPonto > &vizinhos)
TPonto Duplicar(void)=0
Cria um objecto que é uma cópia deste.
void ResetParametros()
Inicializa os parametros, indicadores e instâncias.
void Copiar(TPonto objecto)
Fica com uma cópia do objecto.
virtual void Debug(bool completo=true)
Mostra o estado no ecrã, para debug.
Definition TProcura.cpp:93
static int resultado
Resultado retornado pelo algoritmo na última execução.
Definition TProcura.h:493