450 likes | 513 Views
Agentes Baseados em Lógica. Wumpus. Agente caçador de tesouros. Bem-vindos ao “Mundo do Wumpus”. O Mundo do Wumpus: formulação do problema. Ambiente: agente, Wumpus, cavernas, buracos, ouro Estado inicial: agente na caverna (1,1) com apenas uma flecha
E N D
Wumpus Agente caçador de tesouros Bem-vindos ao “Mundo do Wumpus”
O Mundo do Wumpus: formulação do problema • Ambiente: • agente, Wumpus, cavernas, buracos, ouro • Estado inicial: • agente na caverna (1,1) com apenas uma flecha • Wumpus e buracos em cavernas quaisquer • Objetivos: • pegar a barra de ouro e voltar à caverna (1,1) com vida • Percepções: • fedor, brisa, luz, choque (contra a parede da caverna) e grito do Wumpus • Ações: • avançar para próxima caverna • girar 90 graus à direita ou à esquerda • pegar um objeto na mesma caverna que o agente • atirar na direção para onde o agente está olhando (a flecha pára quando encontra uma parede ou mata o Wumpus) • sair da caverna
4 4 3 3 2 2 ok B? ok A V A B? 1 1 b ok ok ok ok 1 2 3 4 1 2 3 4 Raciocinando e Agindo no Mundo do Wumpus • Conhecimento do agente: (a) no início do jogo, depois de receber sua primeira percepção , e (b) depois do 1o movimento, com a seqüência de percepções [nada,brisa,nada,nada,nada] V - caverna visitada
4 4 B? A B? W! W! 3 3 f b l A 2 2 V V f ok f ok ok ok V V V V B! B! 1 1 b ok b ok ok ok 1 2 3 4 1 2 3 4 Raciocinando e Agindo no Mundo do Wumpus • Estando em (2,2), o agente move-se para (2,3) e encontra o ouro!!!
Mundo de Wumpus • Tipo de ambiente • Acessível ou Inacessível ? • Determinista ou Não-Determinista? • Episódico ou Não-Episódico? • Estático ou Dinâmico ? • Discreto ou Contínuo ? • Tipo de agente? • Agente tabela • Agente reativo • Agente reativo com estado interno (autômato) • Agente cognitivo (baseado em objetivos) • Agente otimizador • Agente adaptativo
Agentes baseado em Lógica • Agentes podem ser formalizados e implementados por Sistemas baseados em conhecimento (aula anterior) • Veremos aqui como formalizar um agente que raciocina com base na Lógica Proposicional • nível do conhecimento • A implementação desse agente pode ser feita com Prolog ou Java+JEOPS, por exemplo
Um Agente-BC para o Mundo do Wumpus • A Base de Conhecimento consiste em: • sentenças representando as percepções do agente • sentenças válidas implicadas a partir das sentenças das percepções • regras utilizadas para implicar novas sentenças a partir das sentenças existentes • Símbolos: • Ax-y significa que “o agente está na caverna (x,y)” • Bx-y significa que “existe um buraco na caverna (x,y)” • Wx-y significa que “o Wumpus está na caverna (x,y)” • Ox-y significa que “o ouro está na caverna (x,y)” • bx-y significa que “existe brisa na caverna (x,y)” • fx-y significa que “existe fedor na caverna (x,y)” • lx-y significa que “existe luz na caverna (x,y)”
4 W 3 A 2 f ok ok V V B! 1 b ok ok 1 2 3 4 Base de Conhecimento para o Mundo do Wumpus • Com base nas percepções do estado abaixo, a BC deverá conter as seguintes sentenças: • Ø f1-1 Ø b1-1 • Ø f2-1 b2-1 • f1-2 Ø b1-2 V - caverna visitada
Base de Conhecimento para o Mundo do Wumpus • O agente também tem algum conhecimento prévio sobre o ambiente, e.g.: • se uma caverna não tem fedor, então o Wumpus não está nessa caverna, nem está em nenhuma caverna adjacente a ela. • O agente terá uma regra para cada caverna no seu ambiente R1: Ø f1-1 Þ Ø W1-1 Ù Ø W1-2 Ù Ø W2-1 R2: Ø f2-1 Þ Ø W1-1 Ù Ø W2-1 Ù Ø W2-2 Ù Ø W3-1 R3: Ø f1-2 Þ Ø W1-1 Ù Ø W1-2 Ù Ø W2-2 Ù Ø W1-3 • O agente também deve saber que, se existe fedor em (1,2), então deve haver um Wumpus em (1,2) ou em alguma caverna adjacente a ela: R4: f1-2 Þ W1-3 Ú W1-2 Ú W2-2 Ú W1-1
Como Encontrar o Wumpus - Inferência! • O Wumpus está em (1,3). Como provar isto? (1) construindo a Tabela-Verdade para a sentença • existem 12 símbolos proposicionais na BC, então a Tabela-Verdade terá 12 colunas. (2) usando regras de inferência!
Lógica Proposicional: Regras de Inferência • a/b diz que a sentença b pode ser derivada de a por inferência. • Modus Ponens: • E-eliminação: • E-introdução: • Ou-introdução: • Eliminação de dupla negação: • Resolução unidade: • Resolução:
Como Encontrar o Wumpus - Inferência! • Inicialmente, vamos mostrar que o Wumpus não está em nenhuma outra caverna, e então concluir, por eliminação, que ele está em (1,3). 1. Aplicando Modus Ponens a Ø f1-1 eR1, obtemos: Ø W1-1 Ù Ø W1-2 Ù Ø W2-1 2. Aplicando E-eliminação a (1), obtemos três sentenças isoladas: Ø W1-1 Ø W1-2 Ø W2-1 3. Aplicando Modus Ponens a Ø f2-1 eR2, e em seguida aplicando E-eliminaçãoobtemos: Ø W1-1 Ø W2-1 Ø W2-2 Ø W3-1 4. Aplicando Modus Ponens a f1-2 eR4, obtemos: W1-3 Ú W1-2 Ú W2-2 Ú W1-1
Como Encontrar o Wumpus - Inferência! 5. Aplicando Resolução Unidade, onde a é W1-3 Ú W1-2 Ú W2-2 e b é W1-1 obtemos (do passo 2, temos Ø W1-1): W1-3 Ú W1-2 Ú W2-2 6. Aplicando Resolução Unidade, onde a é W1-3 Ú W1-2 e b é W2-2 obtemos: W1-3 Ú W1-2 7. Aplicando Resolução Unidade, onde a é W1-3 e b é W1-2 obtemos: W1-3 !!!
Problemas com o Agente Proposicional • Problema: existem proposições demais a considerar • ex.: a regra: “não avance se o Wumpus estiver em frente a você“ só pode ser representada com um conjunto de 64 regras. • serão necessárias milhares de regras para definir um agente eficiente, e o processo de inferência ficará muito lento. • Outro problema: domínios dinâmicos! • Quando o agente faz seu primeiro movimento, a proposição A1-1 torna-se falsa, e A2-1 torna-se verdadeira. • Soluções: • “apagar” A(1,1) - não! => o agente precisa saber onde esteve antes. • usar símbolos diferentes para a localização do agente a cada tempo t => a BC teria que ser “reescrita” a cada tempo t. • Se o agenteexecutar 100 passos, a BC terá 6400 regras apenas para dizer que ele não deve avançar quando o Wumpus estiver em frente a ele.
Agentes que raciocinam com base na lógica de primeira ordem (LPO) • Engajamentos, sintaxe e semântica da LPO • Uso da LPO em agentes baseados em conhecimento • Aplicação ao mundo do Wumpus • Representando mudanças no mundo • Deduzindo propriedades escondidas do mundo
Motivação • LPO: o formalismo de referência para representação de conhecimento, o mais estudado e o melhor formalizado • LPO satisfaz em grande parte os seguintes critérios • adequação representacional ( > L Proposicional) • para representar o mundo (expressividade) • adequação inferencial ( = L Proposicional) • para fazer inferência • eficiência aquisicional ( = L Proposicional) • facilidade de adicionar conhecimento • modularidade ( > L Proposicional) • Embora tenha problemas com • legibilidade e eficiência inferencial
Engajamento ontológico • Engajamento ontológico: • Trata da realidade, uma descrição do mundo • Na Lógica Proposicional, o mundo consiste em fatos. • Na Lógica de Primeira Ordem, o mundo consiste em: • objetos: coisas” com identidade própria • ex. pessoas, casas, Wumpus, caverna, etc. • relações entre esses objetos • ex. irmão-de, tem-cor, parte-de, adjacente, etc. • propriedades, que distinguem esses objetos • ex. vermelho, redondo, fundo, fedorento, etc. • funções: um ou mais objetos se relacionam com um único objeto • ex. dobro, distância, pai_de, etc.
Engajamento ontológico • Além disso, a LPO exprime: • fatos sobre todos objetos do universo () • fatos sobre objetos particulares () • Exemplos: • 1 + 1 = 2 • objetos: 1, 2; relação: =; função: +. • Todas as Cavernas adjacentes ao Wumpus são fedorentas. • objetos: cavernas, Wumpus; propriedade: fedorentas; relação: adjacente. • A LPO não faz engajamentos ontológicos para coisas como tempo, categorias, e eventos. • neutralidade favorece flexibilidade
Engajamento epistemológico • Engajamento epistemológico: • estados do conhecimento (crenças) • A LPO tem o mesmo engajamento epistemológico que a lógica proposicional • tudo é verdadeiro ou falso • Para tratar incerteza • Outras lógicas (de n-valoradas, fuzzy, para-consistente, etc.) • Probabilidade
Agente sensores Tell Base de Conhecimento Máquina de Inferência (Raciocínio) Mecanismo de Aprendizagem - opcional a m b i e n t e Ask Tell efetuadores Agentes Baseados em Conhecimento Dedutivo: Arquitetura • Tell - adiciona novas sentenças à BC • Ask - consulta a BC
Agente baseados em LPO • função Agente-BC(percepção) retorna uma ação Tell(BC, Percepções-Sentença(percepção,t)) ação¬Ask(BC Pergunta-Ação(t)) Tell(BC, Ação-Sentença(ação,t)) t ¬ t + 1 retorna ação • Onde... • funçãoPergunta-Ação cria umaquery tal como: $ a Ação(a,6) • função ASK devolve uma lista de instanciações: {a / Pegar} - Pegar é atribuída à variável ação. • TELL gravar a ação escolhida na BC.
Representação do mundo Representação lógica inicial Representação lógica atualizada Conhecimento de Lógica Mecanismo de inferência LPO em agentes baseados em conhecimento No mundo : A. Pedro possui um cachorro. B. Todo dono de cachorro é um protetor dos animais. C. Nenhum protetor dos animais mata um animal. Na Lógica: A. $x cachorro(x) Ù possui(Pedro,x) B. "x $y cachorro(y) Ù possui(x,y)) Þ protetorAnimais(x) C. "x protetorAnimais(x) Ù"y animal(y) ÞØmata(x,y)
Sistema Formal em LPO Cálculo = Cálculo de Predicados Teoria Teoremas =fatos derivados (axiomas + regras de derivação) Axiomas = fatos+ regras Linguagem = LPO Regras de derivação = regras de inferência Síncronas Diacrônicas sintaxe + semântica causais de diagnóstico BC = fatos e regras básicos (só axiomas!) MT = fatos particulares à instância do problema e fatos derivados Máquina de Inferência = regras de inferência
LPO em agentes baseados em conhecimento • Axiomas = fatos e regras básicos e fatos do problema • exs. Pai(Caetano,Zeca), Mãe(Canô, Caetano) • "(x,z) Avó(x,z) Û $(y) Mãe(x,y) Ù (Mãe(y,z) Ú Pai(y,z)) • Teoremas = fatos derivados • ex. Avó(Canô, Zeca) • Pesquisa = ASK • Quantificador : a resposta é booleana • ASK(BC, Irmã(Betânia,Caetano)) -> true • ASK(BC, x (Irmã(x,Caetano) Ù Cantora(x))) -> false • Quantificador : a resposta é uma lista de instanciações/substituições de variáveis - binding • ASK (BC, $x Irmã(x,Caetano)) -> {x/Betânia,x/Irene} • ASK (BC, $x (Irmã(x,Caetano) Ù Cantora(x))) -> {x/Betânia}
Um Agente LPO para o Mundo do Wumpus • Interface entre o agente e o ambiente: • sentença de percepções, que inclui as percepções e o tempo (passo) em que elas ocorreram, e.g.: • Percepção ([Fedor, Brisa, Luz, nada, nada], 6) • Ações do agente: • Girar(Direita), Girar(Esquerda), Avançar, Atirar, Pegar, Soltar e Sair das cavernas • Três arquiteturas de Agentes baseados em LPO: • Agente reativo • Agente com Modelo do Mundo • Agente baseado em Objetivo
Agente reativo baseado em LPO • Possui regras ligando conjuntos de percepções às ações • Essas regras assemelham-se a reações, " f,b,c,g,t Percepção([f,b,Luz,c,g], t) Þ Ação(Pegar, t) • Essas regras dividem-se entre • Regras de (interpretação) da percepção " b,l,c,g,t Percepção([Fedor,b,l,c,g], t) Þ Fedor (t) " f,l,c,g,t Percepção([f,Brisa,l,c,g], t) Þ Brisa (t) " f,b,c,g,t Percepção([f,b,Luz,c,g], t) Þ Junto-do-Ouro (t) . . . • Regras de ação: " t Junto-do-Ouro (t)Þ Ação(Pegar, t)
Limitações do agente reativo • um agente ótimo deveria: • recuperar o ouro ou • determinar que é muito perigoso pegar o ouro e • em qualquer dos casos acima, voltar para (1,1) e sair da caverna. • Um agente reativo nunca sabe quando sair, • estar com o ouro e estar na caverna (1,1) não fazem parte da sua percepção (se pegou, esqueceu). • esses agentes podem entrar em laços infinitos. • Para ter essas informações, o agente precisa guardar uma representação do mundo.
Agentes LPO com Modelo do Mundo • Modelo interno do mundo • sentenças sobre o mundo atual, em vez de percepções passadas • “às 4h30 pegou o ouro” ===> “está com o ouro” • as sentenças serão atualizadas quando o agente receber novas percepções e realizar ações • ex. chaves no bolso, pegou o ouro,..
Representando Mudanças no Mundo: abordagens • “Como representar as mudanças realmente? • O agente foi de (1,1) para (1,2) • “Apagar” da BC sentenças que já não são verdade • ruim: perdemos o conhecimento sobre o passado, o que impossibilita previsões de diferentes futuros. • Cada estado é representado por uma BC diferente: • ruim: pode explorar situações hipotéticas, porém não pode raciocinar sobre mais de uma situação ao mesmo tempo. • ex. “existiam buracos em (1,2) e (3,2)?” • Solução: Cálculo situacional • uma maneira de escrever mudanças no tempo em LPO. • representação de diferentes situações na mesma BC
Cálculo Situacional • O mundo consiste em uma seqüência de situações • situação N ===ação===> situação N+1 • Predicados que mudam com o tempo têm um argumento de situação adicional • Ao invés de Em(Agente,local) teremos (Em(Agente,[1,1],S0) ÙEm(Agente,[1,2],S1)) • Predicados que denotam propriedades que não mudam com o tempo • não necessitam de argumentos de situação • ex. no mundo do Wumpus:Parede(0,1) e Parede(1,0) • Para representar as mudanças no mundo: função Resultado • Resultado (ação,situação N) = situação N+1
Exemplo de cálculo situacional Result(Forward,S0) = S1 Result(Turn(Right),S1) = S2 Result(Forward,S2) = S3
Axiomas estado-sucessor • Descrição completa de como o mundo evolui uma coisa é verdade depoisÛ [uma ação acabou de torná-la verdade Ú ela já era verdade e nenhuma ação a tornou falsa ] • Ex. " a,x,sSegurando(x, Resultado(a,s)) Û [(a = PegarÙ (Presente (x, s) Ù Portável(x)) Ú (Segurando (x,s) Ù (a ¹ Soltar)] • É necessário escrever uma axioma estado-sucessor para cada predicado que pode mudar seu valor no tempo.
Guardando localizações • O agente precisa lembrar por onde andou e o que viu • para poder deduzir onde estão os buracos e o Wumpus, • para garantir uma exploração completa das cavernas • O agente precisa saber: • localização inicial = onde o agente está Em (Agente,[1,1],S0 ) • orientação: a direção do agente (em graus) Orientação (Agente,S0 ) = 0 • localização um passo à frente: função de locais e orientações " x,y PróximaLocalização ([x,y ],0) = [x+1,y ] " x,y PróximaLocalização ([x,y ],90) = [x,y+1 ] " x,y PróximaLocalização ([x,y ],180) = [x-1,y ] " x,y PróximaLocalização ([x,y ],270) = [x,y-1 ]
Guardando localizações • A partir desses axiomas, pode-se deduzir que quadrado está em frente ao agente “ag” que está na localização “l”: " ag,l,s Em (ag,l,s ) ÞlocalizaçãoEmFrente (ag,s) = PróximaLocalização (l,Orientação (ag,s)) • Podemos também definir adjacência: " l1,l2 Adjacente (l1,l2 ) Û $ d l1 = PróximaLocalização (l2,d ) • E detalhes geográficos do mapa: " x,y Parede([x,y]) Û (x =0 Ú x =5 Ú y =0 Ú y =5)
Guardando localizações • Resultado das ações sobre a localização do agente: • Axioma Estado-Sucessor: avançar é a única ação que muda a localização do agente (a menos que haja uma parede) " a,l,ag,s Em(ag,l,Resultado(a,s)) Û [(a = Avançar Ù l = localizaçãoEmFrente(ag,s) ÙØParede(l)) Ú (Em(ag,l,s) Ù a ¹ Avançar)] • Efeito das ações sobre a orientação do agente: • Axioma ES: girar é a única ação que muda a direção do agente " a,d,ag,s Orientação(ag,Resultado(a,s)) = d Û [(a = Girar(Direita) Ù d = Mod(Orientação(ag,s) - 90, 360) Ú (a = Girar(Esquerda) Ù d = Mod(Orientação(ag,s) + 90, 360) Ú (Orientação(ag,s) = d ÙØ (a = Girar(Direita) Ù a = Girar(Esquerda))]
Deduzindo Propriedades do Mundo • Agora que o agente sabe onde está, ele pode associar propriedades aos locais: "l,sEm (Agente,l,s) ÙBrisa(s) ÞVentilado(l) "l,s Em (Agente,l,s) ÙFedor(s) ÞFedorento(l) • Sabendo isto o agente pode deduzir: • onde estão os buracos e o Wumpus, e • quais são as cavernas seguras (predicado OK). • Os predicados Ventilado e Fedorento não necessitam do argumento de situação
Tipos de regras • Regras diacrônicas (do grego “através do tempo”) • descrevem como o mundo evolui (muda ou não) com o tempo " x,s Presente(x,s) Ù Portável(x) Þ Segurando(x,Resultado(Pegar,s)) • Regras Síncronas: • relacionam propriedades na mesma situação (tempo). " o,s Em(Agente,l,s) Ù Brisa(s) Þ Ventilado(l) • axiomas que possibilitam deduzir propriedades escondidas no mundo • Existem dois tipos principais de regras síncronas: • Regras Causais • Regras de Diagnóstico
Modularidade das Regras • As regras que definimos até agora não são modulares: • mudanças nas crenças do agente sobre algum aspecto do mundo requerem mudanças nas regras que lidam com outros aspectos que não mudaram. • Para tornar essas regras mais modulares, separamos fatos sobre ações de fatos sobre objetivos: • assim, o agente pode ser “reprogramado” mudando-se o seu objetivo. • Ações descrevem como alcançar resultados. • Objetivos descrevem a adequação (desirability) de estados resultado, não importando como foram alcançados. • Descrevemos a adequação das regras e deixamos que a máquina de inferência escolha a ação mais adequada.
Modularidade: Adequação das Regras • Escala, em ordem decrescente de adequação: • ações podem ser: ótimas, boas, médias, arriscadas e mortais. • O agente escolhe a mais adequada "a,s Ótima(a,s) ÞAção(a,s) "a,s Boa(a,s) Ù (Ø $b Ótima(b,s)) ÞAção(a,s) "a,s Média(a,s) Ù (Ø $b (Ótima(b,s) Ú Boa(b,s) )) ÞAção(a,s) " a,s Arriscada(a,s) Ù (Ø $b (Ótima(b,s) Ú Boa(b,s) Ú Média(a,s) )) ÞAção(a,s) • Essas regras são gerais, podem ser usadas em situações diferentes: • uma ação arriscada na situação S0 (onde o Wumpus está vivo) pode ser ótima na situação S2, quando o Wumpus já está morto.
Sistema de Ação-Valor • sistema de ação-valor: Um sistema baseados em regras de adequação • Não se refere ao que a ação faz, mas a quão desejável ela é. • Prioridades do agente até encontrar o ouro: • ações ótimas: pegar o ouro quando ele é encontrado, e sair das cavernas. • ações boas: mover-se para uma caverna que está OK e ainda não foi visitada. • ações médias: mover-se para uma caverna que está OK e já foi visitada. • ações arriscadas:mover-se para uma caverna que não se sabe com certeza que não é mortal, mas também não é OK • ações mortais: mover-se para cavernas que sabidamente contêm buracos ou o Wumpus vivo.
Agentes Baseados em Objetivos • O conjunto de ações-valores é suficiente para prescrever uma boa estratégia de exploração inteligente das cavernas. • quando houver uma seqüência segura de ações , ele acha o ouro • Porém... isso é tudo o que um agente baseado em LPO pode fazer. • Depois de encontrar o ouro, a estratégia deve mudar... • novo objetivo: estar na caverna (1,1) e sair. " s Segurando(Ouro,s) Þ LocalObjetivo ([1,1],s) • A presença de um objetivo explícito permite que o agente encontre uma seqüência de ações que alcançam esse objetivo.
Como encontrar seqüências de ações (1) Busca: • Usar Busca pela Melhor Escolha para encontrar um caminho até o objetivo. • Nem sempre é fácil traduzir conhecimento em um conjunto de operadores, e representar o problema (ambiente) em estados para poder aplicar o algoritmo. (2) Inferência: • idéia: escrever axiomas que perguntam à BC uma seqüência de ações que com certeza alcança o objetivo. • Porém: para um mundo mais complexo isto se torna muito caro. • como distinguir entre boas soluções e soluções mais dispendiosas (onde o agente anda “à toa” pelas cavernas)?
ficar rico e feliz pegar o ouro sair das cavernas ações e conseqüências ações e conseqüências ações e conseqüências ações e conseqüências Agentes Baseados em Objetivos (3) Planejamento: • envolve o uso de um sistema de raciocínio dedicado, projetado para raciocinar sobre ações e conseqüências para objetivos diferentes.