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) | |
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.
Reimplemented in CProblemaArtificial.
Definition at line 197 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, CProblemaArtificial, CPuzzle8, COitoDamas, CParticao, and CProblemaArtificial.
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 242 of file TProcuraConstrutiva.h.
|
overridevirtual |
Redefinição. Ver TProcura::ResetParametros().
Reimplemented from TProcura.
Definition at line 39 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, CProblemaArtificial, CPuzzle8, and COitoDamas.
Definition at line 305 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, CAspirador, COitoDamas, CParticao, CProblemaArtificial, and CPuzzle8.
Definition at line 103 of file TProcuraConstrutiva.cpp.