A Assombrosa Caverna do Wumpus Versão Life Ioram Sette.

Slides:



Advertisements
Apresentações semelhantes
Programação em Java Prof. Maurício Braga
Advertisements

APSOO Aula 05.
POO - Trab2 Por Bernardo, Eduardo e Pablo. Definindo o problema.
Aprendizado por Reforço: Uma Aplicação do Aprendizado Q
Projeto 1.
Introdução à Linguagem Prolog
Fecilcam - 24/setembro/ Modelagem Dinâmica Exercício 01: A Figura abaixo é um diagrama de estados simplificado e parcialmente completo para o controle.
Sistemas Baseados em Agentes
Busca Online Alexandra Barros Geber Ramalho. Busca Offine x Busca Online Busca Offline (ou planejamento clássico) –Computa a solução (do estado inicial.
Bem-vindos ao “Mundo do Wumpus”
Agentes Baseados em Lógica
IMA - Instituto Mineiro de Agropecuária
Lafayette B. Melo – CEFET-PB - COINFO Interface do usuário, linhas de comando e menus Interface do usuário Linhas de comando Menus.
Tipos de Regras Discussão geral
Engenharia de Requisitos Requisito – sistema Caso de uso - usuário
Classes e objetos P. O. O. Prof. Grace.
CURSO DE LINUX EDUCACIONAL
INF 1771 – Inteligência Artificial
Portal 2.0 Como utilizar Data: 03/03/2011.
INF 1771 – Inteligência Artificial
WHITE LABEL SHOPPING CENTER
Processos & Sistemas de Sinistros Novo Orçamento Web
Vetores e Matrizes Laboratório de ICCN Marco Antonio Montebello Júnior
Utilizando recursos especiais do Webnode
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Sistemas Operacionais
Lógica de Programação de Jogos
Entendendo as definições de classe
Introdução e Busca Cega
Plano de Aula Arquiteturas de Agentes Baseados Em Lógica Reativas BDI
Disciplina Inteligência Artificial Defesa de Projeto Período
Focalize o botão do telefone/microfone para acessar os controles: Para colocar a chamada em espera, clique em Chamada Em Espera Clique em Ativar Mudo para.
Agentes Cognitivos Autônomos
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery.
Pilhas Profa. Nádia Félix.
Acessando o WI Após fazer o deploy pelo Tomcat, digite
ÁREA DE TRABALHO DO WINDOWS
Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Orientação a Objetos: herança Professor: Sandro Rigo.
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Classes e Objetos em Java.
Sobre notas no Moodle Notas são pontuações atribuídas às avaliações de atividades dos participantes em um curso do Moodle, que são postadas no boletim,
Experimento... Wumpus Ambientes Arquiteturas
Aula Prática 4 Monitoria IP/CC (~if669).
Manual Sistema Stratec
Aon Affinity Unis: Módulo Pendências – Manual do Usuário.
Ambientes e Arquiteturas de Agentes
Resolução de Problemas de Busca
Aula Prática 3 Funções Monitoria Introdução à Programação.
Solicitar o seu nome de usuário e senha pela sua ADO Envie um para sua ADO (sua organização de custódia) pelo endereço de que você registrou.
Resolução de Problemas Sistemas de Produção Prof. Cláudio M. N. A. Pereira.
SISOR Manual do usuário Versão: 1.0. Índice Alteração de solicitação – MENSAL Alteração de solicitação – EXTRA Aprovação de solicitações.
Manual do usuário Versão: 1.0
AJUDA -SIGA COMO FAZER A INSCRIÇÃO NAS TURMAS?. ESCLARECIMENTOS INICIAIS A INSCRIÇÃO EM DISCIPLINAS SOMENTE É ADMITIDA DENTRO DO PERÍODO PREVISTO NO CALENDÁRIO.
Utilizando subversion como controle de versão
Acesso ao Conteúdo Webcasting
Tipos de Regras Definições Gerais Como representar vários tipos de conhecimento utilizando Regras de Produção? 1.
Array e ArrayList LPOO – 01/09/14.
Fundamentos de Engenharia de SW Diagramas da UML Usados no Projeto de Software.
1º e 2º ano XII Olimpíadas das Cores Emílio Miotti.
PROJETO 2: ALUNOS UFRPE Parte 1. Dividindo para conquistar 1. Interação com o usuário 2. Leitura e escrita em arquivos 3. Regra de negócio para executar.
APRESENTAÇÃO PORTAL CITI CONTA CORRENTE
CIn-UFPE1 Projeto de Objetos de Interface. CIn-UFPE2 Objetivos n A Interface do usuário e a arquitetura em três camadas - camada de apresentação. n Adicionando.
Alocação Dinâmica Dilvan Moreira. Objetivos  Entender o que são e como usar:  Gerenciamento de Memória  Alocação Dinâmica em C.
Web Design: algumas considerações IPCA / EST Abril 2013.
Laboratório de Computação Aula 03 Prof. Fábio Dias
Cotação Eletrônica Orientações para o FORNECEDOR Versão 1.0.
Herança em Java Curso: Informática Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
Módulo II Capítulo 5: Interface Gráfica William Ivanski Curso de Programação C#
Bem-vindo ao PowerPoint 4 dicas para uma forma mais simples de trabalhar.
Unity 3D Inteligência Artificial
Transcrição da apresentação:

A Assombrosa Caverna do Wumpus Versão Life Ioram Sette

Estrutura do Programa * Inicialização da Interface Gráfica * Inicialização do Ambiente * Inicialização das Percepções * Inicialização do Agente * Passo do Agente Subpasso 1 - Atualizar conhecimento com novas percepções Subpasso 2 - Escolher a próxima ação Subpasso 3 - Atualizar o Ambiente segundo a ação Subpasso 4 - Atualizar o Conhecimento Subpasso 5 - Atualizar o Objetivo * Regras do jogo: subpassos 1, 3 e 4 * Estratégia de exploração: subpassos 2 e 5

Inicialização da Interface * Programa dividido em 4 Janelas: Tabuleiro 10x10 onde será construido e exibido o ambiente do jogo. Tabuleiro 10x10 onde será exibido o conhecimento do agente sobre o ambiente Janela de Mensagens indicando o que o usuário deve fazer para usar o programa Janela de informação que dá avisos durante o jogo.

Inicialização do Ambiente * Escolha da posição do Wumpus, Ouro e Buracos, clicando-se sobre as casas da janela de ambiente. * 1 psi-term p/ Ambiente ::env(monstro=>list, ouro=>list, buracos=>list). * monstro, ouro e buracos são listas de coordenadas com as localizações dos mesmos no tabuleiro ::coord(x=>int,y=>int). * Variáveis New_Env e Old_Env p/ passar ambiente entre predicados.

Inicialização das Percepções * 1 psi-term p/ Percepções ::perc(brisa=>list, fedor=>list, brilho=>list). * Botão Iniciar Percepções gera lista das coordenadas onde existirão brisas e fedores (em volta dos buracos e do Wumpus, considerando-se as excessões:cantos) e brilho (na mesma coordenada do ouro). * Variáveis Old_Perc e New_Perc para passar percepções entre predicados.

Inicialização do Agente * Psi-term usado para o Agente e seu conhecimento: ::agent(pos=>coord, obj=>goal, wumpus=>list, morto=>bool, ok=>list, objs=>list, vis=>list, fedor=>list, brisa=>list, pw=>list, nw=>list, pb=>list, nb=>list). goal := {acharouro;acharsaida} * Variável persistente para representar o Agente: persistent(agente)?

Passos * Engloba os 5 subpassos * Pode ser dado todo de uma vez, ou dividido em seus subpassos * Existem 2 variáveis persistentes estado e subestado que indicam o número do passo e do subpasso respectivamente. * O subpasso recebe as variáveis Env, Perc, Acao e retorna New_Env, New_Perc e retorna as variáveis New_Env, New_Perc e New_Acao

Subpasso 1 Agente atualiza seu conhecimento com suas novas percepções * Agente percebe se em sua posição atual existe brisa ou fedor, e descobre se as casas ao seu redor são seguras ou se existem riscos (wumpus? ou buraco?) ** colocar regras que implementam esse raciocínio ** * Remove os riscos do wumpus? E buracos? das casas que ele sabe que estão seguras ** colocar regras disso ** * Tenta descobrir onde está o Wumpus. porque não com os buracos, explica estratégia * Pinta Janela do Agente

Subpasso 2 Escolhendo a Ação * De acordo com seu objetivo, escolhe uma das possíveis acoes: acao := {andar;pegar;atirar;voltar;fim}. * Se o objetivo for achar ouro, as ações podem ser: Pegar, se o agente está numa casa com brilho! Atirar se o agente sabe onde está o Wumpus! Andar, caso contrário. * Se o objetivo for achar saída, ele volta (voltar) até a casa 1,1 e termina o jogo (fim).

Estratégia de Andar e Voltar * Andar sempre em casa seguras, dando preferência às menos visitadas. * Ordem de preferência: Direita, Esquerda, Baixo, Cima. * Voltar sempre em casas já visitadas. * Ordem de preferência: Esquerda, Cima, Direita, Baixo. * Evita girar * Evita também choque nas paredes (explicar como faz)

Subpasso 3 Atualização do Ambiente * Atualizar ambiente nos casos: do Agente matar Wumpus e do Agente pegar o Ouro

Subpasso 4 Atualização do Agente * Caso a ação seja atirar: retirar a flecha dos objetos do agente retirar fedor de suas percepções retirar wumpus! de seu conhecimento. * Caso a ação seja pegar: adicionar ouro aos objetos * Caso a ação seja andar ou voltar: atualizar posição do agente. * ** mostrar código **

Subpasso 5 Atualização do Objetivo * Caso a ação seja pegar, o objetivo será alterado de acharouro para acharsaida.

Hierarquia de Tipos * item := {monstro;ouro;buraco}. * percept := {brisa;brilho;fedor}. e grito, choque na parede? * goal := {acharouro;acharsaida}. * acao := {andar;pegar;atirar;voltar;fim}. * objeto := {ouro;arco;flecha}.

Hierarquia de Classes * ::coord(x=>int, y=>int). * ::env(monstro=>list, ouro=>list, buracos=>list). * ::perc(brisa=>list, fedor=>list, brilho=>list). * ::agent(pos=>coord, obj=>goal, wumpus=>list, morto=>bool, ok=>list, objs=>list, vis=>list, fedor=>list, brisa=>list, pw=>list, nw=>list, pb=>list, nb=>list).

Regras * Preferência a regras que funções. * Não é trivial utilizar-se funções e predicados conjuntamente. * Ex.: Determinar se coordenada contida numa lista de coordenadas: contem(X,[]) :- fail. contem(X,[Y|S]) :- (X.x =:= Y.x, X.y =:= Y.y) ; contem ( X, Y).

Funções * As únicas utilizadas foram as do ambiente gráfico, event_handler e handle_event. * event_handler (Old_Env) -> handle_event1(xGetEvent(wumpuswindow, eventmask=>wumpusmask), Old_Env).

Predicados X Psi-Terms * xmonstro(X,Y). xouro(X,Y). xburaco(X,Y). ::env(monstro=>list, ouro=>list, buracos=>ist). * xcheiro(X,Y), xbrisa(X,Y), xbrilho(X,Y). ::perc(brisa=>list, fedor=>list, brilho=>list). * ouro, monstro, buraco, brilho, cheiro, brisa ::agent(pos=>coord, obj=>goal, wumpus=>list, morto=>bool, ok=>list, objs=>list, vis=>list, fedor=>list, brisa=>list, pw=>list, nw=>list, pb=>list, nb=>list).

Discussões * Assert, Retract X Old_Var, New_Var * Assert, Retract X Persistent(var)? * ** mostra codigo comparando uso de um x o outro ** * + e - de OldVar NewVar x Persistent(var)

Demonstração AoVivo Local: Laboratório C6 Dia: 28/01 Horário: NOW! Estão todos convidados!! :)