14 for (
int i = 0;
i <
n;
i++)
22 printf(
"%d",
Bit(
i) ? 1 : 0);
30 {
"TIPO_CRUZAR", 1, 0, 10,
"TIPO_CRUZAR: 1 - um ponto, >=2 N-pontos, 0 - uniforme", {
31 "uniforme",
"2-pontos",
"3-pontos",
"4-pontos",
"5-pontos",
32 "6-pontos",
"7-pontos",
"8-pontos",
"9-pontos",
"10-pontos" }},
33 {
"TIPO_MUTAR", 0,0,100,
"TIPO_MUTAR: 0 - aplica um vizinho aleatório (seja 1 só elemento ou segmento), 1 a 100, probabilidade de mutação de cada bit, em percentagem (1 a 100)" },
34 {
"TIPO_VIZINHO", 1,1,1000,
"Troca segmento: 1 - apenas 1 bit de cada vez, >=2 troca um segmento de N bits" }
@ EXTRA_DEBUG
Nível extra para debug muito detalhado (uso interno).
@ NIVEL_DEBUG
Nível de debug, de reduzido a completo.
void Vizinhanca(TVector< TPonto > &vizinhos)
void ResetParametros()
Inicializa os parâmetros, indicadores e instâncias.
void Debug(bool completo=true) override
Mostra o estado no ecrã, para debug.
TVector< uint64_t > estado
void Cruzamento(TPonto a, TPonto b)
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 parâmetros, 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.
unsigned int rand(int seq)
Retorna o próximo valor pseudo-aleatório.