TProcura
Biblioteca em C++ para testes paramétricos de algoritmos, e coleção de algoritmos de procura e otimização
Loading...
Searching...
No Matches
TProcuraConstrutiva.h File Reference
#include "../TVector.h"
#include "../TProcura.h"
Include dependency graph for TProcuraConstrutiva.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  TProcuraConstrutiva
 Representa um estado no espaço de estados. More...
 

Typedefs

typedef TProcuraConstrutivaTNo
 Representa um nó na árvore de busca, apontando para um estado.
 

Enumerations

enum  EIndicadoresConstrutiva {
  IND_CUSTO = IND_RESULTADO , IND_EXPANSOES = IND_PROCURA , IND_GERACOES , IND_LOWER_BOUND ,
  IND_CONSTRUTIVA
}
 
enum  EParametrosConstrutiva {
  VER_ACOES = PARAMETROS_PROCURA , LIMITE , ESTADOS_REPETIDOS , PESO_ASTAR ,
  RUIDO_HEURISTICA , BARALHAR_SUCESSORES , PARAMETROS_CONSTRUTIVA
}
 Identifica um parâmetro específico no código. More...
 
enum  EAlgoritmo {
  LARGURA_PRIMEIRO = 1 , CUSTO_UNIFORME , PROFUNDIDADE_PRIMEIRO , MELHOR_PRIMEIRO ,
  A_STAR , IDA_STAR , BRANCH_AND_BOUND
}
 Algoritmos disponíveis para procura construtiva. More...
 
enum  EEstadosRepetidos { IGNORADOS = 1 , ASCENDENTES , GERADOS }
 Enumerado com os valores possíveis do parametro estadosRepetidos. More...
 

Variables

constexpr int TAMANHO_HASHTABLE = 1000000
 
constexpr int OBJETO_HASHTABLE = 5
 

Typedef Documentation

◆ TNo

Representa um nó na árvore de busca, apontando para um estado.

Note
É um alias para TProcuraConstrutiva*, facilitando a leitura e uso.

Definition at line 18 of file TProcuraConstrutiva.h.

Enumeration Type Documentation

◆ EAlgoritmo

enum EAlgoritmo

Algoritmos disponíveis para procura construtiva.

Estes algoritmos utilizam diferentes estratégias de expansão de estados e podem ser ajustados conforme os parâmetros de execução.

See also
EParametrosConstrutiva
Enumerator
LARGURA_PRIMEIRO 

Executa a procura em largura primeiro, algoritmo cego.

See also
TProcuraConstrutiva::LarguraPrimeiro()
CUSTO_UNIFORME 

Executa a procura por custo uniforme, algoritmo cego.

See also
TProcuraConstrutiva::CustoUniforme()
PROFUNDIDADE_PRIMEIRO 

Executa a procura em profundidade primeiro, algoritmo cego.

See also
TProcuraConstrutiva::ProfundidadePrimeiro()
MELHOR_PRIMEIRO 

Executa a procura melhor primeiro, algoritmo informado.

See also
TProcuraConstrutiva::MelhorPrimeiro()
A_STAR 

Executa a procura A*, algoritmo informado.

See also
TProcuraConstrutiva::AStar()
IDA_STAR 

Executa a procura IDA*, algoritmo informado.

See also
TProcuraConstrutiva::IDAStar()
BRANCH_AND_BOUND 

Executa o algoritmo Branch-and-Bound, um algoritmo informado.

See also
TProcuraConstrutiva::BranchAndBound()

Definition at line 65 of file TProcuraConstrutiva.h.

◆ EEstadosRepetidos

Enumerado com os valores possíveis do parametro estadosRepetidos.

Os estados gerados que sejam repetidos, podem não ser removidos, ou podem ser removidos se existir um ascendente igual, ou ainda serem guardados numa hashtable de modo a serem removidos todos os estados gerados que sejam repetidos.

See also
Sucessores(), estadosRepetidos
Enumerator
IGNORADOS 

ignorados os estados gerados repetidos

ASCENDENTES 

estados são comparados com ascendentes, e se forem repetidos são removidos

GERADOS 

estados são comparados com todos os gerados, e se forem repetidos são removidos

Definition at line 85 of file TProcuraConstrutiva.h.

◆ EIndicadoresConstrutiva

Enumerator
IND_CUSTO 

o resultado é o custo da solução atual, sendo um upper bound

IND_EXPANSOES 

número de expansões efetuadas durante a procura

IND_GERACOES 

número de estados gerados durante a procura

IND_LOWER_BOUND 

valor mínimo para a melhor solução, se igual ao custo da solução obtida, então esta é ótima

IND_CONSTRUTIVA 

Marcador para permitir a extensão do enum em subclasses.

Definition at line 20 of file TProcuraConstrutiva.h.

◆ EParametrosConstrutiva

Identifica um parâmetro específico no código.

Permite aceder a cada parâmetro sem precisar saber seu código numérico. Índice do vetor de parametros, na classe TProcuraConstrutiva.

Note
O último elemento (parametrosConstrutivas) não representa um parâmetro real. Existe para permitir a criação de uma enumeração adicional em subclasses, caso seja necessário adicionar parâmetros específicos.
See also
TParametro, ExecutaAlgoritmo()
if(Parametro(nivelDebug) > passos)
// mostrar informação de debug correspondendo ao nível detalhe ou superior
Enumerator
VER_ACOES 

Mostra estado a cada K ações. Se 1, mostra sempre estados e nunca ações.

LIMITE 

Valor dependente do algoritmo. Exemplo: Profundidade limitada.

ESTADOS_REPETIDOS 

Forma de lidar com estados repetidos (ignorá-los, ascendentes, gerados).

PESO_ASTAR 

Peso aplicado à heuristica, na soma com o custo para calculo do lower bound.

RUIDO_HEURISTICA 

Ruído a adicionar à heurística para testes de robustez.

BARALHAR_SUCESSORES 

Baralhar os sucessores ao expandir.

PARAMETROS_CONSTRUTIVA 

Marcador para permitir a extensão do enum em subclasses.

Definition at line 46 of file TProcuraConstrutiva.h.

Variable Documentation

◆ OBJETO_HASHTABLE

constexpr int OBJETO_HASHTABLE = 5
constexpr

Definition at line 9 of file TProcuraConstrutiva.h.

◆ TAMANHO_HASHTABLE

constexpr int TAMANHO_HASHTABLE = 1000000
constexpr

Definition at line 7 of file TProcuraConstrutiva.h.