Representação do Conhecimento e
Raciocínio
José Júlio Alferes
Luís Moniz Pereira
O que é?
• Que dados trata um “agente” inteligente?
– Não são só factos ou tuplos
• Como é que um “agente” sabe aquilo que o
rodeia? Quais as regras do jogo?
– Há que representar esse “conhecimento”
• E que fazer depois com esse conhecimento? Como
tirar conclusões a partir dele? Como raciocinar?
• Repr. do Conhecimento e Raciocínio  IA
Algoritmos e estruturas de Dados  Computação
Para que serve?
• Matéria de Base em Inteligência Artificial
– Planeamento
– Conhecimento Legal
– Diagnóstico Baseado em Modelos
• Sistemas Periciais
• Semantic Web (http://www.w3.org)
– Web de Conhecimento (http://www.rewerse.com)
Do que trata a disciplina?
• Abordagens lógicas à repr. do conhecimento
• Problemática da repr. do conhecimento
– semântica, expressividade, estruturação, eficácia
•
•
•
•
Formalismos de representação
Formas de raciocínio
Metodologias
Aplicações
Que precisam saber antes?
• Lógica Computacional
• Introdução à Inteligência Artificial
• Programação em Lógica
Bibliografia
• Vai sendo dada à medida que formos
avançando na matéria (artigos, surveys)
• Para a primeira parte da matéria
– Reasoning with Logic Programming, J. J.
Alferes and L. M. Pereira, Springer LNAI,
1996
– Nonmonotonic Reasoning, G. Antoniou, MIT
Press, 1996.
Lógica para KRR
• A Lógica é uma linguagem concebida para
representar conhecimento
• Foi desenvolvida para representar
conhecimento matemático
• O que é apropriado para conhecimento
matemático pode não o ser para
conhecimento de senso comum
Conhecimento matemático vs senso
comum
• Conhecimento completo vs incompleto
– "x:xN→xR
– irTrabalho → usar_carro
• Inferências sólidas vs supletivas
–
–
–
–
–
Face a conhecimento incompleto
Em situações de emergência
Em taxonomias
Em raciocínio legal
...
Monotonicidade da lógica
• A lógica clássica é monotónica
T |= F → T U T’ |= F
• Esta é uma propriedade de base, que faz
todo o sentido para conhecimento
matemático
• Mas não é desejável em representação do
conhecimento!
Lógicas não monotónicas
• Não obedecem àquela propriedade
• Default Logic
– Introduz regras supletivas
• Autoepistemic Logic
– Introduz operadores (modais) que falam sobre
conhecimento e crenças
• Programação em Lógica
Default logic
• Proposta por Ray Reiter (1980)
irTrabalho → usar_carro
• Não admite excepções!
• Regras supletivas
irTrabalho : usar_carro
usar_carro
Mais exemplos
aniversário(X)  amigo (X) : dar_prenda(X)
dar_prenda(X)
amigo(X,Y)  amigo(Y,Z) : amigo(X,Z)
amigo(X,Z)
acusado(X) : inocente(X)
inocente(X)
Sintaxe de Default Logic
• Uma teoria é um par (W,D), onde:
– W é um conjunto de fórmulas de 1ª ordem
– D é um conjunto de regras supletivas da forma:
j : Y1, … ,Yn
g
– j (pré-requisitos), Yi (justificações) e g
(conclusão) são fórmulas de 1ª ordem
Problema da semântica
• Se j é verdade (onde?) e todos os Yi são
consistentes (com o quê?) então g passa a
ser verdade (passa? e antes não era?)
• Conclusões devem:
– ser conjunto fechado
– conter W
– Aplicar regras de D maximamente, sem que
fiquem sem suporte
Extensões de Default
• G(S) é o menor conjunto tal que:
– W  G(S)
– Th(G(S)) = G(S)
– A:Bi/C  D, A  G(S) e Bi  S → C  G(S)
• E é extensão de (W,D) sse E = G(E)
Definição quase-indutiva
• E é extensão sse E = Ui Ei para:
– E0 = W
– Ei+1 = Th(Ei) U {C: A:Bj/C  D, A  Ei, Bj  E}
Algumas propriedades
• (W,D) tem uma extensão inconsistente sse
W é inconsistente
– Se existe extensão inconsistente, então é única
• Se W  Just  Conc é consistente, então só
há uma extensão
• Se E é extensão de (W,D), então também é
extensão de (W  E’,D) para qq E’  E
Semântica Operacional
• O cálculo de uma extensão pode reduzir-se ao
encontrar de uma ordem de aplicação de regras (sem
repetições).
• P = (d1,d2,...) e P[k] é o segmento inicial de P com
k elementos
• In(P) = Th(W  {cons(d) | d  P})
– Conclusões depois de aplicadas as regras em P
• Out(P) = {Y | Y  just(d) e d  P }
– Fórmulas que não podem vir a ser verdadeiras, após
aplicação de regras em P
Semântica operacional (cont)
• d é aplicável em P sse pre(d)  In(P) e Y  In(P)
• P é um processo sse " dk  P, dk é aplicável em
P[k-1]
• Um processo P é:
– sucedido sse In(P) ∩ Out(P) = {}.
• Caso contrário é falhado.
– fechado sse " d  D aplicável em P → d  P
• Teorema: E é extensão sse existe P, sucedido e
fechado, tal que In(P) = E
Cálculo de extensões (Antoniou pág. 39)
extension(W,D,E) :- process(D,[],W,[],_,E,_).
process(D,Pcur,InCur,OutCur,P,In,Out) :getNewDefault(default(A,B,C),D,Pcur),
prove(InCur,[A]),
not prove(InCur,[~B]),
process(D,[default(A,B,C)|Pcur],[C|InCur],[~B|OutCur],P,In,Out).
process(D,P,In,Out,P,In,Out) :closed(D,P,In), successful(In,Out).
closed(D,P,In) :not (getNewDefault(default(A,B,C),D,P),
prove(In,[A]), not prove(In,[~B]) ).
successful(In,Out) :- not ( member(B,Out), member(B,In) ).
getNewDefault(Def,D,P) :- member(Def,D), not member(Def,P).
Teorias normais
• Toda a regra tem justificações igual a conclusão
• Têm sempre extensões
• Se D cresce, então as extensões crescem (semimonotonicidade)
• Não dão para tudo:
– João é recém-licenciado
– Normalmente os recém-licenciados são adultos
– Normalmente os adultos, que não recém-licenciados,
têm emprego (não se codifica com regra normal!)
Problemas
• Não garantia de existência de extensões.
• Deficiências no raciocínio por casos
– D = {italiano:vinho/vinho
– W ={italiano v francês}
francês:vinho/vinho}
• Não garantia de consistência entre justificações.
– D = {:utilizável(X), partido(X)/utilizável(X)}
– W ={partido(esq) v partido(dir)}
• Não cumulatividade
– D = {:p/p, pvq:p/p}
– deriva p v q, mas ao juntar p v q deixa de derivar
Download

Representação do Conhecimento