TProcura
Biblioteca em C++ para testes paramétricos de algoritmos, e coleção de algoritmos de procura e otimização
Loading...
Searching...
No Matches
TProcura.h File Reference
#include "TVector.h"
#include <time.h>
#include <stdint.h>
#include <limits.h>
#include <stdio.h>
#include <inttypes.h>
#include <cstdarg>
#include "compact.h"
Include dependency graph for TProcura.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  SIndicador
 
struct  SParametro
 Estrutura para registo de um parâmetro. More...
 
struct  SResultado
 
class  TProcura
 Classe base para todas as procuras. More...
 

Typedefs

typedef struct SIndicador TIndicador
 
typedef struct SParametro TParametro
 Estrutura para registo de um parâmetro.
 
typedef struct SResultado TResultado
 

Enumerations

enum  EIndicadoresProcura { IND_RESULTADO = 0 , IND_TEMPO , IND_ITERACOES , IND_PROCURA }
 
enum  EParametrosProcura {
  ALGORITMO = 0 , NIVEL_DEBUG , SEMENTE , LIMITE_TEMPO ,
  LIMITE_ITERACOES , PARAMETROS_PROCURA
}
 Identifica um parâmetro específico no código. More...
 
enum  ENivelDebug {
  NADA = 0 , ATIVIDADE , PASSOS , DETALHE ,
  COMPLETO , EXTRA_DEBUG
}
 Níveis de detalhamento para debug. More...
 
enum  EOperacao { GRAVAR = 0 , LER }
 Define o sentido da operação de entrada/saída de dados. More...
 
enum  ECronometro {
  CONT_ALGORITMO = 0 , CONT_TESTE , CONT_REPORTE , CONT_PREPARACAO ,
  CONT_FINALIZACAO , CONT_CHECKPOINT , CONT_NUMERO
}
 Define os tipos de contadores de cronômetro. More...
 
enum  ETagMPI { TAG_TRABALHO = 0 , TAG_CABECALHO , TAG_VALORES }
 Define as tags MPI para comunicação entre processos. More...
 

Variables

constexpr int NAO_LIDO = 1024
 

Typedef Documentation

◆ TIndicador

typedef struct SIndicador TIndicador

◆ TParametro

typedef struct SParametro TParametro

Estrutura para registo de um parâmetro.

Permite registrar um parâmetro, armazenando seu valor, limites máximo e mínimo, além de nome e descrição. Cada valor pode ter também um nome, em vez de ser um número. Podem e devem ser adicionados parâmetros específicos de cada problema, de modo a poderem ser testados no teste empírico.

Note
Existe uma vetor de parametros declarada de forma estática, de modo a aceder a qualquer parametro de forma global no código. A ordem dos parametros estão de acordo com o tipo enumerado EParametrosConstrutiva
See also
EParametrosProcura e ResetParametros()

Exemplo:

if(Parametro(NIVEL_DEBUG) > PASSOS)
// mostrar informação de debug correspondendo ao nível detalhe ou superior
@ PASSOS
Exibe passos intermediários.
Definition TProcura.h:65
@ NIVEL_DEBUG
Nível de debug, de reduzido a completo.
Definition TProcura.h:43

◆ TResultado

typedef struct SResultado TResultado

Enumeration Type Documentation

◆ ECronometro

Define os tipos de contadores de cronômetro.

Note
Utilizado na função Cronometro() para especificar o contador.
Enumerator
CONT_ALGORITMO 

Tempo da execução do algoritmo por instância.

CONT_TESTE 

Tempo total do teste (todas as execuções)

CONT_REPORTE 

Tempo entre mensagens durante o teste.

CONT_PREPARACAO 

Tempo de inicialização antes do teste.

CONT_FINALIZACAO 

Tempo de encerramento/exportação.

CONT_CHECKPOINT 

Tempo entre checkpoints ou estados internos.

CONT_NUMERO 

Número de contadores disponíveis.

Definition at line 83 of file TProcura.h.

◆ EIndicadoresProcura

Enumerator
IND_RESULTADO 

resultado do algoritmo

IND_TEMPO 

tempo em milisegundos consumidos

IND_ITERACOES 

número de iterações consumidas

IND_PROCURA 

Marcador para permitir a extensão do enum em subclasses.

Definition at line 16 of file TProcura.h.

◆ ENivelDebug

Níveis de detalhamento para debug.

Controla a quantidade de informações exibidas durante a execução do algoritmo.

See also
nivelDebug
if(Parametro(NIVEL_DEBUG) > PASSOS)
// mostrar informação de debug correspondendo ao nível detalhe ou superior
Enumerator
NADA 

Sem informações de debug.

ATIVIDADE 

Apenas eventos principais.

PASSOS 

Exibe passos intermediários.

DETALHE 

Debug detalhada sobre estados e decisões.

COMPLETO 

Mostra toda a execução detalhadamente.

EXTRA_DEBUG 

Nível extra para debug muito detalhado (uso interno).

Definition at line 62 of file TProcura.h.

◆ EOperacao

enum EOperacao

Define o sentido da operação de entrada/saída de dados.

Note
Utilizado em funções que requerem distinção entre operação de leitura e gravação.
Enumerator
GRAVAR 
LER 

Definition at line 76 of file TProcura.h.

◆ EParametrosProcura

Identifica um parâmetro específico no código.

Permite aceder a cada parâmetro sem precisar saber seu código numérico. Índice do vetor de parametros, na classe TProcura.

Note
O último elemento (parametrosProcura) não representa um parâmetro real. Existe para permitir a criação de uma enumeração adicional em subclasses, caso seja necessário adicionar parâmetros específicos.
See also
TParametro, ExecutaAlgoritmo()
if(Parametro(NIVEL_DEBUG) > PASSOS)
// mostrar informação de debug correspondendo ao nível detalhe ou superior
Enumerator
ALGORITMO 

Algoritmo base a executar.

NIVEL_DEBUG 

Nível de debug, de reduzido a completo.

SEMENTE 

Semente aleatória para inicializar a sequência de números pseudo-aleatórios.

LIMITE_TEMPO 

Tempo limite em segundos.

LIMITE_ITERACOES 

Número máximo de iterações (0 significa sem limite).

PARAMETROS_PROCURA 

Marcador para permitir a extensão do enum em subclasses.

Definition at line 41 of file TProcura.h.

◆ ETagMPI

enum ETagMPI

Define as tags MPI para comunicação entre processos.

Enumerator
TAG_TRABALHO 
TAG_CABECALHO 
TAG_VALORES 

Definition at line 96 of file TProcura.h.

Variable Documentation

◆ NAO_LIDO

constexpr int NAO_LIDO = 1024
constexpr

Definition at line 14 of file TProcura.h.