1 / 40

Raciocínio Não Monotônico e Abdução

Raciocínio Não Monotônico e Abdução. Gustavo Lacerda Jacques Robin CIn-UFPE. Agente baseado em conhecimento dedutivo ou abdutivo. Ambiente. Base de Conhecimento Intencional (BC I ): regras, classes, formulas lógicas universalmente quantificadas. Sensores. Não Monotônica. Ask.

derex
Download Presentation

Raciocínio Não Monotônico e Abdução

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Raciocínio Não Monotônico e Abdução Gustavo Lacerda Jacques Robin CIn-UFPE

  2. Agente baseado em conhecimentodedutivo ou abdutivo Ambiente Base de Conhecimento Intencional (BCI): regras, classes, formulas lógicas universalmente quantificadas Sensores Não Monotônica Ask Máquina de inferência dedutiva ou abdutiva Tell Retract Ask Base de Conhecimento Extensional (BCE): fatos, objetos formulas lógicas instanciadas Atuadores

  3. Tipologia de raciocínio não monotônico • Raciocínio sobre ações e mudanças em ambientes não estacionários • Axiomatização em lógica monotônica de raciocínio não monotônico temporal: • Cálculo situacional • Cálculo de eventos • Revisão não monotônica via retract de base de conhecimento extensional armazenando apenas fatos presentemente verdadeiros • Manutenção da verdade da base de conhecimento depois de um retract • Raciocínio hipotético com informação parcial em ambientes inacessíveis • Negação por falha em programação em lógica • Herança com sobrescrita em hierarquias de classes • Abdução • Revisão das crenças hipotéticas • Causas da necessidade de tal revisão: • Recepção sensorial ou comunicativa de novos fatos confirmados, e que contradiz hipótese default ou abduzida • Tal contradição pode ser direta ou indireta via dedução

  4. Ações, Situações e Eventos Cálculo de Situações denota estados resultantes de açõesOntologia: tudo são termos lógicos * situações: A função Result(a,s) denota a situação que resulta quando a ação a é executada na situação s.* fluentes: funções e predicados que variam de uma situação para outra. e.g. ~Holding(G1, S0) quer dizer que o agente não está com o ouro na situação inicial S0.* predicados eternos: e.g. Gold(G1)(não se escreve a situação)

  5. Ações, Situações e Eventos Cálculo de Situações Além de ações individuais, nós podemos falar sobre seqüências de ações. Executar uma seqüência vazia não muda a situação:Result([],s) = s. Executar outras seqüências: executar a primeira ação e depois executar o resto na situação resultante:Result([a|seq],s) = Result(seq, Result(a,s)).

  6. Ações, Situações e Eventos Cálculo de Situações Duas coisinhas a lembrar:Toda situação, exceto S0, é o resultado de uma ação ou sequência de ações a partir de S0.Na nossa notação, a situação é sempre o último argumento

  7. Ações, Situações e Eventos Cálculo de Situações Projeção: dado um estado inicial e uma seqüência de ações, deduzir o estado final. Planejamento: dado um estado inicial e um estado final desejado, responder a pergunta: “que sequência de ações vai resultar no estado desejado?”.ou seja, quais valores de seq satisfazemAt(G1, [1,1], Result(seq,S0))? (o objetivo sendo que o ouro G1 esteja na posição [1,1])

  8. Ações, Situações e Eventos Cálculo de Situações Axiomas de Possibilidade: que ações são possíveis numa dada situação.e.g. “o agente pode se mover entre locais adjacentes”At(Agent,x,s) /\ Adjacent(x,y) => Poss(Go(x,y),s).e.g. “se o agente está segurando alguma coisa, ele pode soltar” Holding(g,s) => Poss(Release(g),s).

  9. Ações, Situações e Eventos Cálculo de Situações Axiomas de Consequências: quais propriedades (fluentes) vão ser “setadas” como resultado de executar a ação.e.g. Poss(Go(x,y),s) => At(Agent,y,Result(Go(x,y),s)).e.g. Poss(Grab(g),s) => Holding(g,Result(Grab(g),s)).

  10. Ações, Situações e Eventos Cálculo de Situações Agora vamos tentar usar um plano no mundo Wumpus:digamos que o objetivo é pegar o ouro G1, que está em [1,2], com o agente começando em [1,1].A ação Go([1,1],[1,2]) funciona, e podemos dizer que o agente chegou lá:At(Agent[1,2],Result(Go([1,1],[1,2]),S0))Agora, precisamos mostrar que é possível o agente pegar o ouro, ou seja…

  11. Ações, Situações e Eventos Cálculo de Situações • Queremos mostrar que é possível o agente pegar o ouro. • Já sabemos que o agente está em [1,2] • Só resta confirmar que o ouro também está lá…“o ouro está em [1,2] na nova situação”At(G1,[1,2],Result(Go([1,1],[1,2]),S0)) • Infelizmente, nada no nosso KB justifica essa conclusão. • O problema é que os axiomas de consequências dizem o que muda, mas não dizem o que fica igual. • Neste caso, a posição do ouro (antes de pegá-lo) • Este é o famoso frame problem.

  12. Ações, Situações e Eventos Frame Problem: Como representar as coisas que não mudam? Possíveis Soluções: Axiomas de Frame: para cada ação, para cada fluente, nós dizemos se/quando a ação não influencia o fluente.Desvantagem: o número de axiomas vai ser O(AF). Axiomas de Estado Sucessor:Ação é possível => (fluente é verdadeiro no estado resultante (a ação tornou o fluente verdadeiro \/ o fluente já era verdadeiro )

  13. Os problemas das ramificaçõese da qualificação • Ramificação:Se o agente está segurando uma mala, e o agente move, então a mala move com ele.Se dentro da mala tem uma banana, ela também move.E assim por diante...e.g.: em cima da p.333 • Qualificação:para modelar o mundo real, uma regra precisa de muitas condições. Sempre vão existir os casos imprevisíveis, aonde as regras vão estar erradas ou incompletas.e.g.: Se a gosma do Wumpus melar o ouro, a ação “Grab” pode não funcionar. • Exemplificar os dois no Wumpus com lógica (pegar exemplo do AIMA)

  14. Limitações do cálculo situacional • Assume que o agente é o único causador de mudança do mundo • Representa tempo de maneira pontual e não intervalar, indiretamente via situações. • Representa a topologia do tempo, mas não a geometria, ou seja a ordem “antes e depois” é preservada, porém situações não diferenciam entre um intervalo de 1s e de 1 semana. • “Cálculo de Eventos” supera essas limitações.

  15. Situation Calculus At(o,x,S0) ((o = Agent  x = [1,1])  (o = G1  x = [1,2])). Holding(o,SO). Gold(G1)  Adjacent([1,1],[1,2])  Adjacent([1,2],[1,1]). AIMA pp.330-334 Event Calculus T = holds holds(at(Agent,[1,1],T0). holds(at(G1,[1,2],T0). Agent  G1. Initiates(Go(x,y),At(Agent,y),t). Initiates(Grab(g),Holding(g),t).  Cálculo situacional x de eventos Regras do Mundo Wumpus

  16. Cálculo de eventos Ontologia No Cálculo de Eventos, os predicados não são do domínio. Ver abaixo.Eventos Discretos: como ações, mas não precisam ser causadas por um agenteInitiates(e,f,t) indica que o evento e no tempo t causa o fluente f a ser verdade. Terminates(w,f,t) indica que o evento e no tempo t causa o fluente f a não ser verdade. Happens(e,t) indica que o evento e acontece no tempo t. Clipped(f,t,t2) diz que f é terminado por algum evento entre t e t2.

  17. Ontologia do cálculo de eventos • Eventos Líquidos: Eventos que não acontecem imediatamente. E(e,i) quer dizer que um evento tipo e ocorreu dentro do intervalo i. T(e,i) quer dizer que um evento tipo e ocorreu exatamente no intervalo i. • Estados: Além de descrever processos de mudança contínua, eventos líquidos podem descrever processos de constância contínua. T(In(Shankar,NewYork),Today) quer dizer que Shankar passou o dia inteiro em NewYork. • Intervalos: Podemos falar sobre as possíveis relações entre dois intervalos de tempo: Meet, Before, After, During, Overlap. • Fluentes e objetos: O objeto “USA” é um evento que começou em 1776. Sua propriedade “President” é um fluente, que representamos assim:T(President(USA) = GeorgeWashington, AD1790).

  18. Limitações do cálculo de eventos • Eficiência: para cada situação, você calcula o mundo inteiro novamente. Alto custo de memória e de processamento. • Solução: sistemas de planejamento especializados.

  19. Raciocinar sobre crenças e conhecimento • Seção 10.4 do AIMA • Quando o agente raciocina sobre suas ações, ele pode: • usar proposições sobre crenças e proposições, tanto de outros agente quanto dele mesmo. • Ações podem ter precondições e efeitos de conhecimento. • Por exemplo: • a ação “discar o telefone de alguém” tem o conhecimento desse número como precondição; • enquanto que a ação “procurar um número na lista telefônica” tem o efeito de saber o número.

  20. Raciocinar sobre crenças e conhecimento • Seção 10.4 do AIMAProblema ao representar crenças: transparência referencial, ou seja, a gente sempre pode substituir um termo por outro que tenha o mesmo valor. (Superman = Clark) |= Believes(Lois,Flies(Superman))  Believes(Lois, Flies(Clark))

  21. Raciocinar sobre crenças e conhecimento • Uma solução é usar a lógica modal epistêmica / doxástica, que usa operadores referencialmente “opacos”. • Num agente com um mínimo de racionalidade, (K(A  B), K(A))  K(B) • (A, K(A  B)) ou (K(A), A  B) são suficientes para concluir B, mas não para concluir K(B). Nós temos BLois(Flies(Superman)), mas não temosBLois (Superman = Clark) • Então não podemos concluir que BLois(Flies(Clark)) (que bom!)

  22. Raciocinar sobre crenças e conhecimento • Outra solução é usar aspas, com o unique string axiom e uma função de denotação: então temos den(“Superman”) = den(“Clark”) = Objeto4892, enquanto que “Superman”  “Clark”.

  23. Refletir mudanças do ambiente em base de conhecimento instantânea com retract • Codificar atualização do modelo do agente de um ambiente não estacionário usando: • retract(old fact) e tell(new fact), no lugar de tell(new fact, new situation) • Porém, surge o problema da manutenção da verdade • O que foi deduzido a partir do fato retirado, tem que ser por sua vez retirado Executamos uma regra tipo Go(x,y): Com esse tipo de sistema, acontece o seguinte: • tell(At(Agent,y)) • retract(At(Agent,x)) • simultaneamente • Regra de ramificação do ouro andando junto ao agente quando está segurando o ouro permitiu prova a partir de At(Agent,x), Holding(G1). • Precisamos retrair também At(G1,y).

  24. Exemplo do problema da manutenção da verdade no Mundo do Wumpus • Parece ser eficiente em relação ao cálculo de eventos, já que não faz cópia de toda base para cada modificação do ambiente. • Porém pode levar a um processo em cadeia, no qual se desfaz a maioria das deduções passadas. Repô-las pode ter um custo equivalente. • Abordagem ingênua para manutenção de verdade: • retrair tudo o que foi deduzido após a inclusão do fato que foi retraído • recomeçar dedução de tudo que foi deduzido depois desse ponto (via resolução ou encadeamento de regras para frente) • isto é INEFICIENTE

  25. Manutenção da verdadebaseada em justificativa • Abordagem JTMS (Justification-Based Truth Maintenance System): • cada frase na KB é anotada com uma justificação (as frases a partir da qual ela foi inferida) • Quando o Retract é executado, todas as frases que usavam a frase retraída como justificativa são re-avaliadas: se não passarem, elas serão retraídas também, recursivamente... • E tudo o que não é mais justificável vai ser retraído nessa reação em cadeia. • Porém as frases retraídas não são deletadas, pois elas podem voltar a ser consideradas no futuro. Desta maneira a cadeia de inferências é mantida caso a frase volte a ser considerada True. • Vantagem: mais rápido que o sistema ingênuo quando há hipóteses que são consideradas True e False alternadamente. • Limitações: mudança de contexto é ineficiente

  26. Manutenção da verdadebaseada em suposição • Além de permitir a retração de informação incorreta, TMSs em geral podem acelerar a análise de múltiplas hipóteses. Por exemplo, se a cidade das olimpíadas de 2048 mudar de Bucharest para Sibil, a cadeia pode ser re-usada. • Cada frase é rotulada com o conjunto de assunções que a torna verdade. Desta maneira é fácil verificar se uma frase é deduzível ou não: é equivalente a testar “set containment”.

  27. Circunscrição Seção 10.7 do AIMA • Versão mais poderosa da hipótese do mundo fechado Bird(x)  Abnormal(x)  Flies(x) Se Abnormal for circunscrito, um raciocinador circunscritivo pode assumir Abnormal(x) a menos que Abnormal(x)seja sabido. Republican(Nixon)  Quaker(Nixon). Republican(x)  Abnormal2(x)  Pacifist(x). Quaker(x) Abnormal(x)  Pacifist(x). Como o sistema resolve isso? * Dois modelos preferidos: Abnormal1(Nixon) e Abnormal2(x). O sistema fica corretamente indeciso sobre esta frase. * Porém, podemos usar circunscrição priorizada, aonde uma regra é dada mais importância que a outra.

  28. Lógica default Seção 10.7 do AIMA • Usa regras default para gerar conclusões não-monotônicas.Bird(x) : Flies(x)/Flies(x). quer dizer se x é um pássaro, e “x voa” é consistente com a KB, então “x voa” pode ser concluído por default. • Obviamente, a conclusão default estará sujeita a revisão.

  29. Conhecimento • Prévio em Extensão: • Efeitos Observados • e(a), e(b), ... • Causais ObservadasIncompletasco(a), co(b), ... Novo Conhecimento em Extensão: Causas Hipotéticas ca(a), ca(b) ... Abdução Conhecimento Prévio Causal em Intenção X co(X)  ca(X) e(X) Abdução CPCICPECNCEC |= CPEE Viés sobre Hipóteses: X ca(X)

  30. Abdução: exemplo • A partir de: • Conhecimento prévio causal em intenção: • X,Y,Tloc(agent,X,Y,T)  orientation(0,T)  do(forward,T) loc(wall,X+1,Y)loc(agent,X,Y,T+1) • Conhecimento prévio em extensão incompleto de causas: • loc(agent,4,1,1)  orientation(0,1)  do(forward,1) • Conhecimento prévio em extensão de efeitos observados: • loc(agent,4,1,2) • Abduzir: • Novo conhecimento em extensão de causa hipotética: • loc(wall,5,1)

  31. Aplicações práticas da abdução em IA • Tirado de p. 1 e 13-14 de Kakas-Denecker (KD), Seção 1.3 de Kakas-Kowalski-Toni (KKT) • Diagnóstico de Falha (Diagnóstico médico): aqui a teoria descreve o comportamento “normal” do sistema. Quando se tem a observação que o comportamento está anormal, busca-se o componente anormal que explica esse comportamento anormal do sistema. • Visão de Alto Nível:as hipóteses abduzíveis são os objetos a serem reconhecidos, e observações são descrições parciais dos objetos. • Raciocínio Legal: para encontrar casos similares. • Engenharia de Software: para resolver inconsistências em requirementos de sistemas • Constraint Solving Problems: Quebra-cabeças lógicos,N-Queens, problemas de planejamento no mundo dos blocos, etc.

  32. Formulações lógicas da abdução • Seções 1-3 de KD • Seções 1.2-1.3 de KKT • Dada uma teoria conhecida P,uma explicação abdutiva para um query Q é um conjunto  de átomos abduzíveis tal que: • Visão de derivação:(P    Q)  (P   | False)  (P    IC) • Visão de consistência:(P    Q)  (P    IC | False) • Esta escolha vai depender do que você quer fazer

  33. Viés sobre hipóteses abdutivas: objetivos • pp. 4-6 de KKT • Encontrar conjunto de hipótese mais concisoe maisgeral • Encontrar causas explicando os efeitos observados, no lugar de encontrar co-efeitos das mesmas causas sub-jacentes • Encontrar causas mais profundas (básicas), no lugar de causas intermediárias, efeitos dessas causas profundas • Encontrar um número mínimo que causas que expliquem o máximo de observações • Considerar apenas instâncias de um conjunto pré-definido de predicados chamado de abduzíveis. • Geralmente escolhidos dentro dos predicados sem definição intencional na base de conhecimento • Podem ser estratificados em níveis de preferências

  34. Viés sobre hipóteses: predicados abduzíveis • Exemplo: grass-is-wet  rained-last-nightgrass-is-wet sprinkler-was-onshoes-are-wet grass-is-wet • Para a observação shoes-are-wet:A explicação {grass-is-wet} não é básicaenquanto {rained-last-night} e {sprinkler-was-on} são. • A explicação {rained-last-night, sprinkler-was-on} não é mínima.

  35. Viés sobre hipóteses abdutivas: restrições de integridade • Excluir hipóteses que: • Violam diretamente um conjunto pré-definido de restrições de integridades • Cuja inclusão na base de conhecimento permite deduzir fatos que violam uma dessas restrições • Logicamente: • Exemplo: At(Wumpus(x))  At(Wumpus(y)  x = y sprinkler  choveu  false

  36. Viés sobre hipóteses abdutivas: minimização • Excluir conjunto de hipóteses que podem ser explicadas em termos de (i.e., deduzidas a partir de) outras hipóteses igualmente válidas • Exemplo: grassIsWet, quando sabemos sprinkler-was-on • Preferir conjunto de hipóteses com maior número de efeitos observados (corroboração) • Exemplo: formigasDeAsas corrobora chuva e não sprinkler • Preferir conjunto de hipóteses mais geral • Exemplo: • Preferir conjunto de hipóteses mais conciso: quanto menos pre-requisitos, mais plausível é que as hipóteses sejam verdade. • Exemplo:

  37. Conhecimento Prévio Causal em Intenção X c(X) e(X) Conhecimento Prévio Diagnóstico em Intenção X e(X) c(X) Conhecimento Prévio em Extensão: Causas Observadas c(a), c(b), ... Conhecimento Prévio em Extensão: Efeitos Observados e(a), e(b), ... Novo Conhecimento em Extensão: Efeitos Previstos e(a), e(b) ... Dedução CPECCPCI |= NCEE Novo Conhecimento em Extensão: Causas c(a), c(b) ... Dedução CPDICPEE|= NCEC Dedução

  38. A partir de: Conhecimento prévio causal em intenção: X,Y,Tloc(agent,X,Y,T) orientation(0,T)  forward(T)  loc(wall,X+1,Y)loc(agent,X+1,Y,T+1) Conhecimento prévio em extensão de causas observadas: loc(agent,1,1,1)  orientation(0,1) forward(1)  loc(wall,2,1) Deduzir: Novo conhecimento em extensão de efeito previsto: loc(agent,2,1,2). A partir de: Conhecimento prévio diagnóstico em intenção: X,Y,T loc(agent,X,Y,T) smell(stench,T)  smelly(X,Y). X,Y smelly(X,Y) loc(wumpus,X+1,Y)  loc(wumpus,X-1,Y) loc(wumpus,X,Y+1)  loc(wumpus,X,Y-1)). Conhecimento prévio em extensão de efeito observado smell(stench,3) loc(agent,2,2,3) Deduzir: Novo conhecimento em extensão de causa hipotética: loc(wumpus,3,2)  loc(wumpus,1,2) loc(wumpus,2,3)  loc(wumpus,2,1)). Dedução: exemplos

  39. Indução Conhecimento Prévio Causal em Intenção Incompleto X c(X) i(X) • Conhecimento • Prévio em Extensão: • Efeitos Observados • e(a), e(b), ... • Causais Observadasc(a), c(b), ... Novo Conhecimento Causal Hipotético em Intenção X i(X) e(X) Indução CPCINCCICPEC|= CPEE Viés sobre Hipóteses: X,Y i(X)  Y(X)

  40. Indução: exemplo • A partir de: • Conhecimento prévio em extensão: • loc(wall,1,1)  loc(wall,0,1)  loc(wall,1,2)  loc(0,2)  ...loc(wall,4,5)  loc(wall,4,4)  loc(wall,3,5)  loc(wall,3,4)  ... • Viés sobre hipótese: • P1,P2,P3,P4  {>,<,=}, C  {, }, Q1,Q2,Q3  {,}: Q1U1,U2,U3,U4 Q2V1,V2,V3,V4 Q3W P1(U,V1)  P2(U,V2)  P3(U,V3)  P4(U,V4)  loc(W,U,V) • Induzir: • Novo conhecimento em intenção: • X,Y X<1  X>4  Y<1  Y>4  loc(wall,X,Y) • Variação: • Conhecimento prévio em intenção: • X,Y,H,W X<1  X>H  Y<1  Y>W  loc(wall,X,Y)

More Related