TProcura
Biblioteca em C++ para testes paramétricos de algoritmos, e coleção de algoritmos de procura e otimização
Loading...
Searching...
No Matches
OitoDamas.h
Go to the documentation of this file.
1#pragma once
2#include "../TProcuraConstrutiva.h"
3
4constexpr int MAX_DAMAS = 40;
5
15{
16public:
17 COitoDamas(void);
18 ~COitoDamas(void);
19
20 // estrutura de dados: posicao de cada dama
22 static int nDamas; // número de damas desta instância
23
24 // metodos virtuais redefinidos de TProcuraConstrutiva
25
31 void Inicializar(void);
32 void Gravar(void);
33 void ResetParametros();
35 bool SolucaoCompleta(void) { return damas.Count() == nDamas; }
36 void Debug(bool completo = true) override;
37 void MostrarSolucao(void) { Debug(); }
39 void Codifica(TBits &estado);
40
41private:
42 // métodos de normalização de um estado
43 void Normalizar(TVector<int>& damas); // coloca em damas o estado normalizado
44 int PesoVersao(int tab[MAX_DAMAS][MAX_DAMAS]); // peso da versão do estado
45 void Simetria(int tab[MAX_DAMAS][MAX_DAMAS], int eixo); // aplica uma simetria
46 void Troca(int& a, int& b); // troca dois valores
47};
48
constexpr int MAX_DAMAS
Definition OitoDamas.h:4
constexpr int MAX_DAMAS
Definition OitoDamas.h:18
Representa um estado do problema das 8 damas.
Definition OitoDamas.h:15
void Debug(bool completo=true) override
Mostra o estado no ecrã, para debug.
Definition OitoDamas.cpp:79
static int nDamas
Definition OitoDamas.h:22
void Inicializar(void)
Coloca o objecto no estado inicial da procura.
Definition OitoDamas.cpp:24
TString Acao(TProcuraConstrutiva *sucessor)
Definition OitoDamas.cpp:72
bool SolucaoCompleta(void)
Verifica se o estado actual é objectivo (é uma solução completa)
Definition OitoDamas.h:35
void Sucessores(TVector< TNo > &sucessores)
Coloca em sucessores a lista de estados sucessores.
Definition OitoDamas.cpp:51
~COitoDamas(void)
Definition OitoDamas.cpp:10
TVector< int > damas
Definition OitoDamas.h:21
void Gravar(void)
Definition OitoDamas.cpp:39
void MostrarSolucao(void)
definir para visualizar a solução
Definition OitoDamas.h:37
TProcuraConstrutiva * Duplicar(void)
Cria um objecto que é uma cópia deste.
Definition OitoDamas.cpp:14
void ResetParametros()
Inicializa os parâmetros, indicadores e instâncias.
Definition OitoDamas.cpp:45
void Copiar(TProcuraConstrutiva *objecto)
Definition OitoDamas.h:27
COitoDamas(void)
Definition OitoDamas.cpp:6
void Codifica(TBits &estado)
Codifica o estado para um vetor de inteiros de 64 bits.
Representa um estado no espaço de estados.
static int resultado
Resultado retornado pelo algoritmo na última execução.
Definition TProcura.h:575
int Count() const
Definition TVector.h:230
virtual void Copiar(TNo objecto)
Fica com uma cópia do objecto.