|
TProcura
Biblioteca em C++ para testes paramétricos de algoritmos, e coleção de algoritmos de procura e otimização
|
Classe para utilizar TProcura em binários externos. More...
#include <TProcura.h>
Public Member Functions | |
| TProcuraExecutavel () | |
| ~TProcuraExecutavel (void) | |
| void | ResetParametros () |
| Reset parâmetros, assumindo variáveis da classe definidas. | |
| int | ExecutaAlgoritmo () |
| Executa o algoritmo e extrai os indicadores. | |
| int64_t | Indicador (int id) |
| retorna indicadores após execução | |
| void | Debug (bool completo) |
| Mostra o estado no ecrã, para debug. | |
Public Member Functions inherited from TProcura | |
| TProcura (void) | |
| virtual | ~TProcura (void) |
| virtual void | Inicializar (void) |
| Coloca o objecto no estado inicial da procura. | |
| 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 | |
| TString | solver |
| TParametro | inst |
| TVector< TIndicador > | ind |
| TVector< TString > | indPrefixo = {"", "", ""} |
| TVector< TParametro > | par |
| TVector< TString > | parPrefixo = {"", "", "", "", ""} |
| TVector< int64_t > | indValores |
| TVector< int > | omissao |
Additional Inherited Members | |
Static Public Member Functions inherited from TProcura | |
| static int | NovoValor (TString prompt) |
| static TString | NovoTexto (TString 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 TString | MostraTempo (double segundos) |
| Mostra tempo num formato humano. | |
| static void | MostraCaixa (TVector< TString > titulo, ECaixaParte parte, TVector< int > largura, bool aberta=true, int identacao=0) |
| static void | MostraCaixa (TString titulo, ECaixaParte parte, int largura=70, bool aberta=true, int identacao=0, const char *icon="") |
| static void | MostraCaixa (TVector< TString > textos, int largura=70, bool aberta=true, int identacao=0) |
| static void | Mensagem (TString titulo, const char *fmt,...) |
| static void | MostraConjunto (TVector< int > valores, const char *etiqueta) |
| static void | DebugHSL (float h=-1, float s=1.0, float l=0.2, bool fundo=true) |
| Muda a cor (fundo/letra) com HSL. | |
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 para utilizar TProcura em binários externos.
Definition at line 872 of file TProcura.h.
|
inline |
Definition at line 893 of file TProcura.h.
|
inline |
Definition at line 894 of file TProcura.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 905 of file TProcura.h.
|
virtual |
Executa o algoritmo e extrai os indicadores.
Reimplemented from TProcura.
Definition at line 1921 of file TProcura.cpp.
retorna indicadores após execução
Reimplemented from TProcura.
Definition at line 1958 of file TProcura.cpp.
|
virtual |
Reset parâmetros, assumindo variáveis da classe definidas.
Reimplemented from TProcura.
Definition at line 1892 of file TProcura.cpp.
| TVector<TIndicador> TProcuraExecutavel::ind |
Definition at line 879 of file TProcura.h.
Definition at line 880 of file TProcura.h.
Definition at line 890 of file TProcura.h.
| TParametro TProcuraExecutavel::inst |
Definition at line 878 of file TProcura.h.
Definition at line 891 of file TProcura.h.
| TVector<TParametro> TProcuraExecutavel::par |
Definition at line 883 of file TProcura.h.
Definition at line 884 of file TProcura.h.
| TString TProcuraExecutavel::solver |
Definition at line 877 of file TProcura.h.