• Nenhum resultado encontrado

Inferência em Lógica de Primeira Ordem. Capítulo 9

N/A
N/A
Protected

Academic year: 2021

Share "Inferência em Lógica de Primeira Ordem. Capítulo 9"

Copied!
56
0
0

Texto

(1)

Inferência em

Lógica de Primeira Ordem

(2)

Sumário

• Inferência em lógica proposicional vs.

inferência em lógica de primeira ordem

• Unificação

• Modus Ponens Generalizado

• Encadeamento para a frente

• Encadeamento para trás

(3)

Instanciação Universal

• A partir de uma frase com um quantificador universal, podemos inferir uma frase que resulta da substituição da variável por um termo sem variáveis

v α

Subst({v/g}, α)

• E.g., x Rei(x)  Ambicioso(x)  Malvado(x) permite inferir:

Rei(João)  Ambicioso(João)  Malvado(João)

Rei(Ricardo)  Ambicioso(Ricardo)  Malvado(Ricardo)

Rei(Pai(João))  Ambicioso(Pai(João))  Malvado(Pai(João))

. . .

(4)

Instanciação Existencial

• Para uma frase α, uma variável v, e uma constante k

que

não

aparece em nenhuma frase da base de

conhecimento

v α

Subst({v/k}, α)

• E.g., A partir de x ECoroa(x)  NaCabeca(x,João)

podemos inferir ECoroa(C

1

)  NaCabeca(C

1

,João

)

desde que C

1

seja um símbolo de constante novo,

chamado

constante de Skolem

• A frase que contém o quantificador existencial pode ser

eliminada  equivalência por inferência

(5)

Redução para inferência

proposicional

Consideremos que a BC contém as seguintes frases:

x Rei(x)  Ambicioso(x)  Malvado(x) Rei(João)

Ambicioso(João)

Irmãos(Ricardo,João)

• Instanciando a frase com  de todas as formas possíveis, obtemos:

Rei(João)  Ambicioso(João)  Malvado(João)

Rei(Ricardo)  Ambicioso(Ricardo)  Malvado(Ricardo) Rei(João)

Ambicioso(João)

Irmãos(Ricardo,João)

• A BC está proposicionalizada, ou seja, contém apenas símbolos

proposicionais:

(6)

Redução (cont.)

• Todas as BC em LPO podem ser proposicionalizadas de

modo a preservar as consequências lógicas

• Uma termo sem variáveis é consequência da nova BC

sse é consequência lógica da BC original

• Ideia: proposicionalizar BC e frase que é consequência

lógica – aplicar resolução para fazer a prova

• Problema:

para símbolos de função o número de termos

sem variáveis é infinito

(7)

Redução (cont.)

Teorema [Herbrand,1930] Se uma frase α é consequência lógica de uma BC em LPO, então α é consequência lógica de um

subconjunto finito da BC proposicionalizada Ideia: Para n = 0  ∞

criar uma BC proposicional instanciando termos até à profundidade n verificar se α é consequência lógica da BC

Problema: funciona se α é efectivamente consequência lógica, não termina se α não é consequência lógica

Teorema [Turing,1936][Church,1936] Consequências lógicas em LPO são semi-decidíveis, i.e. existem algoritmos que identificam

consequências lógicas, mas não existem algoritmos que identifiquem frases que não são consequências lógicas

(8)

P

roposicionalização:

problemas

• Proposicionalização pode gerar muitas frases irrelevantes • E.g., a partir de:

x Rei(x)  Ambicioso(x)  Malvado(x) Rei(João)

y Ambicioso(y)

Irmãos(Ricardo,João)

• Parece óbvio inferir Malvado(João), mas a proposicionalização

produz outros factos como Ambicioso(Ricardo) que são irrelevantes • Para p predicados com aridade k e n constantes, existem p·nk

(9)

Unificação

x Rei(x)  Ambicioso(x)  Malvado(x)

• Se conseguimos encontrar uma substituição θ para x para a qual se verifica Rei(x) e Ambicioso(x) então podemos inferir Malvado(x)

• Genericamente: se conseguirmos encontrar uma substituição θ que converta a premissa de uma implicação numa frase já existente na BC, então podemos derivar a conclusão da implicação após

efectuada a substituição θ Exº

• x Rei(x)  Ambicioso(x)  Malvado(x) • Rei(João)

• y Ambicioso(y)

θ = {x/João,y/João} permite inferir Malvado(João)

• Unificação = identificação de uma substituição que permita que duas frases sejam logicamente equivalentes

(10)

Unificação: exemplo

• Unificação(α,β) = θ se αθ = βθ α β θ Conhece(João,x) Conhece(João,Rita) Conhece(João,x) Conhece(y,Isabel) Conhece(João,x) Conhece(y,Mãe(y)) Conhece(João,x) Conhece(x,Isabel)

(11)

Unificação: exemplo

• Unificação(α,β) = θ se αθ = βθ

α β θ

Conhece(João,x) Conhece(João,Rita) {x/Rita}

Conhece(João,x) Conhece(y,Isabel) Conhece(João,x) Conhece(y,Mãe(y)) Conhece(João,x) Conhece(x,Isabel)

(12)

Unificação: exemplo

• Unificação(α,β) = θ se αθ = βθ

α β θ

Conhece(João,x) Conhece(João,Rita) {x/Rita}

Conhece(João,x) Conhece(y,Isabel) {x/Isabel,y/João}

Conhece(João,x) Conhece(y,Mãe(y)) Conhece(João,x) Conhece(x,Isabel)

(13)

Unificação: exemplo

• Unificação(α,β) = θ se αθ = βθ

α β θ

Conhece(João,x) Conhece(João,Rita) {x/Rita}

Conhece(João,x) Conhece(y,Isabel) {x/Isabel,y/João}

Conhece(João,x) Conhece(y,Mãe(y)) {y/João,x/Mãe(João)}

(14)

Unificação: exemplo

• Unificação(α,β) = θ se αθ = βθ

α β θ

Conhece(João,x) Conhece(João,Rita) {x/Rita}

Conhece(João,x) Conhece(y,Isabel) {x/Isabel,y/João}

Conhece(João,x) Conhece(y,Mãe(y)) {y/João,x/Mãe(João)}

(15)

Estandardização

• Conhece(João,x) e Conhece(x,Isabel) poderão ser

unificados se substituirmos x por outra variável

• Esta unificação faz sentido

– Conhece(João,x) significa que o João conhece toda a gente

– Conhece(x,Isabel) significa que a Isabel é conhecida por toda a gente

– Logo, o João conhece a Isabel

• Estandardização = renomeação de variáveis numa das

duas frases a serem unificadas para evitar conflitos nos

nomes das variáveis

• Conhece(João,x) e Conhece(y,Isabel) pode ser

unificado com {x/Isabel,y/João}

(16)

Unificação: UMG

• Para unificar Conhece(João,x) e Conhece(y,z),

θ = {y/João, x/z } ou θ = {y/João, x/João, z/João}

• A primeira substituição é

mais genérica

do que

a segunda.

• Existe um único

unificador mais geral

(UMG):

efectua o menor número de substituições para

unificar dois termos

(17)

Algoritmo de Unificação

Função

Unifica(x,y,

) devolve

uma substituição que unifica x e y

(x e y são variáveis, constantes, compostos ou listas,

inicialmente vazio)

se

=falha então devolve falha

senão se x=y então devolve

senão se

Variável?(x) então devolve UnificaVar(x,y,

)

senão se

Variável?(y) então devolve UnificaVar(y,x,

)

senão se

Composto?(x) e Composto?(y) então

devolve

Unifica(Args[x],Args[y],Unifica(Op[x],Op[y],

))

senão se

Lista?(x) e Lista?(y) então

devolve

Unifica(Rest[x],Rest[y],Unifica(First[x],First[y],

))

senão devolve falha

(18)

Algoritmo de Unificação

Função

UnificaVar(var,x,

) devolve

uma substuição

(x é uma expressão)

se {var/val}

 

então devolve

Unifica(val,x,

)

senão se {x/val}

 

então devolve

Unifica(var,val,

)

senão se

VerificaOcorrencia?(var,x) então devolve falha

senão

adiciona {var/x} a

VerificaOcorrencia?(var,x) verifica se var ocorre na expressão x  Complexidade do algoritmo é quadrática na dimensão das expressões que pretendemos unificar

(19)

Modus Ponens Generalizado

(MPG)

p1', p2', … , pn', ( p1  p2  …  pn  q) qθ p1' é Rei(João) p1 é Rei(x) p2' é Ambicioso(y) p2 é Ambicioso(x) θ é {x/João,y/João} q é Malvado(x) q θ é Malvado(João)

• MPG usado com BC com cláusulas que têm exactamente um literal positivo: (p1  p2  …  pn  q) equivale a (p1  p2  …  pn  q)

• Todas as variáveis estão quantificadas universalmente

(20)

Solidez de MPG

É preciso provar que

p

1

', …, p

n

', (p

1

 …  p

n

 q) ╞ qθ

quando temos p

i

'θ = p

i

θ para todo o i

Lema: Para qualquer frase p, temos p ╞ pθ pela

instanciação universal

1. (p1  …  pn  q) ╞ (p1  …  pn  q)θ = (p1θ  …  pnθ  qθ) 2. p1', … ,pn' ╞ p1'  …  pn' ╞ p1'θ  …  pn

(21)

Exemplo: base de conhecimento

• Do ponto de vista legal, um Americano é um criminoso

por vender armas a nações hostis. O país Nono, um

inimigo da América, possui alguns mísseis, e todos

estes mísseis foram-lhe vendidos pelo Coronel West,

que é Americano.

(22)

Exemplo: base de

conhecimento (cont.)

... um Americano é um criminoso por vender armas a nações hostis:

Americano(x) Arma(y) Vende(x,y,z) Hostil(z) Criminoso(x)

Nono … possui alguns mísseis, i.e., x Possui(Nono,x)  Míssil(x):

Possui(Nono,M1) e Missil(M1) [instanciação existencial]

… todos os mísseis foram-lhe vendidos pelo Coronel West

Missil(x) Possui(Nono,x) Vende(West,x,Nono)

Mísseis são armas:

Missil(x) Arma(x)

Um inimigo da América é considerado “hostil”:

Inimigo(x,America) Hostil(x)

West é Americano …

Americano(West)

O país Nono é um inimigo da América …

(23)

Encadeamento progressivo:

algoritmo

Função EP-LPO-Pergunta(BC,) devolve uma substuição ou falso

(var.local) novo conjº de frases inferidas em cada iteração repetir até novo ser vazio

novo  { } paracada frase r na BC (p1  …  pn  q)  estandardização(r) paracada  t.q. (p1  …  pn  q) = (p1‘ …  pn‘  q) para algum p1‘, …, pn‘ na BC q’  q

se q’ não é uma renomeação de uma frase na BC ou em novo então adicionar q’ a novo

  Unifica(q’,)

se  não é falha então devolve  adiciona novo à BC

devolve falso

(24)

Encadeamento progressivo: prova

(25)
(26)
(27)

Propriedades do

encadeamento progressivo

• Sólido e completo para cláusulas na forma (p

1

 p

n

 q) em lógica de primeira ordem

• Datalog

= cláusulas na forma (p

1

 …  p

n

 q)

em lógica de primeira ordem +

não há funções

• EP termina para Datalog num número finito de

iterações

• Não termina se α não é consequência lógica

• Não podemos resolver este problema:

(28)

Eficiência do encadeamento

progressivo

Encadeamento progressivo incremental: só é necessário

fazer um emparelhamento de uma frase na iteração k se

uma premissa tiver sido adicionada na iteração k-1

 Emparelhar cada frase cuja premissa contém um novo literal positivo

Emparelhamento pode ser dispendioso:

Bases de dados indexadas

permitem encontrar factos

conhecidos em tempo constante (O(1))

– e.g., pergunta Missil(x) responde Missil(M1)

Encadeamento progressivo é muito usado em

bases de

dados dedutivas

(29)

Emparelhamento: exemplo

Míssil(x)  Possui(Nono,x)  Vende(West,x,Nono)

• Podemos obter os objectos possuídos pelo Nono em

tempo constante, e depois verificar se algum desses

objectos é um míssil

• Se existirem muitos objectos possuídos pelo Nono e

poucos mísseis, então é preferível começar por obter os

mísseis e posteriormente verificar quais são possuídos

pelo Nono

(30)

Emparelhamento difícil: exemplo

• ColoracaoOK() é inferido sse o CSP tem solução

• Dificilmente conseguimos perceber qual a ordem a

seguir para fazer o emparelhamento de menor custo

Diff(wa,nt)  Diff(wa,sa)  Diff(nt,q) Diff(nt,sa)  Diff(q,nsw)  Diff(q,sa) Diff(nsw,v)  Diff(nsw,sa)  Diff(v,sa) ColoracaoOK()

Diff(Verm,Azul) Diff (Verm,Verde) Diff(Verde,Verm) Diff(Verde,Azul) Diff(Azul,Verm) Diff(Azul,Verde)

(31)

Emparelhamento difícil: soluções

• Objectivo: encontrar uma ordenação óptima de

modo a que o custo do emparelhamento seja

minimizado  difícil para problemas

NP-difíceis!

• Solução: uso de heurísticas; e.g. escolher

variável com mais restrições

(32)

Encadeamento regressivo: algoritmo

SUBST(COMPOE(θ1, θ2), p) = SUBST(θ2, SUBST(θ1, p))

Função ER-LPO-Pergunta(BC,objectivos,)

devolve conjunto de substituições

, substituição actual, inicialmente { }

(var.local) resp, conjº de substituições, inicialmente { }

se objectivos está vazio então devolver {} q’  Substitui(,First(objectivos))

paracada r em BC onde estandardização(r) = (p1  …  pn  q)

e   Unifica(q,q’) não falha resp  ER-LPO-Pergunta(BC,[p1,…,pn|Rest(objectivos)],

COMPOE(, ’)) resp

(33)

Encadeamento regressivo:

exemplo

(34)

Encadeamento regressivo:

exemplo

(35)

Encadeamento regressivo:

exemplo

(36)

Encadeamento regressivo:

exemplo

(37)

Encadeamento regressivo:

exemplo

(38)

Encadeamento regressivo:

exemplo

(39)

Encadeamento regressivo:

exemplo

(40)

Propriedades do

encadeamento regressivo

• Prova com procura em profundidade com

recursão: espaço é linear no tamanho da prova

• Incompletude devido a ciclos infinitos

– Podem ser evitados comparando o objectivo actual

com os objectivos na pilha

• Ineficiente devido à existência de sub-objectivos

repetidos (tanto com sucesso como falha)

– Guardar em memória resultados obtidos

anteriormente  memória adicional

(41)

Programação em Lógica: Prolog

• Algoritmo = Lógica + Controlo

• Base: encadeamento regressivo com cláusulas de Horn

Fácil prototipagem, manipulação de símbolos (e.g. compiladores, parsing de língua natural)

• Programa = conjunto de cláusulas = cabeça :- literal1, … literaln.

criminoso(X) :- americano(X), arma(Y), vende(X,Y,Z), hostil(Z).

• Encadeamento regressivo: profundidade, esquerdadireita

• Predicados pré-definidos para aritmética etc., e.g., X is Y*Z+3. • Predicados pré-definidos com efeitos colaterais

• Mundo fechado

– e.g., considerando vivo(X) :- not morto(X). – vivo(joão) é verdade se morto(joao) falha

(42)

Prolog (1)

• Concatenação de duas listas para produzir uma terceira lista: append([],Y,Y). append([A|X],Y,[A|Z]) :- append(X,Y,Z).

• Aparentemente semelhante à definição de Lisp mas com mais funcionalidades

• Questão: append(A,B,[1,2]) ? • Respostas: A=[] B=[1,2]

A=[1] B=[2] A=[1,2] B=[]

(43)

Prolog: append

Procedimento Append(ax,y,az)

caminho  ApontadorGlobalCaminho()

se ax=[] e Unifica(y,az) então continua

ResetCaminho(caminho)

a  NovaVariavel(), x  NovaVariavel(), z  NovaVariavel()

(44)

Prolog(2)

• Definição de caminho entre dois pontos:

path(X,Z): link(X,Z).

path(X,Z): path(X,Y),link(Y,Z).

path(X,Z): link(X,Y),path(Y,Z).

• Ordem é relevante!

descendente(D,A):-progenitor(A,D).

descendente(D,A):-progenitor(P,D),descendente(P,A).

fact(0,1).

fact(N,F):- N>0, N1 is N-1, fact(N1,F1),

F is N*F1.

(45)

Prolog(3)

soma(0,X,X).

% 0+X=X

soma(s(X),Y,Z) :- soma(X,s(Y),Z).

% (X+1)+Y=Z <== X+(Y+1)=Z

?-

soma(s(s(s(0))),s(0),Total).

?-

soma(s(s(0)),s(s(0)),Total).

?-

soma(s(0),s(s(s(0))),Total).

?-

soma(0,s(s(s(s(0)))),Total).

Total=s(s(s(s(0))))

(46)

Resolução em LPO

l

1

 ···  l

k

, m

1

 ···  m

n

(l

1

 ···  l

i-1

 l

i+1

 ···  l

k

 m

1

 ···  m

j-1

 m

j+1

 ···  m

n

com Unifica(l

i

,

m

j

) = θ.

• Aplica-se a fórmulas no formato CNF

• Por exemplo,

Rico(x)  Infeliz(x)

Rico

(João)

Infeliz

(João)

com θ = {x/João}

• Assume-se que as duas cláusulas estão

(47)

CNF para LPO

1. Eliminação de  e 

2. Leis de DeMorgan

3. Estandardização de variáveis

4. Skolemização

5. Eliminação de quantificadores universais

(48)

Skolemização

• Consiste na remoção de quantificadores

existenciais por eliminação

• Caso simples: substituir x P(x) por P(A) em

que A é uma constante de Skolem (constante

nova, nunca usada anteriormente)

• Caso complexo: quando existem quantificadores

encadeados xy P(x,y) substituído por x

P(x,F(x)) em que F é uma função de Skolem

– Caso geral: argumentos da função de Skolem são

todas as variáveis quantificadas universalmente que

aparecem antes do quantificador existencial

(49)

CNF para LPO: exemplo

As pessoas que gostam de todos os animais têm

alguém que gosta delas.

x [y Animal(y)  Gosta(x,y)]

[y Gosta(y,x)]

x [y Animal(y)

Gosta(x,y)]  [y Gosta(y,x)]

x

[y Animal(y)  Gosta(x,y)]  [y Gosta(y,x)]

x [y



Animal(y)  Gosta(x,y)]  [y Gosta(y,x)]

x [y Animal(y)  Gosta(x,y)]  [

y

Gosta(y,x)]

x [

y

Animal(y)  Gosta(x,y)]  [

z

Gosta(z,x)]

x

(Animal(F(x))  Gosta(x,F(x)))  Gosta(G(x),x)

(Animal(F(x))

Gosta(x,F(x)))

Gosta(G(x),x)

Animal(F(x))  Gosta(G(x),x)

Gosta(x,F(x))  Gosta(G(x),x)

(50)

Resolução em LPO: completude

• Resolução binária aplica-se exactamente a 2

literais; não é suficiente para garantir

completude

• Factorização = remoção de literais redundantes

– Em lógica proposicional = remoção de literais

repetidos

– Em lógica de primeira ordem = remoção de literais

unificáveis!

(51)

Resolução: completude por

refutação

• Se um conjunto de frases não tem solução,

então tem de ser possível derivar uma

contradição (cláusula vazia, ()) por resolução

• Ver prova no Livro

(52)

Igualdade

• Nenhum dos métodos de inferência anteriores

lida com igualdade

• Possível solução  adicionar axiomas de

igualdade: reflexiva, simétrica, transitiva,

substituição

x x=x

x,y x=y  y=x

x,y,z x=y  y=z  x=z

x,y x=y  (P(x)P(y))

– …

(53)

Estratégias para Resolução (1)

• Preferência pela cláusula unitária

– Aplicar resolução em que uma das cláusulas é

unitária  nova cláusula com dimensão mais

reduzida

• Conjunto de suporte

– Conjunto de suporte = subconjunto de cláusulas

– Cada resolução combina uma cláusula do conjunto

de suporte com outra cláusula e adiciona a cláusula

resultante ao conjunto de suporte

– Se o conjunto de suporte é pequeno o espaço de

procura pode ficar bastante reduzido

– Exº usar frase negada como conjunto de suporte 

resolução orientada ao objectivo

(54)

Estratégias para Resolução (2)

• Resolução pela entrada

– Cada passo de resolução utiliza uma cláusula

acabada de gerar

– Estratégia completa para cláusulas de Horn mas não

completa para o caso geral

• Eliminação de cláusulas

– Cláusulas eliminadas devido à existência de

cláusulas mais genéricas

– Exº P(A) é redundante vs. P(x)

(55)

Resolução: prova Criminal(West)

Técnica aplicada? Resolução pela entrada

(56)

Provadores de Teoremas

• Usados para dar assistência num processo de

prova

• Podem provar teoremas nunca antes provados

• Usados na verificação e síntese de hardware e

Referências

Documentos relacionados

A CUT reafirma a convocação de uma mobili- zação nacional no dia 7 de abril contra a votação do PL 4330 e orienta seus dirigentes e militantes a alertar os deputados e deputadas

Essa separação também encontraria justificativa na própria concepção da jurisdição, como atividade secundária do Estado. Somente nos casos em que os litigantes não

Toxicidade para órgãos – alvos específicos – exposição repetida: Pode causar dermatite crônica após contato prolongado com a pele (pele vermelha, desidratada e com

• desenvolveu-se uma formula¸c˜ ao matem´ atica comum para os problemas b´ asicos da dinˆ amica de gases rarefeitos (Fluxo de Poiseuille e Creep T´ ermico) para o caso de um g´

Após os ensaios de tração, foram obtidos gráficos de tensão por deformação de engenharia.. 34 Figura 4.8 Gráficos tensão-deformação das amostras sem processamento. Figura 4.9

a) Manter linha na página. No Microsoft Office Word, é possível especificar as configurações de quebra de linha e página. Sobre esse recurso, qual a opção de configuração na

Vale dizer: a eficácia da relação cambial decorrente do endosso não se abala pela operação de fomento mercantil, porque a realização de contrato entre faturizado e

As obras pesadas de engenharia costeira que são implantadas para obviar ao recuo da linha de costa (que, como se referiu, é induzido pela elevação do nível