TProcura
Biblioteca em C++ para testes paramétricos de algoritmos, e coleção de algoritmos de procura e otimização
Loading...
Searching...
No Matches
CTesteTVector Class Reference

Classe de teste para TVector, integrada na framework TProcura. More...

#include <CTesteTVector.h>

Inheritance diagram for CTesteTVector:
Collaboration diagram for CTesteTVector:

Public Member Functions

 CTesteTVector ()
 
 ~CTesteTVector ()
 
void ResetParametros ()
 Inicializa parâmetros de teste.
 
void Inicializar (void)
 Inicializa dados e estado para teste.
 
void Debug (bool completo=true) override
 Mostra informação de debug sobre o estado dos vetores.
 
int ExecutaAlgoritmo ()
 Executa o algoritmo de teste (a definir pelo utilizador).
 
int64_t Indicador (int id)
 Calcula indicadores de teste.
 
virtual void Debug (bool completo=true)
 Mostra o estado no ecrã, para debug.
 
- Public Member Functions inherited from TProcura
 TProcura (void)
 
virtual ~TProcura (void)
 
virtual bool Parar (void)
 Verifica se a procura deve ser interrompida.
 
virtual void TesteManual (const char *nome)
 Inicializa a interação com o utilizador.
 
virtual void TesteEmpirico (TVector< int > instancias, char *ficheiro=NULL)
 Executa testes empíricos, em todas as configurações guardadas, nas instâncias selecionadas.
 
virtual void TesteEmpiricoGestor (TVector< int > instancias, char *ficheiro=NULL)
 Teste empírico com modo mestre-escravo (este é o mestre)
 
virtual void TesteEmpiricoTrabalhador (TVector< int > instancias, char *ficheiro=NULL)
 Teste empírico com modo mestre-escravo (este é o escravo)
 
virtual void main (int argc, char *argv[], const char *nome)
 Inicializa a interação com o utilizador.
 
virtual void LimparEstatisticas ()
 Chapar antes da execução do algoritmo. Limpa valores estatísticos, e fixa o instante limite de tempo para a execução.
 
virtual void ExecucaoTerminada ()
 Chamar após a execução do algoritmo. Grava o tempo consumido.
 
virtual void Explorar ()
 definir para explorar manualmente os dados (não definido em TProcura, apenas em TProcuraConstrutiva)
 
virtual void MostrarSolucao ()
 definir para visualizar a solução
 
virtual TVector< int64_tCodificarSolucao ()
 retorna um vetor de inteiros com a codificação da solução (esta codificação será adicionada aos indicadores, no ficheiro CSV de resultados)
 
bool TempoExcedido ()
 
bool IteracoesExcedido ()
 
int Parametro (int id) const
 
intParametro (int id)
 
bool ParametroAtivo (int id, TVector< int > *valores=NULL) const
 

Static Public Member Functions

static bool Debug (ENivelDebug tipo, bool exato, const char *fmt,...)
 Mostra uma informação de debug, se o nível de debug for suficiente.
 
- Static Public Member Functions inherited from TProcura
static int NovoValor (const char *prompt)
 
static charNovoTexto (const char *prompt)
 
static bool Debug (ENivelDebug tipo, bool exato, const char *fmt,...)
 Mostra uma informação de debug, se o nível de debug for suficiente.
 
static charMostraTempo (double segundos)
 Mostra tempo num formato humano.
 

Public Attributes

TVector< intdadosA
 
TVector< intdadosB
 Vetores de teste para operações TVector.
 
std::vector< intstdA
 
std::vector< intstdB
 Vetores equivalentes em STL para comparação.
 

Additional Inherited Members

- Static Public Attributes inherited from TProcura
static TParametro instancia = { NULL,1,1,1, NULL, NULL }
 ID da instância atual, a ser utilizado em SolucaoVazia().
 
static char ficheiroInstancia [256] = "instancia_"
 nome do ficheiro de uma instância - editado pelo utilizador (utilizar como prefixo, concatenando com ID da instância) pode ser utilizado para gravar a instãncia num novo formato, colocando um indicador ativo que é chamado após a execução (pode gravar a solução para ficheiro também, mas essa é mais facilmente gravada em CVS codificada em inteiros, onde fica associada à configuração utilizada para a gerar)
 
static TVector< TParametroparametro
 Parâmetros a serem utilizados na configuração atual.
 
static TVector< TIndicadorindicador
 Indicadores que podem ser calculados após a execução, quer com informação da instãncia, quer com resultado da última corrida.
 
static TVector< intindAtivo
 
static TVector< TVector< int > > configuracoes
 Conjuntos de configurações para teste empírico.
 
static int resultado = 0
 Resultado retornado pelo algoritmo na última execução.
 
static double tempo = 0
 tempo consumido na última execução.
 
static int iteracoes = 0
 Número total de iterações realizadas na última execução.
 
static clock_t instanteFinal = 0
 Instante final (deadline) da corrida atual.
 
static bool memoriaEsgotada = false
 Flag indicando problemas de memória esgotada.
 
static int mpiID = 0
 MPI - rank do processo.
 
static int mpiCount = 1
 MPI - número de processos.
 
static int modoMPI = 0
 Modo MPI.
 
- Protected Member Functions inherited from TProcura
void ExecutaTarefa (TVector< TResultado > &resultados, int inst, int conf)
 Executa uma tarefa num teste empírico.
 
void InserirRegisto (TVector< TResultado > &resultados, int inst, int conf)
 Insere um novo registo de resultados.
 
int64_t Registo (TResultado &resultado, int id)
 Procura um registo com determinado id.
 
void Registo (TResultado &resultado, int id, int64_t valor)
 Atualiza o valor de um registo.
 
void MostraParametros (int detalhe=1, TVector< int > *idParametros=NULL)
 Mostra os parâmetros atuais.
 
void MostraIndicadores ()
 Mostra os indicadores definidos.
 
void MostrarConfiguracoes (int detalhe, int atual=-1)
 Mostra as configurações disponíveis.
 
bool EditarIndicadores ()
 Permite ao utilizador editar os indicadores a utilizar.
 
void EditarParametros ()
 Permite ao utilizador editar os parâmetros.
 
void EditarConfiguracoes ()
 Permite ao utilizador editar as configurações.
 
void MostraRelatorio (TVector< TResultado > &resultados, bool ultimo=false)
 Mostra um relatório dos resultados.
 
void ConfiguracaoAtual (TVector< int > &parametros, int operacao)
 Grava ou lê a configuração atual.
 
int NovaConfiguracao (TVector< int > &parametros)
 Adiciona uma nova configuração se ainda não existir.
 
int MelhorResultado (TResultado base, TResultado alternativa)
 Compara dois resultados para determinar o melhor.
 
void CalculaTorneio (TVector< TResultado > &resultados)
 Calcula o torneio entre várias configurações.
 
void MostrarTorneio (TVector< TVector< int > > &torneio, bool jogo=false)
 Mostra os resultados do torneio.
 
void BarraTorneio (bool nomes)
 Mostra a barra de progresso ou nomes do torneio.
 
TVector< TResultadoExtrairConfiguracao (TVector< TResultado > &resultados, int configuracao)
 Extrai resultados de uma determinada configuração.
 
void SolicitaInstancia ()
 Solicita ao utilizador o ID da instância a utilizar, permitindo alterar também o prefixo do ficheiro.
 
TVector< intSolicitaInstancias ()
 Solicita ao utilizador uma lista de instâncias.
 
bool RelatorioCSV (TVector< TResultado > &resultados, char *ficheiro)
 Gera um relatório CSV com os resultados.
 
void InserirConfiguracoes (char *str, TVector< int > &base)
 Insere configurações a partir de uma string.
 
void InserirConfiguracoes (TVector< int > &base, TVector< int > &produto, TVector< TVector< int > > &valores)
 Insere configurações gerando o produto cartesiano de valores.
 
void AjudaUtilizacao (const char *programa)
 Mostra ajuda de utilização do programa.
 
void DebugTabela (ENivelDebug nivel, TVector< int >tabela, const char *tipo="")
 Mostra uma tabela de inteiros, 10 elementos por linha, apenas se o nível de debug for igual ou superior.
 
bool JuntarCSV (const char *ficheiro)
 Juntar ficheiros CSV gerados por diferentes processos MPI em um único ficheiro.
 
- Static Protected Member Functions inherited from TProcura
static int Dominio (int &variavel, int min=INT_MIN, int max=INT_MAX)
 Limita o domínio de um parâmetro inteiro.
 
static void InicializaMPI (int argc, char *argv[])
 Inicializa o ambiente MPI, se aplicável.
 
static void FinalizaMPI ()
 Finaliza o ambiente MPI, se aplicável.
 
static double Cronometro (enum ECronometro id=CONT_ALGORITMO, bool inicialiar=false)
 retorna o tempo em segundos desde que o cronómetro foi inicializado
 

Detailed Description

Classe de teste para TVector, integrada na framework TProcura.

Permite testar as funcionalidades do vetor dinâmico (TVector), nomeadamente operações sobre vetores de inteiros, e comparar resultados com a STL.

See also
TProcura, TVector

Definition at line 14 of file CTesteTVector.h.

Constructor & Destructor Documentation

◆ CTesteTVector()

CTesteTVector::CTesteTVector ( )
inline

Definition at line 17 of file CTesteTVector.h.

◆ ~CTesteTVector()

CTesteTVector::~CTesteTVector ( )
inline

Definition at line 18 of file CTesteTVector.h.

Member Function Documentation

◆ Debug() [1/3]

void TProcura::Debug ( bool  completo = true)
virtual

Mostra o estado no ecrã, para debug.

Note
Redefinição opcional. Necessário para visualizar a procura, e explorar o espaço manualmente.

Esta função deverá mostrar claramente o estado atual, em texto mas da forma mais confortável possível. O formato texto destina-se principalmente a quem implementa o problema, e não utilizadores finais. É importante poder explorar o espaço de estados, para verificar a correta implementação dos sucessores, como também possa ver a árvore de procura dos algoritmos, para árvores pequenas, e assim detectar bugs.

Note
Antes de cada linha, chame a função NovaLinha(). Dependendo do contexto, NovaLinha() pode imprimir caracteres que representam os ramos da árvore de procura, criando uma visualização textual que simula a estrutura da procura.
A exibição do estado pode variar conforme o nível de debug definido em Parametro(NIVEL_DEBUG). Um nível menor pode mostrar informações mais sucintas, enquanto um nível maior pode detalhar todas as variáveis do estado.
See also
NovaLinha()
void CSubProblema::Debug(bool completo) // refazer comentários....
{
NovaLinha();
// neste exemplo o estado é apenas um número
printf("--<([%d])>--", variavel); // versão compacta do estado
else {
// versão mais elaborada do estado
}
}
@ ATIVIDADE
Apenas eventos principais.
Definition TProcura.h:64
@ NIVEL_DEBUG
Nível de debug, de reduzido a completo.
Definition TProcura.h:43
int Parametro(int id) const
Definition TProcura.h:522
static int resultado
Resultado retornado pelo algoritmo na última execução.
Definition TProcura.h:493

Reimplemented from TProcura.

Definition at line 283 of file TProcura.cpp.

◆ Debug() [2/3]

void CTesteTVector::Debug ( bool  completo = true)
overridevirtual

Mostra informação de debug sobre o estado dos vetores.

Reimplemented from TProcura.

Definition at line 74 of file CTesteTVector.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Debug() [3/3]

static bool TProcura::Debug ( ENivelDebug  tipo,
bool  exato,
const char fmt,
  ... 
)
inlinestatic

Mostra uma informação de debug, se o nível de debug for suficiente.

Parameters
tipoNível de detalhe necessário para exibir a mensagem.
exatoSe true, só imprime se o nível de debug for exatamente igual a tipo. Se false, imprime se for >= tipo.
fmtFormato da mensagem, como no printf.
Returns
true se a mensagem foi impressa, false caso contrário.
Note
Pode ser usado com || para encadear mensagens de diferentes níveis, imprimindo apenas a primeira que corresponda ao nível de debug atual.
// Exemplo: tenta imprimir no nível passos, senão no detalhe
Debug(passos, true, "\nPasso %d", iteracoes) ||
Debug(detalhe, false, "\nPasso %d | Melhor custo: %d", iteracoes, custo) ||
void Debug(bool completo=true) override
Mostra informação de debug sobre o estado dos vetores.
static int iteracoes
Número total de iterações realizadas na última execução.
Definition TProcura.h:497

Definition at line 550 of file TProcura.h.

◆ ExecutaAlgoritmo()

int CTesteTVector::ExecutaAlgoritmo ( )
virtual

Executa o algoritmo de teste (a definir pelo utilizador).

Reimplemented from TProcura.

Definition at line 98 of file CTesteTVector.cpp.

Here is the call graph for this function:

◆ Indicador()

int64_t CTesteTVector::Indicador ( int  id)
virtual

Calcula indicadores de teste.

Reimplemented from TProcura.

Definition at line 333 of file CTesteTVector.cpp.

Here is the call graph for this function:

◆ Inicializar()

void CTesteTVector::Inicializar ( void  )
virtual

Inicializa dados e estado para teste.

Reimplemented from TProcura.

Definition at line 52 of file CTesteTVector.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ResetParametros()

void CTesteTVector::ResetParametros ( )
virtual

Inicializa parâmetros de teste.

Reimplemented from TProcura.

Definition at line 17 of file CTesteTVector.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ dadosA

TVector<int> CTesteTVector::dadosA

Definition at line 20 of file CTesteTVector.h.

◆ dadosB

TVector<int> CTesteTVector::dadosB

Vetores de teste para operações TVector.

Definition at line 20 of file CTesteTVector.h.

◆ stdA

std::vector<int> CTesteTVector::stdA

Definition at line 21 of file CTesteTVector.h.

◆ stdB

std::vector<int> CTesteTVector::stdB

Vetores equivalentes em STL para comparação.

Definition at line 21 of file CTesteTVector.h.


The documentation for this class was generated from the following files: