TProcura
Biblioteca em C++ para testes paramétricos de algoritmos, e coleção de algoritmos de procura e otimização
Loading...
Searching...
No Matches
Aspirador.h
Go to the documentation of this file.
1#pragma once
2
3#include "../TProcuraConstrutiva.h"
4
13{
14public:
15 CAspirador(void);
16 ~CAspirador(void);
17
18 // estrutura de dados (números a colocar, números colocados em cada lado, e total de cada lado)
20 int aspirador; // posição do aspirador
21
22 // Metodos virtuais redefinidos
25 aspirador = ((CAspirador*)objecto)->aspirador;
26 salas = ((CAspirador*)objecto)->salas;
27 }
28 void Inicializar(void);
29 void ResetParametros();
31 bool SolucaoCompleta(void);
32 void Debug(void);
33 const char* Acao(TProcuraConstrutiva* sucessor);
34 bool Distinto(TNo estado);
36 int Heuristica(void);
37};
38
39/* Testes nas procuras cegas (instâncias 2 a 10)
40
41 ID |conf| custo(g) | expansões | gerações | avaliações | tempo(s) |
42----|----|----------|------------|-----------|------------|----------| resolvidas
43Total 1 | 72 | 18771257 | 54577352 | 0 | 22,708s | 8
44Total 2 | 72 | 24694811 | 71755670 | 0 | 13,330s | 8
45Total 3 | 91 | 51377 | 71308 | 0 | 0,036s | 9
46Total 4 | 91 | 21104 | 26778 | 0 | 0,489s | 9
47Total 5 | 189 | 260 | 347 | 0 | 0,000s | 9
48Total 6 | 91 | 3019 | 3432 | 0 | 0,002s | 9
49Torneio (#instâncias melhores):
50 |-01-|-02-|-03-|-04-|-05-|-06-|
51 1 | 2 | -4 | -4 | 7 | -4 | -3
52 |----|----|----|----|----|----|
53 2 -2 | | -4 | -4 | 7 | -4 | -7
54 |----|----|----|----|----|----|
55 3 4 | 4 | | 0 | 9 | 0 | 17
56 |----|----|----|----|----|----|
57 4 4 | 4 | 0 | | 9 | 0 | 17
58 |----|----|----|----|----|----|
59 5 -7 | -7 | -9 | -9 | | -9 |-41
60 |----|----|----|----|----|----|
61 6 4 | 4 | 0 | 0 | 9 | | 17
62 |----|----|----|----|----|----|
63Configuração 1
64P1(Algoritmo): Largura Primeiro | P2(Debug): nada | P3(Ver): 4 | P4(Seed): 1
65P5(Tempo): 10 | P6(Limite): 0 | P7(Repetidos): ignorar | P8(pesoAStar): 100
66P9(ruido): 0 | P10(baralhar): 0
67Configuração 2
68P1(Algoritmo): Profundidade Primeiro | P2(Debug): nada | P3(Ver): 4 | P4(Seed): 1
69P5(Tempo): 10 | P6(Limite): 0 | P7(Repetidos): ignorar | P8(pesoAStar): 100
70P9(ruido): 0 | P10(baralhar): 0
71Configuração 3
72P1(Algoritmo): Profundidade Primeiro | P2(Debug): nada | P3(Ver): 4 | P4(Seed): 1
73P5(Tempo): 10 | P6(Limite): 0 | P7(Repetidos): ascendentes | P8(pesoAStar): 100
74P9(ruido): 0 | P10(baralhar): 0
75Configuração 4
76P1(Algoritmo): Profundidade Primeiro | P2(Debug): nada | P3(Ver): 4 | P4(Seed): 1
77P5(Tempo): 10 | P6(Limite): 0 | P7(Repetidos): gerados | P8(pesoAStar): 100
78P9(ruido): 0 | P10(baralhar): 0
79Configuração 5
80P1(Algoritmo): Profundidade Primeiro | P2(Debug): nada | P3(Ver): 4 | P4(Seed): 1
81P5(Tempo): 10 | P6(Limite): -1 | P7(Repetidos): gerados | P8(pesoAStar): 100
82P9(ruido): 0 | P10(baralhar): 0
83Configuração 6
84P1(Algoritmo): Largura Primeiro | P2(Debug): nada | P3(Ver): 4 | P4(Seed): 1
85P5(Tempo): 10 | P6(Limite): 0 | P7(Repetidos): gerados | P8(pesoAStar): 100
86P9(ruido): 0 | P10(baralhar): 0
87
88*/
#define OBJETO_HASHTABLE
Representa um estado no problema do Aspirador.
Definition Aspirador.h:13
void Debug(void)
Mostra o estado no ecrã, para debug.
Definition Aspirador.cpp:70
void Copiar(TProcuraConstrutiva *objecto)
Definition Aspirador.h:24
TProcuraConstrutiva * Duplicar(void)
Cria um objecto que é uma cópia deste.
Definition Aspirador.cpp:14
CAspirador(void)
Definition Aspirador.cpp:6
const char * Acao(TProcuraConstrutiva *sucessor)
Definition Aspirador.cpp:59
int aspirador
Definition Aspirador.h:20
void ResetParametros()
Inicializa os parametros, indicadores e instâncias.
Definition Aspirador.cpp:34
bool SolucaoCompleta(void)
Verifica se o estado actual é objectivo (é uma solução completa)
Definition Aspirador.cpp:83
void Codifica(uint64_t estado[OBJETO_HASHTABLE])
Codifica o estado para um vetor de inteiros de 64 bits.
bool Distinto(TNo estado)
Verifica se o estado actual distinto do fornecido.
Definition Aspirador.cpp:91
~CAspirador(void)
Definition Aspirador.cpp:10
TVector< char > salas
Definition Aspirador.h:19
void Sucessores(TVector< TNo > &sucessores)
Coloca em sucessores a lista de estados sucessores.
Definition Aspirador.cpp:40
int Heuristica(void)
Função para calcular quanto falta para o final, o valor da heurística.
Definition Aspirador.cpp:98
void Inicializar(void)
Coloca o objecto no estado inicial da procura.
Definition Aspirador.cpp:24
Representa um estado no espaço de estados.
static int resultado
Resultado retornado pelo algoritmo na última execução.
Definition TProcura.h:459