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

Slides:



Advertisements
Apresentações semelhantes
Lógica de Predicados e Representação de Conhecimento
Advertisements

Integridade de Dados em Memórias Cache
Planejamento Viviane Torres da Silva
Sistemas especialistas
Amintas engenharia.
Elementos de Lógica Matemática
Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Máquina de.
Elsa Carvalho 163 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Teoria dos Modelos.
Representação do Conhecimento e Raciocínio
Lógica Auto-epistémica
Introdução à Programação Lógica
Representação de Conhecimento na Máquina
BCC 101– Matemática Discreta
Agentes Baseados em Conhecimento
Agentes Baseados em Conhecimento
Programação em lógica e lógica
EQUAÇÕES POLINOMIAIS Prof. Marlon.
SISTEMAS LINEARES II Prof. Marlon.
04(c) 2007 Gustavo Motta1 Introdução ao -calculus Prof. Gustavo Motta Departamento de Informática/UFPB.
SIMULAÇÃO EM COMPUTADOR: O PENSAMENTO COMO PROCESSAMENTO DE INFORMÇÕES
Exame de Qualificação Silvio do Lago Pereira
AXIOMATIZAÇÃO Equipe: André Augusto Kaviatkovski, Daniel Elias Ferreira, Vinicius Zaramella.
A maioria dos fenômenos psicológicos – como o pensamento, a motivação, as emoções, a aprendizagem, a memória, o conhecimento, o raciocínio, a percepção,
DEDUÇÃO NO CÁLCULO PROPOSICIONAL
Indução Métodos de prova já vistos Excepções
Linguagem de 1ª ordem da teoria de conjuntos
RECUPERAÇÃO APÓS FALHA
CIÊNCIA E TECNOLOGIA O Engenheiro deve desenvolver suas atividades com o auxílio da pesquisa científica e desenvolvimento tecnológico. A pesquisa e o.
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
Inteligência Artificial
Conceitos Básicos.
Buscas em Grafos Prof. André Renato 1º Semestre/2012
Lógica Matemática e Computacional
Prof. Roberto Cristóvão
ELABORAÇÃO PROJETO SOCIAL.
1 Introdução aos Agentes Inteligentes Flávia Barros.
Treinamento do Microsoft® Word 2010
Treinamento do Microsoft® Access® 2010
Treinamento: Atendimento, vendas e fechamento.
GEOMETRIA AXIOMÁTICA, SEGMENTOS DE RETA
Algoritmos 1º Semestre Materia: Informática Profº: Cristiano.
Agentes Baseados na Lógica Proposicional
Lógicas e Inferência para IA
Agentes Baseados em Conhecimento
INTRODUÇÃO À ANÁLISE COMBINATÓRIA
Sistemas Especialistas
Seminário PEE Ações Concorrentes no Cálculo Situacional - Flavio Tonidandel Representação em SITCAL (Situation Calculus) s -> situação p -> fluente.
Tópicos Avançados em Inteligência Artificial
André Luiz da Costa Carvalho
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Classes e Objetos em Java.
Protocolos de Janela Deslizante
Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br.
Aula Prática 4 Monitoria IP/CC (~if669).
Inteligência Artificial
Semântica de uma fórmula da lógica da 1a ordem via modelo de Herbrand
PUCC 1 Tópicos em Sistemas Inteligentes. PUCC 2 Agenda - Aula 03 Buscas Agentes que Planejam.
Modelando Sistemas em UML
Agora... Sobre a aula de hoje!!!
Decidibilidade, Corretude, Completude, Consistência
Fundamentos de linguagens de programação
Decidibilidade, Corretude, Completude, Consistência, Monotonicidade
Análise de Mundo Fechado Tratável com Atualizações Autor: Fábio Alves Marques.
Anjolina Grisi de Oliveira
Interpretação do Teorema de Herbrand
David Hume (1711–1776).
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 1 Planejamento Baseado em Lógica André Novaes CIn - UFPE.
Questionário (Básico) Autor: Skyup Informática. Atividade - Questionário O módulo permite criar uma série de questões, que deverão ser respondida pelos.
Conceituação Cognitiva
Sistemas de Produção Jacques Robin CIn-UFPE. Roteiro  Definição de um sistemas de produção  Regras de produção  Inferência com regras de produção 
Transcrição da apresentaçã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 (BCI): regras, classes, formulas lógicas universalmente quantificadas Sensores Não Monotônica Ask Máquina de inferência dedutiva ou abdutiva Tell Ask Retract Base de Conhecimento Extensional (BCE): fatos, objetos formulas lógicas instanciadas Atuadores

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

Ações, Situações e Eventos Cálculo de Situações denota estados resultantes de ações Ontologia: 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)

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

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

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 satisfazem At(G1, [1,1], Result(seq,S0))? (o objetivo sendo que o ouro G1 esteja na posição [1,1])

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

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

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…

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.

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 )

Os problemas das ramificações e 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)

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.

Cálculo situacional x de eventos Regras do Mundo Wumpus 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).  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

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 agente Initiates(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.

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

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.

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.

Raciocinar sobre crenças e conhecimento Seção 10.4 do AIMA Problema 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))

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 temos BLois (Superman = Clark) Então não podemos concluir que BLois(Flies(Clark)) (que bom!)

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

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

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

Manutenção da verdade baseada 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

Manutenção da verdade baseada 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”. Manutenção da verdade baseada em suposição

Circunscrição Versão mais poderosa da hipótese do mundo fechado 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.

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.

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

Abdução: exemplo A partir de: Abduzir: Conhecimento prévio causal em intenção: X,Y,T loc(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)

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.

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

Viés sobre hipóteses abdutivas: objetivos pp. 4-6 de KKT Encontrar conjunto de hipótese mais conciso e mais geral 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

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

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

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.

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

Dedução: exemplos A partir de: Deduzir: A partir de: Deduzir: Conhecimento prévio causal em intenção: X,Y,T loc(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)).

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 Observadas c(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)

Indução: exemplo A partir de: Induzir: Variação: 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)