Inteligência Artificial Projecto 1

Documentos relacionados
Como começar a Jogar? Para iniciar o jogo a forma mais fácil é ir a e começar a jogar.

Trabalho Prático Data de Entrega : 30 de Maio

Projecto de Algoritmos e Estruturas de Dados

Inteligência Artificial

Busca Heurística - Informada

SME Introdução à Programação de Computadores Primeiro semestre de Trabalho: jogo Semáforo

Especificação do Trabalho Prático

Introdução à Inteligência Artificial MAC MAC 415. Exercício Programa 1 Busca

PROGRAMAÇÃO DE COMPUTADORES I BCC Aula Prática 15

Inteligência Artificial Taguspark

lnteligência Artificial

Primeiro Trabalho de IA/SI: Buscas. Entrega: 03/03/2019 (2 semanas)

Métodos de Busca. Inteligência Artificial. Busca Heurística. Busca Heurística. Prof. Ms. Luiz Alberto Contato:

Departamento de Ciência de Computadores - FCUP Primeiro Teste de Inteligência Artificial / Sistemas Inteligentes (Duração: 2 horas)

Programação II. Trabalho 2 Freecell

PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012

Estruturas de Dados I Enunciado do Trabalho Prático

Programação Aplicada de Computadores. Trabalho 1 Freecell

Inteligência Artificial

Resolução de Problemas de Busca

Fundamentos da Programação. Ano lectivo , 2 o Semestre Projecto Primeira Parte 1. Nim

21090 Programação e-fólio A 2015/2016. E-fólio A. O e-fólio A é baseado no jogo do dominó (

INTELIGÊNCIA ARTIFICIAL 2008/09

Introdução à Resolução de Problemas por meio de Busca

Especificações do Trabalho Prático de Informática I

INTELIGÊNCIA ARTIFICIAL

Encriptação de Mensagens

O Manual do KBlackBox. Nicolas Roffet Robert Cimrman Philip Rodrigues Lauri Watts Tradução: José Pires

Nº de jogadores 2 Tempo de jogo 15 minutos Idade a partir dos 10 anos

Introdução à Algoritmia

DURAÇÃO DA PROVA: 2 horas

Introdução à Programação. João Manuel R. S. Tavares

MAC 115 Introdução à Ciência da Computação ROTHELO

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Aula II Algoritmos básicos de busca cega

SISTEMAS DIGITAIS LETI, LEE Ano lectivo de 2015/2016 Trabalho 3 Circuitos Combinatórios Típicos

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 5 Resolvendo Problemas

1.1. O jogo Neste jogo parte-se de um tabuleiro com um número ímpar de discos (no caso da figura abaixo são 9), dispostos em linha,

Algoritmos de retrocesso

REGRAS DOS JOGOS do CNJM15

SISTEMAS DIGITAIS LETI, LEE Ano lectivo de 2013/2014 Trabalho 2 Circuitos Combinatórios Típicos

Sumário. Decisões óptimas em jogos (minimax) Cortes α-β Decisões imperfeitas em tempo real

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 02

Computação e Programação

Campeonato de Gamão. 1. Regras. 2. Servidor

INTELIGÊNCIA ARTIFICIAL

Busca Cega (Exaustiva) e Heurística. Busca Aula 2

Projecto de Programação e Computação para Arquitectura. António Menezes Leitão

Introdução à Programação

a) Defina em Prolog iguais/1, um predicado que recebe um estado do jogo e que verifica que todas as pilhas têm o mesmo número de peças.

Jogo King Relatório da Melhoria do Trabalho Inteligência Artificial. Tiago Fonseca, ei02100

Sistemas Baseados em Conhecimento

JOGOS Bruno Holanda, Fortaleza CE

Os problemas de IA empregam heurísticas, basicamente, em duas situações:

Computação I - Python Aula 1 - Teórica: Introdução

Implementação e Avaliação do Algoritmo MCTS-UCT para o jogo Chinese Checkers. Jhonny Moreira

Inteligência Artificial Alameda e Taguspark

Sistema Rodoviário Tabajara

Linguagem C Entrada/Saída (console)

Prof. Dr. Jaime Simão Sichman Prof. Dra. Anna Helena Reali Costa

ADAPTAÇÃO PEGA VARETAS (Números Inteiros Negativos)

CI202 - Métodos Numéricos - Trabalho 2

XXVI OLIMPÍADA BRASILEIRA DE MATEMÁTICA TERCEIRA FASE NÍVEL 1 (5ª e 6ª séries - Ensino Fundamental)

Normas I Torneio Inter- Freguesias de Voleibol do Nordeste (4x4)

Gestão de Base de dados Tabelas e Chaves

Instituto Federal de Minas Gerais - Campus Bambuí

Jogos e Brincadeiras II

Buscas Informadas ou Heurísticas - Parte II

Inteligência Artificial Alameda e Taguspark

Exercícios: Vetores e Matrizes

Regras e Condições de Participação Torneio Voleibol do Nordeste (4x4)

Zooloretto. Um jogo de Michael Schacht para 2 a 5 jogadores dos 8 anos em diante

2

Transcrição:

Bantumi ESPECIFICAÇÕES O projecto destina-se a resolver um conjunto de problemas do jogo Bantumi utilizando métodos de procura em espaço de estados. Bantumi é um jogo derivado do jogo Mancala de origem Africana a centenas de anos atrás. Existem muitas variantes deste jogo, alterando o numero de pedras de cada cesto no inicio do jogo até ao modo como cada pedra é coleccionada na Mancala. O jogo Bantumi ocorre num tabuleiro, abaixo representado, em que inicialmente as peças estão distribúidas das seguintes formas: 4 4 4 4 4 4 4 4 4 4 4 4 Figura 1 Tabuleiro inicial A 6 6 6 6 6 6 6 6 6 6 6 6 Figura 2 Tabuleiro inicial B Cada jogador começa com o mesmo número de peças. Inicialmente, podemos começar ou com o tabuleiro A ou B, fica ao critério dos jogadores, pois são eles que devem escolher o tabuleiro inicial. Onde, as casas do jogador 1 são as de cima, por consequência as casas do jogador 2 são as de baixo. A Mancala é a casa onde os jogadores podem depositar pedras, de forma a acumularem pontos. Sendo, a Mancala da esquerda a do jogador 1 e a Mancala da direito a do jogador 2. Uma jogada consiste em que um jogador escolha uma das suas casas, agarrando nas pedras depositadas nessa mesma casa, e colocando-as, uma a uma, nas casas seguintes pela ordem contrária dos ponteiros do relógio. Sempre que passa na sua Mancala deve depositar uma pedra, caso passe na Mancala do adversário não deposita nenhuma pedra. Regras do jogo: Todos as jogadas são feitas ao contrário da rotação dos ponteiros do relógio. Figura 3 Rotação das jogadas Departamento de Sistemas e Informática IA 25/26 Instituto Politécnico de Setúbal Eng. Adelaide Trabuco 1/8

Para jogar, o jogador devesse escolher uma das suas casa, agarrando nas pedras depositadas nessa mesma casa, e colocando-as, uma a uma, nas casas seguintes pela ordem contrária dos ponteiros do relógio. 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 Figura 4 Jogada Sempre que o jogador passa com pedras na sua Mancala, deve depositar uma pedra, aumentando a sua pontuação em 1. 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 4 4 4 4 5 1 Figura 5 Jogada com colecção de pedras na Mandala Sempre que o jogador passa com pedras na Mancala do adversário, não deposita nenhuma pedra. 3 2 1 9 5 4 14 4 2 1 4 1 4 3 2 1 1 1 2 5 3 2 1 6 Figura 6 Jogada complexa Departamento de Sistemas e Informática IA 25/26 Instituto Politécnico de Setúbal Eng. Adelaide Trabuco 2/8

Se numa jogada, a última pedra for depositada na sua Mancala, o jogador pode jogar novamente. 3 2 1 9 5 4 6 4 2 1 3 2 1 9 4 1 5 3 2 1 6 Figura 7 Jogada que permite com que o jogador volte a jogar novamente Se numa jogada, a última pedra for depositada numa das suas casas, e essa mesma casa estiver vazia, a pedra passa automaticamente para a sua Mancala, e se a casa oposta do adversário tiver pedras, essas também são colocadas na Mancala do jogador, automaticamente. 3 2 1 9 5 4 1 4 2 1 3 2 1 9 5 4 1 4 2 1 3 2 1 9 6 4 4 2 1 2 1 9 4 4 2 1 9 Figura 8 Jogada complexa Departamento de Sistemas e Informática IA 25/26 Instituto Politécnico de Setúbal Eng. Adelaide Trabuco 3/8

Se um dos jogadores não tiver nenhuma pedra em nenhuma das suas casas, o jogo termina. Se o adversário tiver pedras, são colocadas automaticamente na sua Mancala. 2 13 1 4 2 1 13 28 Figura 9 Fim de jogo O jogador vencedor é aquele que tiver mais pedras na sua "Mancala". OBJECTIVO O objectivo do jogo é colocar todas as pedras nas Mandalas de ambos os jogadores. O jogo termina quando não houver pedras nas casas dos jogadores. O primeiro projecto de IA, considera este jogo em estilo de problema. Só existe um jogador, que joga de ambos os lados, ao mesmo tempo, alternadamente, jogando apenas uma vez de cada lado. Pretende-se um programa, em LISP, para indicar a sequência de passos que conduzem de uma posição inicial do puzzle até a uma posição terminal do jogo. Sugere-se que, a heurística inicial seja a de minimizar o número de pedras nas casas dos jogadores. NOTAÇÃO O tabuleiro é representado por uma lista de listas em LISP em que [] representa uma casa vazia, [-1] casa inválida e, [X] casa com X pedras. O tabuleiro da figura 1 tem a seguinte representação: ( ( 4 4 4 4 4 4-1 ) ( -1 4 4 4 4 4 4 ) ) O tabuleiro da figura 2 tem a seguinte representação: ( ( 6 6 6 6 6 6-1 ) ( -1 6 6 6 6 6 6 ) ) A solução pode representar-se por uma sequência de estados, desde o estado inicial até ao estado final, ou então por razões de legibilidade pela lista de operações (i.e. movimentos) realizadas sobre as peças do tabuleiro. Cada jogada é representada por uma lista com a estrutura: (coluna linha) Departamento de Sistemas e Informática IA 25/26 Instituto Politécnico de Setúbal Eng. Adelaide Trabuco 4/8

A coluna corresponde ao número da coluna correspondente à jogada. A linha corresponde ao número da linha correspondente à jogada. Note que a numeração das colunas e das linhas deve ser a seguinte: 1 2 1 2 3 4 5 6 7 8 Figura 1 Numeração das linhas e colunas do tabuleiro O programa deverá estar dividido em três partes: uma parte para implementar o método de procura genérico, outra para implementar a resolução do problema do puzzle, e a terceira parte para fazer a interacção com o utilizador e para proceder à escrita e leitura de ficheiros. Enquanto a primeira parte do programa deverá ser genérica para qualquer problema que possa ser resolvido com base no método de procura seleccionado, a segunda parte é específica do caso particular em causa, nomeadamente o problema Bantumi. O projecto deverá apresentar um estudo comparativo do comportamento dos três métodos: procura em largura, procura em profundidade e A*. Para além destas três formas de procura cada grupo deve programar, aplicar e estudar uma das seguintes estratégias Simplified Memory-Bounded A* (SMA*), Iterative Deepening A* (IDA*) ou Recursive Best First Search (RBFS) de acordo com a distribuição definida na aula teórica. Assim, cada grupo terá de entregar a resolução de cada um dos problemas propostos usando 4 métodos. A falta da implementação de qualquer dos métodos, ou a falta total de resultados apresentados relativamente a qualquer dos métodos, é penalizada com um mínimo de 3 valores por cada método em falta. O projecto deverá incluir a implementação de cada um dos métodos de forma modular, permitindo que o programador possa recorrer à implementação realizada e incorporar apenas os que entender no seu programa, tipo biblioteca. No caso dos métodos informados, o programa deverá utilizar funções heurísticas modulares, i.e. que possam ser colocadas ou retiradas do programa de procura como módulos. As heurísticas não devem estar embebidas de forma rígida no programa de procura. Exige-se a utilização de pelo menos duas heurísticas: uma dada nas aulas e outra desenvolvida pelos alunos. EXPERIÊNCIAS Pretende-se que o projecto estude, para cada problema dado, o desempenho de cada uma das heurísticas, apresentando, em relação a cada ensaio, dados estatísticos sobre a sua eficiência, nomeadamente o factor de ramificação, o número de nós gerados, o número de nós expandidos, a penetrância e a profundidade. Os projectos deverão apresentar as soluções de TODOS os problemas abaixo indicados, mediante um ficheiro de resultados produzido automaticamente pelo programa, sendo descontado,3 valor por cada problema não resolvido. No caso de ser apresentada a solução, mas não o estudo de desempenho das heurísticas o desconto é de apenas,2 valor por cada caso. O formato do ficheiro deve ser o seguinte: Departamento de Sistemas e Informática IA 25/26 Instituto Politécnico de Setúbal Eng. Adelaide Trabuco 5/8

(factor_ramificação <valor>) (nós_gerados <número_nós>) (nós_expandidos <número_nós>) (penetrância <valor>) (profundidade <valor>) (tabuleiros <lista_tabuleiros>) (movimentos <lista_movimentos>) Note que, a lista de tabuleiros inclui todos os estados do tabuleiro desde o início do jogo até ao fim do jogo, e a lista de movimentos inclui todos os movimentos desde o primeiro movimento até ao último. Estes problemas deverão estar num ficheiro problemas.dat., utilizando a notação atrás indicada. O último problema ( h) ) será apresentado durante a avaliação oral e inserido num novo ficheiro problemas.dat para verificar o funcionamento do projecto. 5 1 3 a) jogador 1 joga primeiro 4 2 b) jogador 1 joga primeiro 4 6 1 2 c) jogador 1 joga primeiro 3 4 5 7 8 5 2 d) jogador 1 joga primeiro 2 1 18 8 5 2 e) jogador 1 joga primeiro 2 1 1 Departamento de Sistemas e Informática IA 25/26 Instituto Politécnico de Setúbal Eng. Adelaide Trabuco 6/8

9 5 8 f) jogador 1 joga primeiro 4 4 4 4 4 4 4 4 4 4 4 4 g) jogador 1 joga primeiro 6 6 6 6 6 6 6 6 6 6 6 6 h) jogador 1 joga primeiro GRUPOS Os projectos deverão ser realizados em grupos de 2 pessoas, sendo sempre sujeitos a avaliação oral individual. DATAS Entrega do projecto: 5 de Dezembro de 25. DOCUMENTAÇÃO A ENTREGAR A entrega do plano do projecto e do projecto final deverá ser feita juntando todos os ficheiros a entregar que, após compressão (zip) deverá ser enviada como attachment de uma mensagem e-mail, para o respectivo professor dos laboratórios, devidamente identificados e com o subject seguinte: IA-PROJECTO-numero1-numero2 (Exemplo: IA-PROJECTO-1111-2222), até à data acima indicada. Após a entrega por e-mail os grupos deverão contactar pessoalmente ao respectivo professor dos laboratórios, acompanhados de um original impresso dos documentos para ser concluída a entrega. Para além de entregar os ficheiros de código, abaixo indicados, é necessário elaborar manuais em dois ficheiros adicionais, escritos em MSWord para Windows. Note que, se criar variáveis globais deve escrever um capítulo sobre cada variável global, indicando uma explicação clara e sucinta sobre a criação e utilização de cada variável global. Indicam-se os nomes dos ficheiros que se pretende: Projecto.lsp Carrega os outros ficheiros de código, escreve e lê de ficheiros e trata da interacção com o utilizador. Problema.lsp Código LISP relacionado com a resolução do problema, específico do domínio de aplicação (e.g. heurísticas). Departamento de Sistemas e Informática IA 25/26 Instituto Politécnico de Setúbal Eng. Adelaide Trabuco 7/8

Procura.lsp Deve conter o código LISP correspondente à implementação dos algoritmos de procura em espaço de estados abaixo indicados, portanto independente do domínio de aplicação. Algoritmo de procura em Largura Primeiro Algoritmo de procura em Profundidade Primeiro Algoritmo de procura pelo Melhor Primeiro Um dos algoritmos SMA*; IDA* ou RBFS ManualTecnico.doc O Manual Técnico deverá conter o algoritmo geral e por partes devidamente comentado; descrição dos objectos que compõem o projecto, incluindo dados e procedimentos; identificação das limitações e opções técnicas. ManualUtilizador.doc O Manual do Utilizador deverá conter a identificação dos objectivos do programa, e descrição geral do seu funcionamento; explicação da forma como se usa o programa (acompanhada de exemplos); descrição da informação necessária e da informação produzida (écran/teclado e ficheiros); limitações do programa, do ponto de vista do utilizador, de natureza não técnica. AVALIAÇÃO A avaliação do projecto levará em linha de conta os seguintes aspectos: Data de entrega - Há tolerância de uma semana, com a penalização de um valor por cada dia de atraso. Após uma semana de atraso a nota do projecto será zero. Correcção processual da entrega do projecto - (email; manuais no formato correcto). Anomalias processuais darão origem a uma penalização que pode ir até 3 valores, sendo dada uma semana de tolerância para correcção de eventuais problemas que impeçam a análise do projecto. Após uma semana de atraso a nota do projecto será zero. Qualidade técnica - Objectivos atingidos; Código correcto; Facilidade de leitura e manutenção do programa; Opções técnicas correctas. Qualidade da documentação - Estrutura e conteúdo dos manuais que acompanham o projecto de acordo com as boas práticas de documentação, as quais são indicadas e esclarecidas nas aulas de laboratório. Avaliação oral - Eficácia e eficiência da exposição; compreensão das limitações e possibilidades de desenvolvimento do programa. Nesta fase poderá haver lugar a uma revisão total da nota de projecto. Departamento de Sistemas e Informática IA 25/26 Instituto Politécnico de Setúbal Eng. Adelaide Trabuco 8/8