Uma coleção de algoritmos e implementações para procuras adversas.
A documentação completa está disponível em:
👉 TProcuraAdversa - Documentação
👉 TProcuraConstrutiva - Documentação
\anchor s1
Uma coleção de algoritmos e implementações para procuras adversas, criada como ponto de partida para a implementação de novos jogos e estratégias de procura. Esse repositório serve como base para explorar e desenvolver soluções em problemas de múltiplos agentes.
Recursos utilizados na UC de Introdução à Inteligência Artificial, da Licenciatura em Engenharia Informática da Universidade Aberta
Bibliografia da UC, e base teórica para o projeto: Russell, S. J., & Norvig, P. (2021). Artificial Intelligence: A Modern Approach (4th ed.). Pearson.
\anchor s2
⚠️ Este projeto ainda está em desenvolvimento.
Atualizações frequentes e melhorias estão sendo implementadas.
\anchor s3
- Implementação de algoritmos de procura adversa na superclasse.
- Exploração do espaço de estados de forma manual
- Execução de Minimax, com ou sem cortes alfa/beta, com ou sem versão iterativa
- Utilização de estados já explorados.
\anchor s4
Clonar o projeto, compilar e executar.
git clone https://github.com/jcoelho72/TProcuraAdversa.git
ou
Aceder a página do repositório e clique em "Code" → "Open with Visual Studio".
Aceder a página do repositório e clique em "Code" → "Download ZIP".
Extraia os arquivos. Em seguida, aceda ao repositório TProcuraConstrutiva e clique em "Code" → "Download ZIP".
Extraia os arquivos do TProcuraConstrutiva para uma subpasta dentro do diretório extraído do TProcuraAdversa, de forma que os arquivos do submódulo fiquem acessíveis para a compilação.
Siga as instruções de compilação disponíveis (por exemplo, via Makefile, Visual Studio etc., conforme o seu ambiente).
Para integrar o TProcuraAdversa como parte de outro projeto, utilize um submódulo:
git submodule add https://github.com/jcoelho72/TProcuraAdversa.git
git submodule update --init --recursive
Essa opção é útil se pretender manter o código atualizado.
Teste a classe com problemas implementados.
\anchor s5
Para implementar um novo problema utilizando o TProcuraAdversa, pode:
- redefinir a superclasse TProcuraAdversa de raiz;
- readaptar um problema similar.
A redefinição mandatória de métodos de TProcuraConstrutiva mantém-se:
Ao redefinir a superclasse, é essencial que sejam implementados os seguintes métodos:
- Duplicar(): Cria um objecto que é uma cópia deste.
- Copiar(): Fica com uma cópia do objecto.
- SolucaoVazia(): Coloca o objecto no estado inicial da procura.
- Sucessores(): Coloca em sucessores a lista de estados sucessores.
- SolucaoCompleta(): Verifica se o estado actual é objectivo (é uma solução completa)
- TesteManual(): Inicializa a interação com o utilizador.
Documentação dos métodos de Redefinição Mandatória:
..(identificar )..
\anchor s6
Alguns problemas estão implementados para demonstrar o funcionamento da classe TProcuraConstrutiva:
Esses exemplos servem tanto para testar o repositório quanto para servir de base para novas implementações.
\anchor s7
Distribuído sob a licença MIT. Veja o arquivo LICENSE para mais informações.