220 likes | 306 Views
Representação do Conhecimento e Raciocínio. José Júlio Alves Alferes. 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 N D
Representação do Conhecimento e Raciocínio José Júlio Alves Alferes
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 • Sistemas Periciais • Semantic Web (http://www.w3.org) • Web de Conhecimento
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 • Linguagem concebida para representar conhecimento • Desenvolvida para representar conhecimento matemático • O que é apropriado para conhecimento matemático pode não o ser para conhecimento desenso 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) : da_prenda(X) da_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 1a 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 1a 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 duma extensão pode reduzir-se ao encontrar duma 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) | dP}) • Conclusões depois de aplicadas as regras em P • Out(P) = {Y | Y just(d) e dP } • 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 dkP, 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→dP • Teorema: E é extensão sse existe P, sucedido e fechado, tal que In(P) = E
Cálculo de extensões 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 (semi-monotonicidade) • 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 francês:vinho/vinho} • W ={italiano v francês} • Não garantia de consistência entre justificações. • D = {:utilizável(X), partido(X)/utilizável(X)} • W ={partido(esq),partido(dir)} • Não cumulatividade • D = {:p/p, pvq:p/p} • deriva p v q, mas ao juntar p v q deixa de derivar