|
TProcura
Biblioteca em C++ para testes paramétricos de algoritmos, e coleção de algoritmos de procura e otimização
|
Classe de teste para TVector, integrada na framework TProcura. More...
#include <CTesteTVector.h>
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 void | Gravar (void) |
| virtual bool | Parar (void) |
| Verifica se a procura deve ser interrompida. | |
| virtual void | TesteManual (TString nome) |
| Inicializa a interação com o utilizador. | |
| virtual void | TesteValidacao (TVector< int > instancias, TVector< int > impossiveis, TVector< int > referencias, TString fichSolucoes, TString fichResultados="") |
| Executa testes de validação, executando cada solução na instância respetiva, e verificando a sua validade bem como características. | |
| virtual void | RelatorioValidacao (TVector< TResultado > resultados, TVector< int > referencias) |
| virtual bool | Validar (TVector< TString > solucao) |
| Verifica a validade de uma solução para a instância atual. | |
| virtual void | TesteEmpirico (TVector< int > instancias, TString ficheiro="") |
| Executa testes empíricos, em todas as configurações guardadas, nas instâncias selecionadas. | |
| virtual void | TesteEmpiricoGestor (TVector< int > instancias, TString ficheiro="") |
| Teste empírico com modo mestre-escravo (este é o mestre) | |
| virtual void | TesteEmpiricoTrabalhador (TVector< int > instancias, TString ficheiro="") |
| Teste empírico com modo mestre-escravo (este é o escravo) | |
| virtual void | main (int argc, char *argv[], TString nome) |
| Inicializa a interação com o utilizador. | |
| virtual void | LimparEstatisticas () |
| Chamar 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_t > | CodificarSolucao () |
| retorna um vetor de inteiros com a codificação da solução (esta codificação será adicionada aos indicadores, no ficheiro CSV de resultados) | |
| virtual TVector< TString > | Solucao () |
| retorna uma solução no formato do TResultado, para ser gravada em ficheiro de soluções, ou visualizada (pode ser utilizada para mostrar a solução, ou para gravar a solução num formato mais legível) | |
| bool | TempoExcedido () |
| bool | IteracoesExcedido () |
| int | Parametro (int id) const |
| int & | Parametro (int id) |
| bool | ParametroAtivo (int id, TVector< int > *valores=NULL) const |
Public Attributes | |
| TVector< int > | dadosA |
| TVector< int > | dadosB |
| Vetores de teste para operações TVector. | |
| std::vector< int > | stdA |
| std::vector< int > | stdB |
| Vetores equivalentes em STL para comparação. | |
Additional Inherited Members | |
Static Public Attributes inherited from TProcura | |
| static TParametro | instancia = { "",1,1,1 } |
| ID da instância atual, a ser utilizado em SolucaoVazia(). | |
| static TString | ficheiroInstancia = "" |
| prefixo do nome ficheiro de uma instância - editado pelo utilizador Caso não seja nulo, utilizar como prefixo, concatenando com ID da instância, para obter o ficheiro 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 | |
| static TString | ficheiroGravar = "" |
| prefixo do nome do ficheiro para gravar a instância para ficheiro (terá sido gerada) | |
| static TVector< TParametro > | parametro |
| Parâmetros a serem utilizados na configuração atual. | |
| static TVector< TIndicador > | indicador |
| 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< int > | indAtivo |
| 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. | |
| static int | gravarSolucao = 0 |
| Gravar solução CSV (todas as ações) | |
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, TString titulo="") |
| 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 > ¶metros, int operacao) |
| Grava ou lê a configuração atual. | |
| int | NovaConfiguracao (TVector< int > ¶metros) |
| 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< TResultado > | ExtrairConfiguracao (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< int > | SolicitaInstancias () |
| Solicita ao utilizador uma lista de instâncias. | |
| bool | RelatorioCSV (TVector< TResultado > &resultados, TString ficheiro, bool parametros=true) |
| Gera um relatório CSV com os resultados. | |
| void | InserirConfiguracoes (TString 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 (TString programa) |
| Mostra ajuda de utilização do programa. | |
| void | DebugTabela (ENivelDebug nivel, TVector< int >tabela, TString tipo="", TString prefixo="", int modoCor=0, bool duplaColuna=false) |
| Mostra uma tabela de inteiros, 10 elementos por linha, apenas se o nível de debug for igual ou superior. | |
| bool | JuntarCSV (TString ficheiro) |
| Juntar ficheiros CSV gerados por diferentes processos MPI em um único ficheiro. | |
| void | TesteInicio (TVector< int > &instancias, TVector< int > &configAtual) |
| arranque de teste, auxiliar aos Testes Empíricos | |
| void | TesteFim () |
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 inicializar=false) |
| retorna o tempo em segundos desde que o cronómetro foi inicializado | |
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.
Definition at line 14 of file CTesteTVector.h.
|
inline |
Definition at line 17 of file CTesteTVector.h.
|
inline |
Definition at line 18 of file CTesteTVector.h.
Mostra o estado no ecrã, para debug.
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.
NovaLinha() pode imprimir caracteres que representam os ramos da árvore de procura, criando uma visualização textual que simula a estrutura da procura.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.Reimplemented from TProcura.
Definition at line 325 of file TProcura.cpp.
Mostra informação de debug sobre o estado dos vetores.
Reimplemented from TProcura.
Definition at line 61 of file CTesteTVector.cpp.
Mostra uma informação de debug, se o nível de debug for suficiente.
| tipo | Nível de detalhe necessário para exibir a mensagem. |
| exato | Se true, só imprime se o nível de debug for exatamente igual a tipo. Se false, imprime se for >= tipo. |
| fmt | Formato da mensagem, como no printf. |
Definition at line 635 of file TProcura.h.
|
virtual |
Executa o algoritmo de teste (a definir pelo utilizador).
Reimplemented from TProcura.
Definition at line 85 of file CTesteTVector.cpp.
Calcula indicadores de teste.
Reimplemented from TProcura.
Definition at line 320 of file CTesteTVector.cpp.
Inicializa dados e estado para teste.
Reimplemented from TProcura.
Definition at line 38 of file CTesteTVector.cpp.
|
virtual |
Inicializa parâmetros de teste.
Reimplemented from TProcura.
Definition at line 17 of file CTesteTVector.cpp.
Definition at line 20 of file CTesteTVector.h.
Vetores de teste para operações TVector.
Definition at line 20 of file CTesteTVector.h.
| std::vector<int> CTesteTVector::stdA |
Definition at line 21 of file CTesteTVector.h.
| std::vector<int> CTesteTVector::stdB |
Vetores equivalentes em STL para comparação.
Definition at line 21 of file CTesteTVector.h.