Title: Racioc
1Raciocínio Não Monotônico e Abdução
- Gustavo Lacerda
- Jacques Robin
- CIn-UFPE
2Agente 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
3Tipologia 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
4Açõ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)
5Açõ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çãoResult(,s)
s. Executar outras seqüências executar a
primeira ação e depois executar o resto na
situação resultanteResult(aseq,s)
Result(seq, Result(a,s)).
6Ações, Situações e Eventos
Cálculo de Situações
- Duas coisinhas a lembrarToda 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
7Açõ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)
8Açõ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) gt Poss(Go(x,y),s).e.g. se
o agente está segurando alguma coisa, ele pode
soltar Holding(g,s) gt Poss(Release(g),s).
9Açõ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) gt
At(Agent,y,Result(Go(x,y),s)).e.g.
Poss(Grab(g),s) gt Holding(g,Result(Grab(g),s))
.
10Ações, Situações e Eventos
Cálculo de Situações
Agora vamos tentar usar um plano no mundo
Wumpusdigamos 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(Agent1,2,Result(Go(1,1,1,2),S0))Ag
ora, precisamos mostrar que é possível o agente
pegar o ouro, ou seja
11Açõ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çãoAt(G1,1,2,R
esult(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.
12Açõ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 SucessorAção é possível gt (fluente é
verdadeiro no estado resultante ? (a ação
tornou o fluente verdadeiro \/ o fluente
já era verdadeiro )
13Os problemas das ramificaçõese da qualificação
- RamificaçãoSe 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çãopara 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)
14Limitaçõ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.
15Cá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
16Cá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.
17Ontologia 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
assimT(President(USA) GeorgeWashington,
AD1790).
18Limitaçõ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.
19Raciocinar 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.
20Raciocinar 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))
21Raciocinar 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!)
22Raciocinar 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.
23Refletir 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).
24Exemplo 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
25Manutençã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
26Manutençã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.
27Circunscriçã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.
28Ló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.
29Abduçã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)
30Abdução exemplo
- A partir de
- Conhecimento prévio causal em intenção
- ?X,Y,T loc(agent,X,Y,T) ? orientation(0,T) ?
do(forward,T) ? loc(wall,X1,Y) ?
loc(agent,X,Y,T1) - 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)
31Aplicaçõ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.
32Formulaçõ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
33Vié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
34Vié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-wetA 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.
35Vié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
36Vié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
37Dedução
38Dedução exemplos
- A partir de
- Conhecimento prévio causal em intenção
- ?X,Y,T loc(agent,X,Y,T) ? orientation(0,T) ?
forward(T) ? ? loc(wall,X1,Y) ?
loc(agent,X1,Y,T1) - 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,X1,Y) ?
loc(wumpus,X-1,Y) ? loc(wumpus,X,Y1) ?
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)).
39Induçã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)
40Induçã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 ? gt,lt,, ?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 Xlt1 ? Xgt4 ? Ylt1 ? Ygt4 ? loc(wall,X,Y)
- Variação
- Conhecimento prévio em intenção
- ?X,Y,H,W Xlt1 ? XgtH ? Ylt1 ? YgtW ? loc(wall,X,Y)