• Nenhum resultado encontrado

Inteligência Artificial Projecto 1

N/A
N/A
Protected

Academic year: 2021

Share "Inteligência Artificial Projecto 1"

Copied!
8
0
0

Texto

(1)

Inteligência Artificial

Projecto 1

Bantumi

E

SPECIFICAÇÕ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

0

4 4 4 4 4 4

0

Figura 1 – Tabuleiro inicial A

6 6 6 6 6 6

0

6 6 6 6 6 6

0

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.

(2)

Inteligência Artificial

Projecto 1

• 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

0

4 4 4 4 4 4

0

4 4 4 4 4 4

0

4 0 5 5 5 5

0

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

0

4 4 4 4 4 4

0

4 4 4 4 5 5

0

4 4 4 4 0 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.

0 3 2 1 0 9

4

14 0 4 2 1 0

5

1 4 3 2 1 10

4

1 2 5 3 2 1

6

(3)

Inteligência Artificial

Projecto 1

• Se numa jogada, a última pedra for depositada na sua “Mancala”, o jogador pode jogar novamente.

0 3 2 1 0 9

4

6 0 4 2 1 0

5

0 3 2 1 0 9

4

0 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.

0 3 2 1 0 9

4

1 0 4 2 1 0

5

0 3 2 1 0 9

4

0 1 4 2 1 0

5

0 3 2 1 0 9

4

0 0 4 2 1 0

6

0 0 2 1 0 9

4

0 0 4 2 1 0

9

(4)

Inteligência Artificial

Projecto 1

• 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”.

0 0 0 0 0 0

13

1 0 4 2 1 0

20

0 0 0 0 0 0

13

0 0 0 0 0 0

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 [0] representa uma casa vazia, [-1] casa inválida e, [X] casa com X pedras.

O tabuleiro da figura 1 tem a seguinte representação:

( ( 0 4 4 4 4 4 4 -1 )

( -1 4 4 4 4 4 4 0 ) )

O tabuleiro da figura 2 tem a seguinte representação:

( ( 0 6 6 6 6 6 6 -1 )

( -1 6 6 6 6 6 6 0 ) )

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.

(5)

Inteligência Artificial

Projecto 1

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 3 4 5 6 7 8

1

2

Figura 10 – 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.

E

XPERIÊ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 0,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 0,2 valor por cada caso. O formato do ficheiro deve ser o seguinte:

(6)

Inteligência Artificial

Projecto 1

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.

0 0 0 0 0 0

5

0 0 0 0 0 1

3

a) jogador 1 joga primeiro

0 0 0 4 0 0

0

0 0 0 0 2 0

0

b) jogador 1 joga primeiro

0 0 0 4 0 6

0

10 0 0 0 2 0

0

c) jogador 1 joga primeiro

0 0 3 4 5 7

0

8 5 0 0 2 0

0

d) jogador 1 joga primeiro

2 1 0 0 0 18

0

8 5 0 2 0 0

0

(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>)

(7)

Inteligência Artificial

Projecto 1

9 5 0 0 8 0

f) jogador 1 joga primeiro

4 4 4 4 4 4

0

4 4 4 4 4 4

0

g) jogador 1 joga primeiro

6 6 6 6 6 6

0

6 6 6 6 6 6

0

h) jogador 1 joga primeiro

G

RUPOS

Os projectos deverão ser realizados em grupos de 2 pessoas, sendo sempre sujeitos a avaliação oral individual.

D

ATAS

Entrega do projecto: 5 de Dezembro de 2005.

D

OCUMENTAÇÃ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

(8)

Inteligência Artificial

Projecto 1

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.

A

VALIAÇÃ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.

Referências

Documentos relacionados

Uma agrofloresta foi implantada tendo espécies arbóreas frutíferas e florestais, plantas de cobertura, espécies adubadeiras, culturas anuais e como espécie-chave

[r]

Em um único afloramento da bacia de Lima Campos foram encontrados três dentes de tu- barão hibodontídeo identificados como Planohybodus sp., além de grande número de escamas

Para a variável CUR, o bode foi superior ao car- neiro no turno da manhã (70 vs. 84), quando as tem- peraturas ambientais foram mais amenas e o macho caprino conseguiu expressar

Por entender certas características do ser humano como desta forma, tal como lemos há pouco, Maquiavel marca a sua posição diante da política e do Estado como situada desde a

Ações para manter o ambiente de trabalho limpo Outras medidas podem ser tomadas para que todos pos- sam ajudar na arrumação e higiene da organização, tais como: •Manter as

RESUMO - O trabalho objetivou avaliar a qualidade das sementes de arroz utilizadas pelos agricultores em cinco municípios (Matupá, Novo Mundo, Nova Guarita, Alta Floresta e Terra

Se os personagens não intervierem com DuBois, provavelmente irão direto ver Karin, que se encontra em companhia de Alfred: ela acaba de se levantar, e Lucille está preparando seus