5const char* TCodificacaoInteira::nomesVizinhanca[] = {
51 {
"TIPO_CRUZAR", 1, 0, 10,
"Cruzamento: N - N-pontos, 0 - uniforme",
nomesCruzamento,
_TV(
"0,2,3") },
52 {
"TIPO_MUTAR", 0,0,100,
"Mutação: 0 - aplica um vizinho aleatório (seja 1 só elemento ou segmento), 1 a 100, probabilidade de mutação de cada elemento, em percentagem (1 a 100)",
NULL,
_TV(
"0,2,3") },
53 {
"TIPO_VIZINHO", 1,1,6,
"Vizinhança: vários métodso para vizinhanças de inteiros", nomesVizinhanca },
54 {
"LIMITE_VIZINHOS", 0,0,1000,
55"LIMITE_VIZINHOS, conforme a vizinhança, se 0 não há limite\n\
56- incDecPot2 + trocaValor - limita a diferença máxima de valores\n\
57- inserir + trocaPar + inverterSegmento - limita a distância entre pares" },
58 {
"TIPO_DISTANCIA", 1,1,3,
"Distância: vários métodso para distâncias de inteiros",
nomesDistancias,
_TV(
"0,2,3") }
144 for (
int k = (
i <
j ?
i :
j);
k < (
i <
j ?
j :
i);
k++)
194 nomesVizinhanca[tipo - 1],
i,
j);
@ EXTRA_DEBUG
Nível extra para debug muito detalhado (uso interno).
@ NIVEL_DEBUG
Nível de debug, de reduzido a completo.
TVector< int > _TV(const char *str)
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.
TPonto Duplicar(void)=0
Cria um objecto que é uma cópia deste.
virtual void Cruzamento(TPonto a, TPonto b)
int custo
Custo total, atualizada após Avaliar()
virtual void Vizinhanca(TVector< TPonto > &vizinhos)
void ResetParametros() override
Inicializa os parametros, indicadores e instâncias.
static bool memoriaEsgotada
Flag indicando problemas de memória esgotada.
int Parametro(int id) const
static int resultado
Resultado retornado pelo algoritmo na última execução.
static TVector< TParametro > parametro
Parâmetros a serem utilizados na configuração atual.
TVector< Item > & BeASet()
Converte o vetor num conjunto: remove duplicados e ordena.
TVector< Item > & Insert(Item a, int index=0)
Insere um único elemento na posição indicada.
TVector< Item > & Delete(int i)
Remove o elemento na posição i deslocando os seguintes.
unsigned int rand(int seq)
Retorna o próximo valor pseudo-aleatório.