TProcura
Biblioteca em C++ para testes paramétricos de algoritmos, e coleção de algoritmos de procura e otimização
Loading...
Searching...
No Matches
TCodificacaoInteira.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 vizIncDecValorCI = 1, // incrementa/decrementa valor
13 vizIncDecPot2CI, // incrementa/decrementa potência de 2
14 vizTrocaValorCI, // troca valores entre dois elementos
15 vizInserirCI, // insere um elemento noutro local (deslocando os outros)
16 vizTrocaParCI, // troca dois elementos (permuta)
17 vizInverterSegmentoCI, // inverte um segmento
18};
19
21 distHammingCI = 1, // número de posições com valores diferentes
22 distEuclidianaCI, // distância euclidiana (raiz quadrada da soma dos quadrados das diferenças)
23 distManhattanCI // distância Manhattan (soma das diferenças absolutas)
24};
25
28{
29public:
32
33 TVector<int> estado; // codificação inteira
34 static int nElementos; // número de elementos na permutação
35 static TVector<int> maxValor; // valor máximo para cada elemento
36
37 // métodos necessários redefinir
38 int Avaliar(void) = 0;
39 TPonto Duplicar(void) = 0;
40
41 // deve carregar a instância, para variáveis estáticas, da subclasse
42 // definir valores globais: nElementos
43 void Inicializar(void)=0;
44
45 // métodos que podem ser redefinidos
46 void Debug(bool completo = true) override;
47
48 // métodos que não se prevê que sejam redefinidos
49 void Copiar(TPonto objecto);
50 void NovaSolucao(void);
51 void ResetParametros();
52 // operadores melhorativos
54 void Mutar(void);
55 void Cruzamento(TPonto a, TPonto b);
56 int Distancia(TPonto a);
57
58 using TProcura::Debug;
59private:
60 static const char* nomesVizinhanca[];
61};
62
ECodificacaoInteira
@ LIMITE_VIZINHOS_CI
@ TIPO_DISTANCIA_CI
@ PARAMETROS_CI
@ TIPO_VIZINHO_CI
@ TIPO_CRUZAR_CI
@ TIPO_MUTAR_CI
ETiposDistanciaInteira
@ distHammingCI
@ distEuclidianaCI
@ distManhattanCI
ETiposVizinhancaInteira
@ vizInverterSegmentoCI
@ vizIncDecPot2CI
@ vizTrocaValorCI
@ vizInserirCI
@ vizTrocaParCI
@ vizIncDecValorCI
@ PARAMETROS_MELHORATIVA
void Debug(bool completo=true) override
Mostra o estado no ecrã, para debug.
void Cruzamento(TPonto a, TPonto b)
static TVector< int > maxValor
void Vizinhanca(TVector< TPonto > &vizinhos)
void ResetParametros()
Inicializa os parametros, indicadores e instâncias.
void Copiar(TPonto objecto)
Fica com uma cópia do objecto.
void Inicializar(void)=0
Coloca o objecto no estado inicial da procura.
TPonto Duplicar(void)=0
Cria um objecto que é uma cópia deste.
int Avaliar(void)=0
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