TProcuraAdversa
Algoritmos de procura adversa
Loading...
Searching...
No Matches
TProcuraConstrutiva.h File Reference
#include "TVector.h"
#include <stdint.h>
#include <time.h>
#include <limits.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

struct  SParametro
 Estrutura para registo de um parâmetro. More...
 
struct  SResultado
 
class  TProcuraConstrutiva
 Representa um estado no espaço de estados. More...
 
struct  SIndice
 
class  CListaNo
 

Macros

#define _CRT_SECURE_NO_WARNINGS
 
#define TAMANHO_HASHTABLE   1000000
 
#define OBJETO_HASHTABLE   5
 
#define NAO_LIDO   -1000000
 

Typedefs

typedef TProcuraConstrutivaTNo
 Representa um nó na árvore de busca, apontando para um estado.
 
typedef struct SParametro TParametro
 Estrutura para registo de um parâmetro.
 
typedef struct SResultado TResultado
 
typedef struct SIndice TIndice
 

Enumerations

enum  EParametrosConstrutiva {
  algoritmo = 0 , nivelDebug , verAcoes , seed ,
  limiteTempo , limiteGeracoes , limiteExpansoes , limiteAvaliacoes ,
  limite , estadosRepetidos , pesoAStar , ruidoHeur ,
  baralharSuc , parametrosConstrutivas
}
 Identifica um parâmetro específico no código. More...
 
enum  EAlgoritmo {
  larguraPrimeiro = 1 , custoUniforme , profundidadePrimeiro , melhorPrimeiro ,
  aStar , idAStar , branchAndBound
}
 Algoritmos disponíveis para procura construtiva. More...
 
enum  ENivelDebug {
  nada = 0 , atividade , passos , detalhe ,
  completo
}
 Níveis de detalhamento para debug. More...
 
enum  EEstadosRepetidos { ignorados = 1 , ascendentes , gerados }
 Enumerado com os valores possíveis do parametro estadosRepetidos. More...
 
enum  EOperacao { gravar = 0 , ler }
 Define o sentido da operação de entrada/saída de dados. More...
 

Macro Definition Documentation

◆ _CRT_SECURE_NO_WARNINGS

#define _CRT_SECURE_NO_WARNINGS

Definition at line 3 of file TProcuraConstrutiva.h.

◆ NAO_LIDO

#define NAO_LIDO   -1000000

Definition at line 15 of file TProcuraConstrutiva.h.

◆ OBJETO_HASHTABLE

#define OBJETO_HASHTABLE   5

Definition at line 13 of file TProcuraConstrutiva.h.

◆ TAMANHO_HASHTABLE

#define TAMANHO_HASHTABLE   1000000

Definition at line 11 of file TProcuraConstrutiva.h.

Typedef Documentation

◆ TIndice

typedef struct SIndice TIndice

◆ 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 24 of file TProcuraConstrutiva.h.

◆ TParametro

typedef struct SParametro TParametro

Estrutura para registo de um parâmetro.

Permite registrar um parâmetro, armazenando seu valor, limites máximo e mínimo, além de nome e descrição. Cada valor pode ter também um nome, em vez de ser um número. Podem e devem ser adicionados parâmetros específicos de cada problema, de modo a poderem ser testados no teste empírico.

Note
Existe uma vetor de parametros declarada de forma estática, de modo a aceder a qualquer parametro de forma global no código. A ordem dos parametros estão de acordo com o tipo enumerado EParametrosConstrutiva
See also
EParametrosConstrutiva e ResetParametros()

Exemplo:

if(parametro[nivelDebug].valor > passos)
// mostrar informação de debug correspondendo ao nível detalhe ou superior
@ nivelDebug
Nível de debug, de reduzido a completo.
@ passos
Exibe passos intermediários.

◆ TResultado

typedef struct SResultado TResultado

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
larguraPrimeiro 

Executa a procura em largura primeiro, algoritmo cego.

See also
TProcuraConstrutiva::LarguraPrimeiro()
custoUniforme 

Executa a procura por custo uniforme, algoritmo cego.

See also
TProcuraConstrutiva::CustoUniforme()
profundidadePrimeiro 

Executa a procura em profundidade primeiro, algoritmo cego.

See also
TProcuraConstrutiva::ProfundidadePrimeiro()
melhorPrimeiro 

Executa a procura melhor primeiro, algoritmo informado.

See also
TProcuraConstrutiva::MelhorPrimeiro()
aStar 

Executa a procura A*, algoritmo informado.

See also
TProcuraConstrutiva::AStar()
idAStar 

Executa a procura IDA*, algoritmo informado.

See also
TProcuraConstrutiva::IDAStar()
branchAndBound 

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

See also
TProcuraConstrutiva::BranchAndBound()

Definition at line 70 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 109 of file TProcuraConstrutiva.h.

◆ ENivelDebug

Níveis de detalhamento para debug.

Controla a quantidade de informações exibidas durante a execução do algoritmo.

See also
nivelDebug
if(parametro[nivelDebug].valor > passos)
// mostrar informação de debug correspondendo ao nível detalhe ou superior
Enumerator
nada 

Sem informações de debug.

atividade 

Apenas eventos principais.

passos 

Exibe passos intermediários.

detalhe 

Debug detalhada sobre estados e decisões.

completo 

Mostra toda a execução detalhadamente.

Definition at line 92 of file TProcuraConstrutiva.h.

◆ EOperacao

enum EOperacao

Define o sentido da operação de entrada/saída de dados.

Note
Utilizado em funções que requerem distinção entre operação de leitura e gravação.
Enumerator
gravar 
ler 

Definition at line 120 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].valor > passos)
// mostrar informação de debug correspondendo ao nível detalhe ou superior
Enumerator
algoritmo 

Algoritmo base a executar.

nivelDebug 

Nível de debug, de reduzido a completo.

verAcoes 

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

seed 

Semente aleatória para inicializar a sequência de números pseudo-aleatórios.

limiteTempo 

Tempo limite em segundos.

limiteGeracoes 

Número máximo de gerações (0 significa sem limite).

limiteExpansoes 

Número máximo de expansões (0 significa sem limite).

limiteAvaliacoes 

Número máximo de avaliações (0 significa sem limite).

limite 

Valor dependente do algoritmo. Exemplo: Profundidade limitada.

estadosRepetidos 

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

pesoAStar 

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

ruidoHeur 

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

baralharSuc 

Baralhar os sucessores ao expandir.

parametrosConstrutivas 

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

Definition at line 44 of file TProcuraConstrutiva.h.