|
TProcura
Biblioteca em C++ para testes paramétricos de algoritmos, e coleção de algoritmos de procura e otimização
|
Functions | |
| virtual TNo | TProcuraConstrutiva::Duplicar (void)=0 |
| Cria um objecto que é uma cópia deste. | |
| virtual void | TProcuraConstrutiva::Copiar (TNo objecto) |
| Fica com uma cópia do objecto. | |
| void | TProcuraConstrutiva::Inicializar (void) override |
| Coloca o objecto no estado inicial da procura. | |
| virtual void | TProcuraConstrutiva::Sucessores (TVector< TNo > &sucessores) |
| Coloca em sucessores a lista de estados sucessores. | |
| virtual bool | TProcuraConstrutiva::SolucaoCompleta (void) |
| Verifica se o estado actual é objectivo (é uma solução completa) | |
| virtual bool | TProcuraConstrutiva::Validar (TVector< TString > solucao) |
| Verifica a validade de uma solução para a instância atual. | |
| void | TProcuraConstrutiva::ResetParametros () override |
| Redefinição. Ver TProcura::ResetParametros(). | |
Métodos de redefinição obrigatória no problema
Fica com uma cópia do objecto.
Este método tem de ser criado na subclasse, de modo a um estado poder ficar igual a outro. As variáveis de estado, devem ser todas copiadas.
Deve garantir que as variáveis copiadas sejam suficientes para reconstruir o estado corretamente. No entanto, uma instância pode ter dados que não mudam em cada estado. Essas variáveis não precisam de estar no estado, e podem ser alocadas de forma estática na subclasse, não sendo necessário copiar nesta função.
A não ser que exista uma estrutura de dados completa, o modelo de código em baixo pode ser facilmente reproduzido para qualquer subclasse.
Definition at line 196 of file TProcuraConstrutiva.h.
Cria um objecto que é uma cópia deste.
Este método tem de ser criado na subclasse, de modo a criar uma cópia do mesmo tipo. O código da subclasse geralmente segue um padrão e pode utilizar o modelo abaixo, aproveitando o método Copiar(). É especialmente útil na função de Sucessores(), na geração de um novo estado.
Implemented in CJogoDoGalo, CJogoEmLinha, CAspirador, COitoDamas, CParticao, CPuzzle8, COitoDamas, and CParticao.
Coloca o objecto 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.
Redefinição. Ver TProcura::Inicializar().
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.
Reimplemented from TProcura.
Definition at line 241 of file TProcuraConstrutiva.h.
|
overridevirtual |
Redefinição. Ver TProcura::ResetParametros().
Reimplemented from TProcura.
Definition at line 34 of file TProcuraConstrutiva.cpp.
Verifica se o estado actual é objectivo (é uma solução completa)
Este método verifica se o estado atual é objetivo, e portanto temos uma solução completa. A complexidade da verificação depende do problema, podendo ser um teste simples ou envolver múltiplas condições.
Sucessores(), garantindo que a avaliação do objetivo seja feita apenas quando necessário.Reimplemented in CJogoDoGalo, CJogoEmLinha, CAspirador, COitoDamas, CParticao, CPuzzle8, and TProcuraAdversa.
Definition at line 304 of file TProcuraConstrutiva.h.
Coloca em sucessores a lista de estados sucessores.
| sucessores | - variável com a lista de estados sucessores a retornar. |
Este é o método principal, que define a árvore de procura. Para o estado atual, duplicar o estado por cada ação / estado que seja sucessor. Alterar as variáveis de estado para corresponderem à ação efetuada no estado sucessor. Caso o custo não seja unitário, definir o custo da ação. Chamar o método da superclasse no final, já que irá atualizar estatísticas, bem como eliminar estados que sejam repetidos, dependendo da parametrização.
Reimplemented in CJogoDoGalo, CJogoEmLinha, TProcuraAdversa, CAspirador, COitoDamas, CParticao, and CPuzzle8.
Definition at line 98 of file TProcuraConstrutiva.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 from TProcura.
Reimplemented in TProcuraAdversa.
Definition at line 161 of file TProcuraConstrutiva.cpp.