A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "A Assombrosa Caverna do Wumpus Versão Life Ioram Sette."— Transcrição da apresentação:

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

2 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

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

4

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

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

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

8

9 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

10 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

11 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).

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

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

14 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 **

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

16

17 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}.

18 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).

19 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).

20 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).

21 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).

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

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


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

Apresentações semelhantes


Anúncios Google