|
TProcura
Biblioteca em C++ para testes paramétricos de algoritmos, e coleção de algoritmos de procura e otimização
|
Classe base para todas as procuras. More...
#include <TProcura.h>
Public Member Functions | |
| TProcura (void) | |
| virtual | ~TProcura (void) |
| virtual void | Inicializar (void) |
| Coloca o objeto no estado inicial da procura. | |
| virtual void | Gravar (void) |
| virtual int | ExecutaAlgoritmo () |
| Executa o algoritmo com os parametros atuais. | |
| virtual int64_t | Indicador (int id) |
| Retorna um indicador, após a execução do algoritmo. | |
| virtual void | Debug (bool completo=true) |
| Mostra o estado no ecrã, para debug. | |
| virtual void | ResetParametros () |
| Inicializa os parâmetros, indicadores e instâncias. | |
| 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 |
Static Public Attributes | |
| static TParametro | instancia = { "",1,1,1 } |
| ID da instância atual, a ser utilizado em SolucaoVazia(). | |
| static TString | ficheiroInstancia = "" |
| prefixo do nome do 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) | |
| static int | modoKMGT = 0 |
| Modo KMGT - Kilo, Mega, Giga, Tera. | |
Protected Member Functions | |
| 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 | |
| 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 base para todas as procuras.
Esta classe base para procuras, permitindo a gestão de parâmetros, indicadores, instâncias e execução de algoritmos.
Observação: Alguns métodos e parâmetros terão efeito apenas se determinados métodos forem redefinidos na subclasse.
Definition at line 217 of file TProcura.h.
|
inline |
Definition at line 220 of file TProcura.h.
Definition at line 221 of file TProcura.h.
Mostra ajuda de utilização do programa.
| programa | Nome do programa. |
Definition at line 1514 of file TProcura.cpp.
Mostra a barra de progresso ou nomes do torneio.
| nomes | Se true, mostra nomes; caso contrário, mostra progresso. |
Definition at line 1769 of file TProcura.cpp.
|
protected |
Calcula o torneio entre várias configurações.
| resultados | Vetor de resultados a comparar. |
Definition at line 1692 of file TProcura.cpp.
retorna um vetor de inteiros com a codificação da solução (esta codificação será adicionada aos indicadores, no ficheiro CSV de resultados)
Definition at line 551 of file TProcura.h.
Grava ou lê a configuração atual.
| parametros | Vetor de parâmetros. |
| operacao | Tipo de operação (gravar ou ler). |
Definition at line 753 of file TProcura.cpp.
|
inlinestaticprotected |
retorna o tempo em segundos desde que o cronómetro foi inicializado
Definition at line 859 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 in COitoDamasCI, COitoDamasCP, TProcuraExecutavel, CParticaoCB, TCodificacaoBinaria, TCodificacaoInteira, TCodificacaoPermutacao, TCodificacaoReal, CTesteTVector, CJogoDoGalo, CJogoEmLinha, CAspirador, COitoDamas, CParticao, CPuzzle8, TCodificacaoBinaria, TCodificacaoInteira, TCodificacaoPermutacao, TCodificacaoReal, COitoDamas, CParticao, CProblemaArtificial, and CTesteTVector.
Definition at line 89 of file TProcura.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 638 of file TProcura.h.
Muda a cor (fundo/letra) com HSL.
Muda a cor (fundo/letra) com HSL (h=0 a 360 saturação, luminosidade)
| h | Hue (matiz): 0–360 graus (círculo cromático). Se <0, faz reset. |
| s | Saturação: 0–1 (0 = cinzento, 1 = cor pura). |
| l | Luminosidade: 0–1 (0 = preto, 0.5 = cor normal, 1 = branco). |
| fundo | true = cor de fundo, false = cor do texto. Valores por omissão: s=1, l=0.2, fundo=true. Chamada sem argumentos faz reset das cores |
Definition at line 529 of file TProcura.cpp.
|
protected |
Mostra uma tabela de inteiros, 10 elementos por linha, apenas se o nível de debug for igual ou superior.
Definition at line 1967 of file TProcura.cpp.
Limita o domínio de um parâmetro inteiro.
| variavel | Variável a limitar. |
| min | Valor mínimo permitido. |
| max | Valor máximo permitido. |
Definition at line 1943 of file TProcura.cpp.
|
protected |
Permite ao utilizador editar as configurações.
Definition at line 860 of file TProcura.cpp.
|
protected |
Permite ao utilizador editar os indicadores a utilizar.
Definition at line 652 of file TProcura.cpp.
|
protected |
Permite ao utilizador editar os parâmetros.
Definition at line 687 of file TProcura.cpp.
|
virtual |
Chamar após a execução do algoritmo. Grava o tempo consumido.
Reimplemented in TProcuraConstrutiva.
Definition at line 1803 of file TProcura.cpp.
Executa o algoritmo com os parametros atuais.
No caso de adicionar algum algoritmo, chame o algoritmo com base em Parametro(ALGORITMO) Se TesteManual() não for utilizado, esta função pode ser chamada diretamente, desde que os parâmetros necessários já estejam configurados corretamente.
Reimplemented in TProcuraAdversa, TProcuraConstrutiva, TProcuraMelhorativa, CTesteTVector, and TProcuraExecutavel.
Definition at line 262 of file TProcura.h.
|
protected |
Executa uma tarefa num teste empírico.
| resultados | Vetor onde inserir o resultado. |
| inst | ID da instância. |
| conf | ID da configuração. |
Definition at line 1340 of file TProcura.cpp.
definir para explorar manualmente os dados (não definido em TProcura, apenas em TProcuraConstrutiva)
Reimplemented in TProcuraConstrutiva, and TProcuraMelhorativa.
Definition at line 547 of file TProcura.h.
|
protected |
Extrai resultados de uma determinada configuração.
| resultados | Vetor de resultados. |
| configuracao | Índice da configuração. |
Definition at line 1760 of file TProcura.cpp.
|
staticprotected |
Finaliza o ambiente MPI, se aplicável.
Definition at line 1960 of file TProcura.cpp.
Reimplemented in COitoDamas, CParticao, and CPuzzle8.
Definition at line 251 of file TProcura.h.
Retorna um indicador, após a execução do algoritmo.
Este método é chamado após a execução do algoritmo, para cada indicador, pela ordem definida pelo utilizador. Caso tenham sido definidos outros indicadorews na subclasse, deve redefinir, e caso seja um indicador da subclasse, calcular, caso contrário deve chamar o método da superclasse.
Reimplemented in CTesteTVector, TProcuraExecutavel, TProcuraConstrutiva, and TProcuraMelhorativa.
Definition at line 76 of file TProcura.cpp.
Inicializa o ambiente MPI, se aplicável.
Definition at line 1951 of file TProcura.cpp.
Coloca o objeto no estado inicial da procura.
Este método inicializa as variáveis de estado no estado inicial vazio. Representa o estado inicial antes de qualquer ação ser realizada na procura. Caso existam dados de instância, deve neste método carregar a instância. A primeira instrução deverá chamar o método da superclasse, conforme modelo em baixo.
Reimplemented in CJogoDoGalo, CJogoEmLinha, CAspirador, COitoDamas, CParticao, CPuzzle8, COitoDamas, COitoDamasCI, COitoDamasCP, CParticao, CParticaoCB, CProblemaArtificial, TProcuraMelhorativa, CTesteTVector, TProcuraConstrutiva, TCodificacaoBinaria, TCodificacaoInteira, TCodificacaoPermutacao, and TCodificacaoReal.
Definition at line 248 of file TProcura.h.
Insere configurações a partir de uma string.
| str | String com as configurações. |
| base | Vetor base para inserção. |
Definition at line 905 of file TProcura.cpp.
|
protected |
Insere configurações gerando o produto cartesiano de valores.
| base | Vetor base. |
| produto | Vetor para resultados. |
| valores | Vetor de vetores de valores possíveis. |
Definition at line 955 of file TProcura.cpp.
|
protected |
Insere um novo registo de resultados.
| resultados | Vetor onde inserir o resultado. |
| inst | ID da instância. |
| conf | ID da configuração. |
Definition at line 821 of file TProcura.cpp.
|
inline |
Definition at line 601 of file TProcura.h.
Juntar ficheiros CSV gerados por diferentes processos MPI em um único ficheiro.
Definition at line 1996 of file TProcura.cpp.
|
virtual |
Chamar antes da execução do algoritmo. Limpa valores estatísticos, e fixa o instante limite de tempo para a execução.
Reimplemented in TProcuraMelhorativa, and TProcuraConstrutiva.
Definition at line 95 of file TProcura.cpp.
Inicializa a interação com o utilizador.
Esta função arranca com o teste manual, orientada para o programador. A interface permite:
Definition at line 1388 of file TProcura.cpp.
|
protected |
Compara dois resultados para determinar o melhor.
| base | Resultado base. |
| alternativa | Resultado alternativo. |
Definition at line 1780 of file TProcura.cpp.
Definition at line 506 of file TProcura.cpp.
|
static |
Definition at line 372 of file TProcura.cpp.
|
protected |
Mostra os indicadores definidos.
Definition at line 1713 of file TProcura.cpp.
Mostra inteiro grande num formato humano.
Definition at line 792 of file TProcura.cpp.
|
protected |
Mostra os parâmetros atuais.
| detalhe | Nível de detalhe na apresentação. |
| idParametros | Vetor de IDs de parâmetros a mostrar (opcional). |
Definition at line 557 of file TProcura.cpp.
Mostra as configurações disponíveis.
| detalhe | Nível de detalhe. |
| atual | Índice da configuração atual (opcional). |
Definition at line 977 of file TProcura.cpp.
|
protected |
Mostra um relatório dos resultados.
| resultados | Vetor de resultados a apresentar. |
| ultimo | Indica se é o último relatório (opcional). |
Definition at line 1603 of file TProcura.cpp.
definir para visualizar a solução
Reimplemented in COitoDamas, CParticao, CPuzzle8, TProcuraConstrutiva, COitoDamas, and CParticao.
Definition at line 1812 of file TProcura.cpp.
Mostra os resultados do torneio.
| torneio | Matriz de resultados do torneio. |
| jogo | Indica se é modo de jogo ou apenas comparação. |
Definition at line 1730 of file TProcura.cpp.
Mostra tempo num formato humano.
Definition at line 765 of file TProcura.cpp.
Adiciona uma nova configuração se ainda não existir.
| parametros | Vetor de parâmetros. |
Definition at line 736 of file TProcura.cpp.
Definition at line 1832 of file TProcura.cpp.
Definition at line 1821 of file TProcura.cpp.
Definition at line 611 of file TProcura.h.
Definition at line 610 of file TProcura.h.
Definition at line 612 of file TProcura.h.
Verifica se a procura deve ser interrompida.
O critério de paragem pode ser especificado em limite de tempo, limite de iterações. Caso exista uma falha na alocação de memória de um estado, em chamadas futuras irá retornar verdadeiro.
Reimplemented in TProcuraMelhorativa.
Definition at line 405 of file TProcura.h.
|
protected |
Procura um registo com determinado id.
| resultado | Vetor de resultados. |
| id | ID a procurar. |
Definition at line 831 of file TProcura.cpp.
|
protected |
Atualiza o valor de um registo.
| resultado | Referência ao resultado a atualizar. |
| id | ID do valor. |
| valor | Novo valor a atribuir. |
Definition at line 838 of file TProcura.cpp.
|
protected |
Gera um relatório CSV com os resultados.
| resultados | Vetor de resultados. |
| f | Ponteiro para o ficheiro onde gravar. |
Definition at line 1542 of file TProcura.cpp.
|
virtual |
Definition at line 296 of file TProcura.cpp.
|
virtual |
Inicializa os parâmetros, indicadores e instâncias.
Nesta função, a primeira instrução deverá ser a chamada da função da superclasse, para que sejam criados os parÂmetros da superclasse antes de qualquer outra instrução.
Cada problema pode ter um algoritmo e configurações padrão que funcionam bem na maioria dos casos. Nesta função, podem ser definidos estes valores por omissão.
Novos parâmetros podem ser adicionados conforme necessário para atender às particularidades do problema. Estes parâmetros podem depois ser selecionados ou incluídos num teste empírico, de modo a averiguar em fase de testes, qual a melhor configuração, evitando escolhas arbitrárias ou não fundamentadas.
Nesta função deve ser redefinida a variável com informação dos IDs das instâncias disponíveis. Essa variável é do tipo TParametro, mas não está na lista de parÂmetros, devendo ser inicializada aqui.
Existindo novos indicadores, devem ser adicionados aqui, e redefinida a função Indicador() para calcular o valor.
parametrosConstrutivos, garantindo que novas adições na superclasse sejam automaticamente refletidas aqui.Exemplo com a alteração do valor por omissão de um parâmetro, e adição de dois novos parametros.
Reimplemented in CJogoEmLinha, TProcuraAdversa, CAspirador, COitoDamas, CParticao, CPuzzle8, TCodificacaoBinaria, TCodificacaoInteira, TCodificacaoPermutacao, COitoDamas, COitoDamasCI, COitoDamasCP, CParticaoCB, CProblemaArtificial, CTesteTVector, TProcuraExecutavel, TProcuraConstrutiva, and TProcuraMelhorativa.
Definition at line 51 of file TProcura.cpp.
|
protected |
Solicita ao utilizador o ID da instância a utilizar, permitindo alterar também o prefixo do ficheiro.
Definition at line 1915 of file TProcura.cpp.
Solicita ao utilizador uma lista de instâncias.
Definition at line 844 of file TProcura.cpp.
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)
Reimplemented in TProcuraConstrutiva.
Definition at line 553 of file TProcura.h.
|
inline |
Executa testes empíricos, em todas as configurações guardadas, nas instâncias selecionadas.
| instancias | - IDs das instâncias a serem utilizadas |
| ficheiro | - nome do ficheiro com os resultados, caso exista |
Esta função é chamada de TesteManual() para executar testes empíricos. A função apresenta-se como método virtual, atendendo a que é redefinida nas procuras adversas. É genérica e não se prevê outras situações que seja necessário redefini-la.
configuracoes estiver vazia, o teste empírico será executado apenas com a configuração atual, avaliando seu desempenho isoladamente, sem comparação com outras configurações.Reimplemented in TProcuraAdversa.
Definition at line 1064 of file TProcura.cpp.
Teste empírico com modo mestre-escravo (este é o mestre)
Reimplemented in TProcuraAdversa.
Definition at line 1154 of file TProcura.cpp.
|
virtual |
Teste empírico com modo mestre-escravo (este é o escravo)
Reimplemented in TProcuraAdversa.
Definition at line 1299 of file TProcura.cpp.
|
protected |
Definition at line 1053 of file TProcura.cpp.
arranque de teste, auxiliar aos Testes Empíricos
Definition at line 1030 of file TProcura.cpp.
Inicializa a interação com o utilizador.
Esta função arranca com o teste manual, orientada para o programador. A interface permite:
Reimplemented in CJogoEmLinha.
Definition at line 106 of file TProcura.cpp.
|
virtual |
Executa testes de validação, executando cada solução na instância respetiva, e verificando a sua validade bem como características.
Esta função carrega a instância e solução (conjunto de ações), as quais são executadas passo a passo, verificando a validade de cada ação sendo calculados indicadores do resultado final.
Caso existam ações inválidas, ou a solução não seja completa, o resultado é considerado inválido, sendo retornado o número de ações corretamente executadas. (isto faz sentido apenas em TProcurasConstrutivas.... nesta classe pode ser algo genérico, sendo redefinida em TProcurasConstrutivas...) (fazer uma função validação geral, a redefinir em TProcurasConstrutivas?) (deixar o formato da solução em aberto, o ficheiro recebe ID da instância, seguido da solução.
| instancias | - IDs das instâncias a serem validadas. |
| impossiveis | - IDs das instâncias impossíveis, de entre as instâncias dadas. |
| referencias | - custo mínimo, custo máximo, tempo mínimo, tempo máximo. |
| fichSolucoes | - nome do arquivo contendo as soluções a validar para as instâncias. |
| fichResultados | - nome do arquivo onde os resultados da validação serão gravados (opcional). |
Reimplemented in TProcuraAdversa.
Definition at line 163 of file TProcura.cpp.
Verifica a validade de uma solução para a instância atual.
Esta função é chamada para verificar a validade de cada ação durante a execução da solução, bem como para calcular indicadores do resultado final. O formato da solução é genérico, podendo ser adaptado conforme as necessidades específicas do problema.
| solucao | - representação da solução a ser validada (formato específico a ser definido na subclasse). |
Reimplemented in TProcuraConstrutiva, and TProcuraAdversa.
Definition at line 481 of file TProcura.h.
Conjuntos de configurações para teste empírico.
Definition at line 573 of file TProcura.h.
|
static |
prefixo do nome do ficheiro para gravar a instância para ficheiro (terá sido gerada)
Definition at line 564 of file TProcura.h.
|
static |
prefixo do nome do 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
Definition at line 562 of file TProcura.h.
|
static |
Gravar solução CSV (todas as ações)
Definition at line 593 of file TProcura.h.
Definition at line 571 of file TProcura.h.
|
static |
Indicadores que podem ser calculados após a execução, quer com informação da instância, quer com resultado da última corrida.
Definition at line 570 of file TProcura.h.
|
static |
ID da instância atual, a ser utilizado em SolucaoVazia().
Definition at line 22 of file TProcura.h.
|
static |
Instante final (deadline) da corrida atual.
Definition at line 581 of file TProcura.h.
|
static |
Número total de iterações realizadas na última execução.
Definition at line 579 of file TProcura.h.
Flag indicando problemas de memória esgotada.
Definition at line 583 of file TProcura.h.
|
static |
Modo KMGT - Kilo, Mega, Giga, Tera.
Definition at line 596 of file TProcura.h.
|
static |
|
static |
MPI - número de processos.
Definition at line 587 of file TProcura.h.
|
static |
MPI - rank do processo.
Definition at line 585 of file TProcura.h.
|
static |
Parâmetros a serem utilizados na configuração atual.
Definition at line 567 of file TProcura.h.
|
static |
Resultado retornado pelo algoritmo na última execução.
Definition at line 575 of file TProcura.h.
|
static |
tempo consumido na última execução.
Definition at line 577 of file TProcura.h.