TProcura
Biblioteca em C++ para testes paramétricos de algoritmos, e coleção de algoritmos de procura e otimização
Loading...
Searching...
No Matches
Particao.h
Go to the documentation of this file.
1#pragma once
2
3#include "../TProcuraConstrutiva.h"
4
11class CParticao :
13{
14public:
15 CParticao(void);
16 ~CParticao(void);
17
18 // estrutura de dados (números a colocar, números colocados em cada lado, e total de cada lado)
21
22 // Metodos virtuais redefinidos
26 numeros = ((CParticao*)objecto)->numeros;
27 esquerda = ((CParticao*)objecto)->esquerda;
28 direita = ((CParticao*)objecto)->direita;
29 totalEsquerda = ((CParticao*)objecto)->totalEsquerda;
30 totalDireita = ((CParticao*)objecto)->totalDireita;
31 }
32 void Inicializar(void);
33 void Gravar(void);
35 bool SolucaoCompleta(void) {
37 }
38 void Debug(bool completo = true) override;
39 void MostrarSolucao(void) { Debug(); }
41 void Codifica(TBits &estado);
42 void ResetParametros();
43};
44
45/* Testes nas procuras cegas (instâncias 20 a 29)
46
47 ID |conf| custo(g) | expansões | gerações | avaliações | tempo(s) |
48----|----|----------|------------|-----------|------------|----------|
49 20 | 1 | 20 | 163979 | 228706 | 0 | 0,249s |
50 21 | 1 | 20 | 97485 | 129560 | 0 | 0,134s |
51 22 | 1 | 21 | 179777 | 243832 | 0 | 0,231s |
52 23 | 1 | sem sol. | 384627 | 384626 | 0 | 0,374s |
53 24 | 1 | sem sol. | 1226523 | 1226522 | 0 | 1,398s |
54 25 | 1 | sem sol. | 3461151 | 3461150 | 0 | 4,136s |
55 26 | 1 | sem sol. | 3731307 | 3731306 | 0 | 4,743s |
56 27 | 1 | não res. | 8559764 | 11039290 | 0 | 15,341s |
57 28 | 1 | não res. | 7480665 | 9616932 | 0 | 14,188s |
58 29 | 1 | não res. | 7859585 | 10463074 | 0 | 14,493s |
59 20 | 2 | 20 | 432100 | 660794 | 0 | 0,408s |
60 21 | 2 | 20 | 274472 | 404018 | 0 | 0,244s |
61 22 | 2 | 21 | 521564 | 765382 | 0 | 0,504s |
62 23 | 2 | não res. | 13574376 | 13958958 | 0 | 10,001s |
63 24 | 2 | não res. | 13623338 | 14849840 | 0 | 10,001s |
64 25 | 2 | não res. | 11727455 | 15188590 | 0 | 10,001s |
65 26 | 2 | não res. | 11099210 | 14830500 | 0 | 10,001s |
66 27 | 2 | não res. | 9276509 | 15074684 | 0 | 10,001s |
67 28 | 2 | não res. | 9712819 | 15076786 | 0 | 10,001s |
68 29 | 2 | não res. | 9693709 | 14481126 | 0 | 10,001s |
69 20 | 3 | 20 | 184 | 192 | 0 | 0,001s |
70 21 | 3 | 20 | 33 | 40 | 0 | 0,001s |
71 22 | 3 | 21 | 34 | 42 | 0 | 0,000s |
72 23 | 3 | sem sol. | 384627 | 384626 | 0 | 0,218s |
73 24 | 3 | sem sol. | 1226523 | 1226522 | 0 | 0,814s |
74 25 | 3 | sem sol. | 3461151 | 3461150 | 0 | 2,372s |
75 26 | 3 | sem sol. | 3731307 | 3731306 | 0 | 2,658s |
76 27 | 3 | 27 | 45 | 54 | 0 | 0,000s |
77 28 | 3 | 27 | 86 | 96 | 0 | 0,000s |
78 29 | 3 | 29 | 50 | 58 | 0 | 0,000s |
79 20 | 4 | 20 | 148 | 155 | 0 | 0,000s |
80 21 | 4 | 20 | 33 | 39 | 0 | 0,000s |
81 22 | 4 | 21 | 34 | 41 | 0 | 0,000s |
82 23 | 4 | sem sol. | 1008 | 1007 | 0 | 0,002s |
83 24 | 4 | sem sol. | 1389 | 1388 | 0 | 0,001s |
84 25 | 4 | sem sol. | 1874 | 1873 | 0 | 0,004s |
85 26 | 4 | sem sol. | 1473 | 1472 | 0 | 0,002s |
86 27 | 4 | 27 | 45 | 53 | 0 | 0,000s |
87 28 | 4 | 27 | 81 | 90 | 0 | 0,000s |
88 29 | 4 | 29 | 50 | 57 | 0 | 0,000s |
89----|----|----------|------------|-----------|------------|----------| resolvidas
90Total 1 | 61 | 33144863 | 40524998 | 0 | 55,287s | 7
91Total 2 | 61 | 79935552 | 105290678 | 0 | 71,163s | 3
92Total 3 | 144 | 8804040 | 8804086 | 0 | 6,064s | 10
93Total 4 | 144 | 6135 | 6175 | 0 | 0,009s | 10
94Torneio (#instâncias melhores):
95 |-01-|-02-|-03-|-04-|
96 1 | 7 |-10 |-10 |-13
97 |----|----|----|----|
98 2 -7 | |-10 |-10 |-27
99 |----|----|----|----|
100 3 10 | 10 | | -4 | 16
101 |----|----|----|----|
102 4 10 | 10 | 4 | | 24
103 |----|----|----|----|
104Configuração 1
105P1(Algoritmo): Largura Primeiro | P2(Debug): nada | P3(Ver): 4 | P4(Seed): 1
106P5(Tempo): 10 | P6(Limite): 0 | P7(Repetidos): ignorar | P8(pesoAStar): 100
107P9(ruido): 0 | P10(baralhar): 0 | P11(Max. Avaliações): 1000000 | P12(Move Primeiro): Sim
108P13(População): 20 | P14(Prob. Mutação): 50 | P15(Dist. Mínima): 0
109Configuração 2
110P1(Algoritmo): Profundidade Primeiro | P2(Debug): nada | P3(Ver): 4 | P4(Seed): 1
111P5(Tempo): 10 | P6(Limite): 0 | P7(Repetidos): ignorar | P8(pesoAStar): 100
112P9(ruido): 0 | P10(baralhar): 0 | P11(Max. Avaliações): 1000000 | P12(Move Primeiro): Sim
113P13(População): 20 | P14(Prob. Mutação): 50 | P15(Dist. Mínima): 0
114Configuração 3
115P1(Algoritmo): Profundidade Primeiro | P2(Debug): nada | P3(Ver): 4 | P4(Seed): 1
116P5(Tempo): 10 | P6(Limite): -1 | P7(Repetidos): ignorar | P8(pesoAStar): 100
117P9(ruido): 0 | P10(baralhar): 0 | P11(Max. Avaliações): 1000000 | P12(Move Primeiro): Sim
118P13(População): 20 | P14(Prob. Mutação): 50 | P15(Dist. Mínima): 0
119Configuração 4
120P1(Algoritmo): Profundidade Primeiro | P2(Debug): nada | P3(Ver): 4 | P4(Seed): 1
121P5(Tempo): 10 | P6(Limite): -1 | P7(Repetidos): gerados | P8(pesoAStar): 100
122P9(ruido): 0 | P10(baralhar): 0 | P11(Max. Avaliações): 1000000 | P12(Move Primeiro): Sim
123P13(População): 20 | P14(Prob. Mutação): 50 | P15(Dist. Mínima): 0
124
125
126*/
Representa um estado do problema da partição.
Definition Particao.h:13
int64_t totalDireita
Definition Particao.h:20
~CParticao(void)
Definition Particao.cpp:9
int64_t totalEsquerda
Definition Particao.h:20
void Copiar(TProcuraConstrutiva *objecto)
Definition Particao.h:24
void Codifica(TBits &estado)
Codifica o estado para um vetor de inteiros de 64 bits.
Definition Particao.cpp:149
TVector< int > direita
Definition Particao.h:19
TVector< int > esquerda
Definition Particao.h:19
void Sucessores(TVector< TNo > &sucessores)
Coloca em sucessores a lista de estados sucessores.
Definition Particao.cpp:59
TVector< int > numeros
Definition Particao.h:19
void ResetParametros()
Inicializa os parâmetros, indicadores e instâncias.
Definition Particao.cpp:170
void Gravar(void)
Definition Particao.cpp:51
bool SolucaoCompleta(void)
Verifica se o estado actual é objectivo (é uma solução completa)
Definition Particao.h:35
void Inicializar(void)
Coloca o objecto no estado inicial da procura.
Definition Particao.cpp:23
void MostrarSolucao(void)
definir para visualizar a solução
Definition Particao.h:39
TProcuraConstrutiva * Duplicar(void)
Cria um objecto que é uma cópia deste.
Definition Particao.cpp:13
TString Acao(TProcuraConstrutiva *sucessor)
Definition Particao.cpp:83
void Debug(bool completo=true) override
Mostra o estado no ecrã, para debug.
Definition Particao.cpp:94
CParticao(void)
Definition Particao.cpp:5
Representa um estado no espaço de estados.
static int resultado
Resultado retornado pelo algoritmo na última execução.
Definition TProcura.h:575
virtual bool Empty() const
Definition TVector.h:233
virtual void Copiar(TNo objecto)
Fica com uma cópia do objecto.