Representao do Conhecimento e Raciocnio Jos Jlio Alves

  • Slides: 22
Download presentation
Representação do Conhecimento e Raciocínio José Júlio Alves Alferes

Representação do Conhecimento e Raciocínio José Júlio Alves Alferes

O que é? • Que dados trata um “agente” inteligente? – Não só factos

O que é? • Que dados trata um “agente” inteligente? – Nã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

Para que serve? • Matéria de Base em Inteligência Artificial – Planeamento – Conhecimento Legal – Diagnóstico • Sistemas Periciais • Semantic Web (http: //www. w 3. org) – Web de Conhecimento

Do que trata a disciplina? • Abordagens lógicas à repr. do conhecimento • Problemática

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

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)

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

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 de senso comum

Conhecimento matemático vs senso comum • Conhecimento completo vs incompleto – x: x N→x

Conhecimento matemático vs senso comum • Conhecimento completo vs incompleto – x: x N→x R – ir. Trabalho → 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

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

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) ir. Trabalho → usar_carro • Não

Default logic • Proposta por Ray Reiter (1980) ir. Trabalho → usar_carro • Não admite excepções! • Regras supletivas ir. Trabalho : usar_carro

Mais exemplos aniversário(X) amigo (X) : da_prenda(X) amigo(X, Y) amigo(Y, Z) : amigo(X, Z)

Mais exemplos aniversário(X) amigo (X) : da_prenda(X) amigo(X, Y) amigo(Y, Z) : amigo(X, Z) acusado(X) : inocente(X)

Sintaxe de Default Logic • Uma teoria é um par (W, D), onde: –

Sintaxe de Default Logic • Uma teoria é um par (W, D), onde: – W é um conjunto de fórmulas de 1 a ordem – D é um conjunto de regras supletivas da forma: j : Y 1, … , Yn g – j (pré-requisitos), Yi (justificações) e g (conclusão) são fórmulas de 1 a ordem

Problema da semântica • Se j é verdade (onde? ) e todos os Yi

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 suporte

Extensões de Default • G(S) é o menor conjunto tal que: – W G(S)

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: – E

Definição quase-indutiva • E é extensão sse E = Ui Ei para: – E 0 = 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 –

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

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 = (d 1, d 2, . . . ) 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

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 extension(W, D, E) : - process(D, [], W, [], _, E,

Cálculo de extensões extension(W, D, E) : - process(D, [], W, [], _, E, _). process(D, Pcur, In. Cur, Out. Cur, P, In, Out) : get. New. Default(default(A, B, C), D, Pcur), prove(In. Cur, [A]), not prove(In. Cur, [~B]), process(D, [default(A, B, C)|Pcur], [C|In. Cur], [~B|Out. Cur], P, In, Out). process(D, P, In, Out) : closed(D, P, In), successful(In, Out). closed(D, P, In) : not (get. New. Default(default(A, B, C), D, P), prove(In, [A]), not prove(In, [~B]) ). successful(In, Out) : - not ( member(B, Out), member(B, In) ). get. New. Default(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

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

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), partido(dir)} • Não cumulatividade – D = {: p/p, pvq: p/ p} – deriva p v q, mas ao juntar p v q deixa de derivar