INF1771 - INTELIGÊNCIA ARTIFICIAL TRABALHO 2 LÓGICA



Documentos relacionados
INF INTELIGÊNCIA ARTIFICIAL TRABALHO 2 LÓGICA

INF INTELIGÊNCIA ARTIFICIAL TRABALHO 1 BUSCA HEURÍSTICA

INF INTELIGÊNCIA ARTIFICIAL TRABALHO 1 BUSCA HEURÍSTICA

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

Planejando o aplicativo

Manual Administrador - Mídia System

Guia Site Empresarial

GUIA BÁSICO DA SALA VIRTUAL

Estacionamento de Caminhão com Lógica Fuzzy. Daniel Ricardo dos Santos Diogo de Campos Maurício Oliveira Haensch

Sistema de Digitalização e Gerenciamento de Arquivos On-Line


Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

INF INTELIGÊNCIA ARTIFICIAL TRABALHO 2 LÓGICA

Especificação do 3º Trabalho

AULA 06 CRIAÇÃO DE USUÁRIOS

Apresentação. Nossa sugestão é que você experimente e não tenha medo de clicar!!!

Cadastro. Seu barco. Pontos. Expedição Oriente Regras

Programa Intel Educar Tutorial: Ferramenta de Classificação Visual

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA

TUTORIAL DO ALUNO. Olá, bem vindo à plataforma de cursos a distância da Uniapae!!!

Portal da Prefeitura de São Paulo SECOM. MANUAL DO WARAM v. 1.5 Secretarias

"Manual de Acesso ao Moodle - Discente" 2014

Forms Composer. Document Producer 1. Document Producer

COMO USAR DOIS MONITORES NO WINDOWS 8

Introdução a Informática. Prof.: Roberto Franciscatto

treinamento executivo de contas PROCEDIMENTOS

Para participar de um mapa colaborativo usando o Cmap Tools

Configurando o Controle dos Pais no Windows Vista

CAPTAÇÃO DE PEDIDOS DO REVENDEDOR

Guia de criação de conta do agente de viagem. Este documento fornece orientações sobre o preenchimento do formulário de registro do ASK Travelport.

Curso: Desenvolvendo Jogos 2d Com C# E Microsoft XNA. Instalar corretamente as ferramentas necessárias para a criação dos jogos

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente

SISTEMA DE ADMINISTRAÇÃO DE LOCAÇÃO IMOBILIÁRIA LISTA DE ATUALIZAÇÕES NOVAS

Manual do Módulo SAC

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Moodle - Tutorial para Professores

Treinamento GVcollege Módulo Acadêmico - Pedagógico

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão Atualização 26/01/2009 Depto de TI - FASUL Página 1

BEM-VINDO AO dhl PROVIEW

Portal do Senac: Área Exclusiva para Alunos Manual de Navegação e Operação

OBI2014 Caderno de Tarefas

Solicitar o seu nome de usuário e senha pela sua ADO

Inicialização Rápida do Novell Vibe Mobile

Manual do PolicyKit-kde. Daniel Nicoletti Tradução: Luiz Fernando Ranghetti

Introdução ao Programa de Informação ao Médico (PIM) Impulsione o seu negócio em 4 passos

Introdução. Servidor de Tempo (SNTP) com opção de horário de verão automático; 1 Cadastro do novo modelo de equipamento Urano Topmax SS

MANUAL PAPELETA MOTORISTA Criado em: 15/02/2013 Atualizado em: 12/11/2014

Relatório Gerencial. Coordenação de Tecnologia da Informação e Comunicação FUNDEPAG 17/01/2013

Cartilha da Nota Fiscal Eletrônica 2.0 Hábil Empresarial PROFISSIONAL & Hábil Enterprise

PORTAL DO ALUNO - MANUAL

Google Drive. Passos. Configurando o Google Drive

Consumidor.gov.br. Usuário: Consumidor

CENTRO UNIVERSITÁRIO CATÓLICA DE SANTA CATARINA PRÓ-REITORIA ACADÊMICA NÚCLEO DE EDUCAÇÃO EM AMBIENTES DIGITAIS NEAD

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo)

Manual Portal Ambipar

A máscara de sub-rede pode ser usada para dividir uma rede existente em "sub-redes". Isso pode ser feito para:

Manual SAGe Versão 1.2 (a partir da versão )

Premiação por Produtividade

Produto: TOTVS Educacional Versão: Processo: Integração TOTVS Educacional x TOTVS Folha de Pagamento (Utilização de Salário composto)

Manual do Almoxarifado SIGA-ADM

Manual de utilização da Ferramenta para disparo de E-mkt

1ª PARTE DIÁRIOS ELETRÔNICOS

SUMÁRIO TUTORIAL DO HQ. 2 DICAS PEDAGÓGICAS:. 2 DOWNLOAD DA INSTALAÇÃO. 2 PASSO 1 FORMULÁRIO PARA DOWNLOAD. 2 PASSO 2 ESCOLHENDO A VERSÃO.

Novas funções ampliam o serviço

MANUAL COTAÇAO WEB MANUAL MANUAL AVANÇO INFORMÁTICA AVANÇO INFORMÁTICA. [Digite seu endereço] [Digite seu telefone] [Digite seu endereço de ]

BEM-VINDO AO dhl PROVIEW GUIA RÁPIDO DE USO

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)

MANUAL DE UTILIZAÇÃO

Bleach Game MANUAL BÁSICO 2014

Construtor de Páginas

Utilizando o correio eletrônico da UFJF com Thunderbird e IMAP

Manual de Utilização COPAMAIL. Zimbra Versão 8.0.2

Manual de Utilização

Curso: Desenvolvendo Jogos 2d Com C# E Microsoft XNA. Mostrar como funciona a programação orientada a objetos

O Primeiro Programa em Visual Studio.net

ALUNES MANUAL DO USUÁRIO. Guia rápido Alunes

WORD. Professor: Leandro Crescencio Colégio Politécnico 1

Processo de Controle das Reposições da loja

O Sistema foi inteiramente desenvolvido em PHP+Javascript com banco de dados em MySQL.

Bem-vindo ao Connect Bank do HSBC. A ferramenta online para a gestão financeira da sua empresa.

INTRODUÇÃO: 1 - Conectando na sua conta

Guia de Início Rápido

Curso de atualização Educação Integral e Integrada. Tutorial Moodle. Belo Horizonte, 2013.

Manual do usuário. Softcall Java. versão 1.0.5

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

NewAgent enterprise-brain

Manual de Publicaça o no Blog da Aça o TRIBOS nas Trilhas da Cidadania

ÍNDICE MANUAL SITE ADMINISTRÁVEL TV. 1. Introdução 2. Acessando o site administrável/webtv SITE ADMINISTRÁVEL 3. CONFIGURAÇÕES

COORDENAÇÃO DE ENSINO A DISTÂNCIA - EaD

SUMÁRIO Acesso ao sistema... 2 Atendente... 3

Manual de Relação de Pontos por Indicação

Como funciona? SUMÁRIO

Como desbloquear pop-ups?

Etapas da criação de uma campanha de marketing

Manual do Usuário Plataforma Online

BANCO DE AULAS E PROJETOS MANUAL DO APLICATIVO

Utilizando a ferramenta de criação de aulas

Transcrição:

INF1771 - INTELIGÊNCIA ARTIFICIAL TRABALHO 2 LÓGICA Descrição: Para tornar-se um Mestre Pokémon é necessário aventurar-se por locais desconhecidos e capturar todos os 150 pokémons que habitam o Continente de Kanto. Para capturar os pokémons você precisa utilizar Pokébolas. Cada pokébola permite capturar apenas um pokémon. Se você ficar sem pokébolas, lembre-se de ir até uma Loja Pokémon para conseguir mais pokébolas. Encontrar e capturar os 150 pokémons não é uma tarefa simples. Alguns pokémons são extremamente raros e difíceis de serem encontrados. Além disso, a qualquer momento você pode ser desafiado por outro treinador para uma batalha pokémon. Após uma batalha pokémon, lembre-se sempre de ir a um Centro Pokémon para recuperar a energia dos seus pokémons. Figura 1. Lista dos 150 pokémons.

O Trabalho 2 consiste em implementar um agente baseado em conhecimento capaz de raciocinar nesse ambiente desconhecido. Você deve implementar uma interface em C/C++ ou Java para representar visualmente esse ambiente e utilizar a linguagem Prolog para representar o conhecimento do agente. O mapa do continente é mostrado na Figura 2. Figura 2. Mapa do continente de Kanto. O continente é formado por 5 tipos de terrenos: grama (região verde), água (região azul), montanha (região marrom), caverna (região cinza) e vulcão (região laranja). Inicialmente o agente pode passar livremente por terrenos de grama, mas somente pode passar pelos outros tipos de terrenos ao capturar determinados tipos de pokémons:

Pokémon de água pode passar livremente pela água; Pokémon elétrico pode passar livremente pela caverna; Pokémon voador pode passar livremente pela montanha; Pokémon de fogo pode passar livremente pelo vulcão; Para saber o tipo de cada um dos 150 pokémons você pode consultar a tabela disponível no seguinte endereço: http://goo.gl/6ifwyl O agente conhece o mapa e o tipo do terreno de cada local, mas ele não conhece inicialmente a localização dos pokémons, centros, lojas e treinadores. O agente deve utilizar seus sensores para explorar o mapa. Informações Adicionais: O mapa deve ser representado por uma matriz 42 x 42 (igual à mostrada na Figura 2). O agente sempre inicia a jornada no laboratório do Professor Carvalho (ponto onde está o personagem no mapa). A aventura termina quando o agente conseguir capturar os 150 pokémons. O agente pode executar as seguintes ações: o Mover para Frente; o Virar a Direita (rotação de 90 ); o Virar a Esquerda (rotação de 90 ); o Usar Pokébola Para usar uma pokébola e capturar o pokémon que estiver no local onde o agente se encontra; o Pegar Pokébolas Para pegar 25 novas pokébolas. A ação somente pode ser executada uma vez dentro de cada loja pokémon; o Recuperar Pokémons Para recuperar a energia dos pokémons. A ação somente poder ser executada dentro de um centro pokémon. Cada ação executada pelo agente possui um custo: o Mover para Frente = -1; o Virar a Direita = -1; o Virar a Esquerda = -1; o Usar Pokébola = -5; o Pegar Pokébolas = -10; o Recuperar Pokémons = -100; o Derrotar um treinador pokémon = +150 o Perder a batalha contra um treinador pokémon = -1000

O agente sempre consegue derrotar os outros treinadores se os seus pokémons estiverem totalmente recuperados. Caso o agente entre em uma batalha com pokémons feridos, ele sempre perderá a batalha. Após uma batalha, os pokémons sempre estarão feridos e devem ser levados o mais rápido possível para um centro pokémon. O agente não tem acesso a nenhuma informação do mapa, mas ele possui alguns sensores para perceber o ambiente. O agente possui os seguintes sensores: o Em locais adjacentes a treinadores pokémon, exceto diagonal, o agente ouve os gritos do treinador desafiando o agente; o Em locais adjacentes a centros pokémon, exceto diagonal, o agente sente o perfume da enfermeira Joy. o Em locais adjacentes a lojas lokémon, exceto diagonal, o agente ouve o vendedor oferecendo pokébolas. o Em locais onde existe um pokémon a pokédex indica a presença e o número/nome do pokémon que está naquele local; O mapa tem a estrutura ilustrada na Figura 2. Mas é desconhecida a localização dos pokémons, centros, lojas e treinadores pokémon. Sabe-se apenas que existem: o 150 pokémons; o 20 centros pokémon; o 15 lojas pokémon; o 50 treinadores pokémon; As posições dos pokémons, centros, lojas e treinadores devem ser sorteadas aleatoriamente no inicio do programa. Mas o agente NÃO PODE ter acesso direto a essas informações. Os pokémons, centros, lojas e treinadores podem estar localizados em qualquer tipo de terreno, mas não pode existir mais de um elemento na mesma posição. Inicialmente o agente possui 25 pokébolas. O jogo acaba quando o agente conseguir capturar os 150 pokémons.

Requisitos: O programa deve ser implementado em C/C++ ou Java utilizando a biblioteca do SWI-Prolog que permite acessar diretamente o Prolog. Também é permitido utilizar outras linguagens, mas antes você deve verificar se ela é compatível com o SWI-Prolog. Exemplos: o C# (http://www.swi-prolog.org/contrib/csharp.html) o Python (http://code.google.com/p/pyswip/) o PHP (http://www.j-paine.org/dobbs/prolog_from_php.html) O Prolog deve ser utilizado somente para representar o conhecimento do agente, a interface visual e demais controles devem ser implementados em C/C++ ou Java. Não é permitido realizar nenhum processo de tomada de decisão em C/C++ ou Java, a decisão de quais ações o agente vai realizar deve ser feita exclusivamente pelo Prolog. Deve existir uma maneira de visualizar os movimentos do agente, mesmo que a interface seja bem simples. Podendo até mesmo ser uma matriz desenhada e atualizada no console. O mapa do planeta deve ser configurável, ou seja, deve ser possível modificar o tipo de terreno em cada local. O mapa pode ser lido de um arquivo de texto ou deve ser facilmente editável no código. O programa deve exibir um log das consultas e inserções realizadas na base de conhecimento Prolog. O programa também deve exibir a pontuação do agente enquanto ele executa as ações. Assim como a pontuação final. O trabalho pode ser feito individualmente ou em grupos de no máximo 3 pessoas. IMPORTANTE: O programa deve ser apresentado durante a aula por todos os membros do grupo: o O membro do grupo que não comparecer receberá nota zero; o Todos os membros do grupo perderam 5.0 pontos se alguém do grupo não souber explicar algo relacionado ao trabalho.

Dicas: Planeje e defina exatamente quais vão ser os predicados necessários no Prolog para codificar o conhecimento que o agente tem do mundo. Exemplos: o em(3, 3). - define a posição atual do agente; o pokemon(10, 6, 25). - identifica que existe um pokémon na posição (10, 6) e esse pokémon é número 25 (Pikachu); o centro_pokemon(10, 13). - identifica que existe um centro pokémon na posição (10, 13); Lembre-se de codificar predicados para identificar locais seguros e também locais visitados. A maneira mais simples de codificar a comunicação entre o Prolog e o C/C++ ou Java é definindo um predicado melhoração no Prolog. Esse predicado deve retornar a melhor ação para ser executada naquele momento. Comece codificando os comportamentos mais simples, como por exemplo: o melhoracao(usar_pokebola(p)) :- em(x,y), pokemon(x, Y, P). A ação andar não necessariamente precisa ser para um local adjacente a posição do agente. Pode ser um andar para outro local (X, Y) ainda não visitado. Nesse caso, você pode executar o A* para calcular o melhor caminho para chegar até a posição (X, Y) passando por locais seguros, mas lembre-se de tomar cuidado com os outros treinadores e aplicar os custos de movimentação. Forma de Avaliação: Será avaliado se: (1) O trabalho atendeu a todos os requisitos especificados anteriormente; (2) Os algoritmos foram implementados e aplicados de forma correta; (3) O código foi devidamente organizado; (4) O trabalho foi apresentado corretamente em sala de aula;

Bônus: (1) O agente que conseguir capturar os 150 pokémons com o menor custo, dado uma determinada configuração de pokémons, receberá 2 pontos extras na nota. Para participar dessa competição é necessário que o programa inclua uma forma simples de definir manualmente a posição dos pokémons, centros, lojas e treinadores. Em caso de empate, ambos os trabalhos receberão a nota extra. Data de Entrega: 04/11 Forma de Entrega: O programa deve ser apresentado na aula do dia 04/11 (segunda) e enviando até o mesmo dia para o email edirlei.slima@gmail.com. Trabalhos entregues atrasados perderam 0.5 pontos para cada dia de atraso.