66
1 Resolução

1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

Embed Size (px)

Citation preview

Page 1: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

1

Resolução

Page 2: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

2

Equivalências de 1a Ordem

As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes, porém mais simples – Forma Normal Prenex.

Na forma Prenex todos os quantificadores encontram-se no início da fórmula. Veremos uma outra forma normal, na qual elimina-se os quantificadores existenciais – Forma Normal de skolem

Page 3: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

3

Forma Normal Skolem Essa forma elimina os quantificadores

existenciais de uma forma prenex obtendo uma generalização

A eliminação do existencial é obtida pelo seguinte procedimento proposto por Skolem:

Page 4: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

4

Procedimento de Eliminação de Quantificadores Existenciais

Seja uma fórmula na forma normal prenex Q1x1, ..., Qnxn(M), onde M está na forma normal conjuntivae Qr um quantificador existencial no prefixo de Q1x1, ... ,Qnxn, 1 r n.

A eliminação de Qnxn é feita observando-se os quantificadores que o antecedem. Ocorre da seguinte maneira:

Page 5: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

5

Procedimento de Eliminação de Quantificadores Existenciais

Se não existir nenhum quantificador universal anterior a Qrxr no prefixo, faça: escolha uma nova constante c diferente de

qualquer outra que ocorre em M, substitua todos os xr ocorrendo em M por c e elimine Qrxr do prefixo.

senão ...

Page 6: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

6

... senão .., Se Qs1, ... ,Qsm são os quantificadores

universais anteriores a Qr no prefixo, 1 s1 < s2 < ... < sm < r, faça: escolha um novo símbolo funcional m-ário f

diferente de outros símbolos funcionais ocorrendo em M,

substitua todos os xr ocorrendo em M pelo termo f(s1, ... , sm) e

elimine Qrxr do prefixo.

Procedimento de Eliminação de Quantificadores Existenciais

Page 7: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

7

Depois do processo de eliminação (skolemização) ser aplicado a todos os quantificadores existenciais do prefixo, a fórmula obtida está na forma normal de skolem, denotada por skolem().

Procedimento de Eliminação de Quantificadores Existenciais

Page 8: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

8

Exemplo: obter skolem() = xyzu(P(x, y, z, u))

1. x não é precedido de quantificador universal, então:

yzu(P(a, y, z, u))

2. u é precedido por yz, então: yz (P(a, y, z, f(y, z)))

Procedimento de Eliminação de Quantificadores Existenciais

Page 9: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

9

Procedimento de Eliminação de Quantificadores Existenciais

Observe a semântica da função skolem:

Considere o predicado Mãe definido com o seguinte significado:

Mãe(x,y): x é mãe de y

papel do 1o termo: é mãe papel do 2o termo: é filho

Page 10: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

10

Procedimento de Eliminação de Quantificadores Existenciais

Exemplo 1: “Todo mundo tem mãe” significa que “para todo x existe um y que é mãe de x “

= xy(Mãe(y,x))

skolem( = x(Mãe(f(x),x))

a função f expressa que o valor de y: a mãe, depende do valor de x: o filho

Page 11: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

11

Procedimento de Eliminação de Quantificadores Existenciais

Exemplo 2: “Existe alguém que é mãe de todos” =“existe um x que para todo y, x é mãe de y “

= xy(Mãe(x,y))

skolem( = y(Mãe(a,y))

a constante a pode ser = “Nossa Senhora”

Page 12: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

12

Procedimento de Eliminação de Quantificadores Existenciais

Exemplo: obter skolem() = (xyz((~P(x,y) ^ Q(x,z)) v

R(x,y,z))

xyz((~P(x,y) ^ Q(x,z)) v R(x,y,z))xyz((~P(x,y) v R(x,y,z)) ^ (Q(x,z) v R(x,y,z)))xz((~P(x,f(x)) v R(x,f(x),z)) ^ (Q(x,z) v R(x,f(x),z)))x((~P(x,f(x)) v R(x,f(x),g(x)) ^ (Q(x,g(x)) v

R(x,f(x),g(x))))

Page 13: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

13

Forma Normal Skolem Teorema 1: Seja um fórmula de 1a

ordem. Então, é insatisfatível se e somente se skolem() é insatisfatível.

As outras formas normais preservam os modelos das fórmulas originais (são tautologicamente equivalentes)

A forma normal de skolem preserva apenas a condição de insatisfatibilidade da fórmula original.

Page 14: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

14

Forma Normal Skolem Exemplo:

Seja = x(P(x)) então, skolem() = P(a)

Seja I a seguinte interpretação :D = {1, 2}aI = 1PI(1) = FPI(2) = V

Então, I satisfaz , mas não satisfaz skolem().

Page 15: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

15

Representação Clausal de Fórmulas

Def.2 Um literal é uma fórmula atômica (literal positivo) ou a negação de uma fórmula atômica (literal negativo).

Def.3 Uma cláusula é uma disjunção de literais Exemplo: P(x) Q(a) ~R(y)

Page 16: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

16

Representação Clausal de Fórmulas

Por conveniência, uma cláusula pode também ser representada como um conjunto, o conjunto de seus literais.

Exemplo: {P(x), Q(a), ~R(y)}

Page 17: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

17

Representação Clausal de Fórmulas

Def.4 A cláusula vazia é uma cláusula sem literais (conjunto vazio) e é representada por e Representa uma fórmula insatisfatível ( ^ ~).

Qualquer fórmula de 1a ordem pode ser transformada em um conjunto de cláusulas.

Page 18: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

18

Procedimento de Transformação de Fórmulas em Cláusulas

1. Eliminar usando a “lei” a b |=|(a b)^(b a) 2. Eliminar usando a “lei” a b |=| ~ a b 3. Reduzir escopo de ~ usando a “lei” de De Morgan

e outras “leis” 4. Renomear variáveis 5. Skolemizar 6. Converter para a Forma Normal Prenex 7. Converter matriz para a Forma Normal Conjuntiva 8. Eliminar quantificadores universais 9. Eliminar ^ e obter o conjunto de cláusulas

Page 19: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

19

Exemplo:Transformar em cláusula =x(P(x) (y(P(y) P(f(x, y))) ^ ~y(Q(x, y) P(y))))

1. x(~P(x) (y(~P(y) P(f(x, y))) ^ ~y(~Q(x, y) P(y))))2. x(~P(x) (y(~P(y) P(f(x, y))) ^ y(~(~Q(x, y) P(y))))3. x(~P(x) (y(~P(y) P(f(x, y))) ^ y(Q(x, y) ^ ~P(y))))4. x(~P(x) (y(~P(y) P(f(x, y))) ^ w(Q(x, w) ^ ~P(w))))5. x(~P(x) (y(~P(y) P(f(x, y))) ^ (Q(x, g(x)) ^ ~P(g(x)))))6. xy (~P(x) ((~P(y) P(f(x, y)) ) ^ (Q(x, g(x)) ^ ~P(g(x)) )))

8. xy((~P(x) ~P(y) P(f(x, y))) ^ (( ~P(x) Q(x, g(x))) ^ (~P(x) ~P(g(x)))))

9.{ ~P(x) ~P(y) P(f(x, y)), ~P(x) Q(x, g(x)), ~P(x) ~P(g(x)) }

7. xy ( (~P(x) (~P(y) P(f(x, y)))) ^ (~P(x) v (Q(x, g(x)) ^ ~P(g(x)) )))

Page 20: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

20

Exemplo: Transformar em cláusula =x(P(x) (y(P(y) P(f(x, y))) ^ ~y(Q(x, y) P(y))))

A fórmula foi transformada em um conjunto, S, de 3 cláusulas :

S= {~P(x) ~P(y) P(f(x, y)), ~P(x) Q(x, g(x)), ~P(x) ~P(g(x)) }

Page 21: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

21

Exemplo: Fazer a representação clausal de um estado do “Dicionário”

Exemplo: A transformação da fórmula 12 em cláusulas

xyz((depende(x, z) & depende(z, y)) depende(x, y))xyz(~(depende(x, z) & depende(z, y))v depende(x, y))xyz((~depende(x,z) v ~depende(z,y)) v depende(x,y))

S = {~depende(x,z) v ~depende(z,y) v depende(x,y)}

A fórmula 12 foi transformada em um conjunto S de apenas uma cláusula

Page 22: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

22

Exemplo: Fazer a representação clausal de um estado do “Dicionário”

Representação clausal após as transformações: 1. programa(a, fortran) 2. programa(b, pascal) 3. programa(c, fortran) 4. arquivo(d, sequencial) 5. arquivo(e, direto) 6. chama(a, b) 7. chama(a, c) 8. usa(a, d) 9. usa(b, e) Continua...

Um fórmula atômica é uma cláusula.cada fato (dado) do “Dicionário” já estava representado por uma fórmula atômica.

Page 23: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

23

Exemplo: Fazer a representação clausal de um estado do “Dicionário”

Continuação... 10. ~chama(x, y) depende(x, y) 11. ~usa(x, y) depende(x, y) 12. ~depende(x, z) ~depende(z, y) depende(x, y)

cada regra foi transformada em conj. de cláusulas

As três últimas cláusulas também podem ser representadas por conjunto de literais: 10’. ~chama(x, y), depende(x, y)) 11’. ~usa(x, y), depende(x, y) 12’. ~depende(x, z), ~depende(z, y), depende(x, y)

Page 24: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

24

Representação clausal completa: 1. programa(a, fortran) 2. programa(b, pascal) 3. programa(c, fortran) 4. arquivo(d, sequencial) 5. arquivo(e, direto) 6. chama(a, b) 7. chama(a, c) 8. usa(a, d) 9. usa(b, e) 10. ~chama(x, y) depende(x, y) 11. ~usa(x, y) depende(x, y) 12. ~depende(x, z) ~depende(z, y)

depende(x, y)

Exemplo: Fazer a representação clausal de um estado do “Dicionário”

FATOS

REGRAS

Page 25: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

25

Resolução 5.1 O Princípio da Resolução (Lógica

Proposicional)Para quaisquer duas cláusulas C1 e C2, se existe um literal L1 em C1 que seja complementar a um literal L2 em C2, então retire L1 e L2 de C1 e de C2 respectivamente, e construa a disjunção das cláusulas remanescentes. A cláusula assim construída é dita ser um resolvente de C1 e C2.

Page 26: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

26

Resolução Considere as seguintes cláusulas C1 e

C2 abaixo: C1: P R C2: ~P Q

R Q é um resolvente de C1 e C2.

Page 27: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

27

Resolução Teorema 1: Dado duas cláusulas C1 e C2, um

resolvente C de C1 e C2 é conseqüência lógica de C1 e C2.

Def.1 Dado um conjunto S de cláusulas, uma resolução (dedução) de uma cláusula C a partir de S é uma seqüência finita C1, ... ,Ck de cláusulas tal que cada Ci é uma cláusula em S ou um resolvente de cláusulas precedendo Ci, e Ck = C. Uma dedução de a partir de S é chamada uma refutação de S.

Page 28: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

28

Resolução Exemplo: Prove que o conjunto de cláusulas

S é insatisfatível: S = {~P Q, ~Q, P}

1. ~P Q C12. ~Q C23. P C34. Q de 1 e 3, R5. de 4 e 2, R

Page 29: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

29

Unificação Aplicar o Princípio da Resolução implica

em procurar literais complementares.

Para cláusulas sem variáveis é muito simples.

Para cláusulas com variáveis, é necessário fazer substituições para unificar os literais Exemplo:

C1: P(x) Q(x) C2: ~P(f(y)) R(y)

Page 30: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

30

Unificação: Exemplo:C1 (P(x) Q(x)) e C2 (~P(f(y)) R(y))

Aplicando-se as substituições s1 e s2 à C1 e C2, C1: P(x) Q(x) s1 = {x/f(a) } C2: ~P(f(y)) R(y) s2 = {y/a }

Obtém-se C’1 e C’2, C’1: P(f(a)) Q(f(a)) C’2: ~P(f(a)) R(a)

Aplicando-se o princípio da Resolução à C’1 e C’2 obtém-se o resolvente C: C: Q(f(a)) R(a)

Page 31: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

31

Unificação Outras substituições também poderiam ser aplicadas

Exercício: Para s1 = {x/f(f(a))} e s2 = {y/f(a)}, Qual seria o resolvente obtido?Teria outras possíveis substituições?

Uma substituição mais geral seria substituir x por f(y) em C1 e obter-se:

C1*: P(f(y)) Q(f(y))

e um resolvente mais geral C: C: Q(f(y)) R(y)

Page 32: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

32

Unificação A cláusula C é a cláusula mais geral no

sentido de que todas as outras cláusulas que podem ser obtida pelo processo anterior são instâncias de C. Por exemplo, C’ é uma instância de C.

C: Q(f(y)) R(y) C’: Q(f(a)) R(a)

Page 33: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

33

Unificação Def.2 Sejam as substituições

= {x1/t1, ... ,xn/tn } e = { y1/u1, ... , ym/um} a composição de com () é a substituição obtida do conjunto { x1/t1, ... , xn/tn, y1/u1, ... , ym/um} excluindo-se os seguintes elementos:xj/tj para o qual tj = xj e yi/ui tal que yi {x1, ... ,xn}.

Page 34: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

34

Unificação Exemplo: Sejam as substituições

= {t1/x1, t2/x2} = { x/f(y), y /z } = { y1/u1, y2/u2, y3/u3 } = { x/a, y/b, z/y }

() = { x1/t1, x2/t2, y1/u1, y2/u2, y3/u3 }

= { x/f(b), y/y, x/a, y/b, z/y }

= { x/f(b), z/y }

Page 35: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

35

Unificação Def.3 Uma substituição é chamada um

unificador para um conjunto de expressões

{E1, ... ,En} se e somente se E1 = E2 = ... = En.

O conjunto {E1, ... ,En} é dito ser unificável se existe um unificador para ele.

Page 36: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

36

Unificação

Def.4 Um unificador para um conjunto de expressões {E1, ... ,En} é um unificador mais geral (umg) se e somente se para cada unificador para o conjunto, existe uma substituição tal que = .

Page 37: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

37

UnificaçãoExemplo: E = {Q(x), Q(f(y))}

Entre outras possíveis substituições, unifica E = {x/f(a) , y/a} e o umg = {x/f(y)}

Existe uma substituição tal que =

Essa substituição seria: = {y/a} {x/f(a) , y/a} = {x/f(a) , y/a} = {x/f(y)} {y/a} {x/f(a) , y/a} = {x/f(a), y/a}

Para outra substituição = {x/f(f(a)), y/f(a)}, seria {y/f(a)}

Page 38: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

38

Unificação Def.5 Um conjunto de termos D é o

conjunto de discórdia de um conjunto de expressões E = {E1, ... ,En} se e somente se: (i) D = , se n = 1 (ii) D = {t1, ... ,tn}, se n > 1 e todas as

expressões em E são idênticas até o i-ésimo símbolo, exclusive, e t1, ... ,tn são os termos ocorrendo em E1, ... ,En que começam na posição i.

Page 39: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

39

Unificação Exemplo1: Discórdia de E1

E1 = {P(x), P(a)}

Exemplo2: Discórdia de E2 E2 = {P(x, f(y, z)), P(x, a), P(x,

g(h(k(x))))}

D = {x, a}

D = {f(y, z), a, g(h(k(x)))}

Page 40: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

40

Algoritmo de Unificação1. Faça k = 0, Ek = E e sk =

2. Se Ek é um conjunto unitário, pare. sk é um unificador mais geral para E. Caso contrário, encontre o conjunto discórdia Dk de Ek.

3. Se existem vk e tk em Dk tal que vk é uma variável que não ocorre em tk, vá para 4. Caso contrário, pare. E não é unificável.

4. Faça sk+1= sk{ vk/tk } e Ek+1= Ek{ vk/tk }

5. Faça k = k+1 e vá para 2.

Page 41: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

41

Algoritmo de Unificação Exemplo: E = {P(a, x, f(g(y))), P(z, f(z), f(u))}

K= 0 S0 = E0 = {P(a, x, f(g(y))), P(z, f(z), f(u))} D0 = {a, z}. v0 = z e t0 = a.S1 = s0 {v0/t0} = {z/a} = {z/a}E1= E0.{v0/t0} = {P(a, x, f(g(y))), P(a, f(a), f(u))}D1 = {x, f(a)}. v1 = x e t1 = f(a)

K = 1S2 = s1{v1/t1} = {z/a}{x/f(a)} = {z/a, x/f(a)} E2 = E1. { v1/t1} = {P(a, f(a), f(g(y))), P(a, f(a), f(u))}D2 = {g(y), u} v2 = u e t2 = g(y)

K = 2

Page 42: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

42

Algoritmo de Unificação Exemplo: E = {P(a, x, f(g(y))), P(z, f(z), f(u))}

Continuação ...S3 = s2 {v2/t2} = {z/a, x/f(a), u/g(y)} E3 = E2.{v2/t2} = {P(a, f(a), f(g(y))), P(a, f(a), f(u))}.{g(y)/u} =

{P(a, f(a), f(g(y))), P(a, f(a), f(g(y)))} = { P(a, f(a), f(g(y)))}K = 3 Visto E3 ser unitário, S3 é um umg

S3 = {z/a, x/f(a), u/g(y)} para E.

E = {P(a, x, f(g(y))), P(z, f(z), f(u))}

Page 43: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

43

Resolução: Definições

Def.6 Se dois ou mais literais (com o mesmo sinal) de uma única cláusula C tem um unificador mais geral , então C é chamado um fator de C

Page 44: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

44

Resolução: DefiniçõesExemplo: Seja C = P(x) P(f(y)) ~Q(x)

P(x) e P(f(y)) tem um umg = {x/f(y)}

C = P(f(y)) ~Q(f(y)) é um fator de C.

Page 45: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

45

Resolução: Definições Def.7 Sejam C1 e C2 duas cláusulas

sem variáveis comuns. Sejam L1 e L2 literais de C1 e C2, respectivamente. Se L1 e ~L2 tem um unificador mais geral , então a cláusula:(C1 L1) (C2 L2)

é chamada um resolvente binário de C1 e C2.

Page 46: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

46

Resolução: DefiniçõesExemplo:

Sejam C1: P(x) Q(x) (C2 não tem x)C2: ~P(a) R(y) (C1 não tem y)literais L1 = P(x) L2 = ~P(a), então, ~L2 = P(a).

umg de L1 e L2 é = {x/a}

logo, (C1 L1) (C2 L2) = Q(a) R(y) um resolvente binário de C1 e C2.

Page 47: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

47

Resolução: Definições Def.8 Um resolvente de cláusulas C1 e C2

é um dos seguintes resolventes binários:

(i) um resolvente binário de C1 e C2(ii) um resolvente binário de C1 e um fator de C2(iii) um resolvente binário de um fator de C1 e C2(iv) um resolvente binário de um fator de C1 e um fator de C2

Page 48: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

48

Resolução: Definições Exemplo: Sejam

C1 = P(x) P(f(y)) R(g(y))C2 = ~P(f(g(a))) Q(b)

Um fator de C1 é:C1’ = P(f(y)) R(g(y))

Um resolvente binário de C1’ e C2 é: C = R(g(g(a))) Q(b)

Page 49: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

49

Resolução: Definições

Teorema 2: Se C é um resolvente de duas cláusulas C1 e C2 então C é consequência lógica de C1 e C2.

Page 50: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

50

O Sistema Formal da Resolução

Def.9 O Sistema Formal da Resolução R consiste de: (i) Classe de linguagens

Para cada alfabeto de 1a ordem, o conjunto das cláusulas sobre este alfabeto.

(ii) Axiomas Nenhum.

(iii) Regras de Inferência Regra da Resolução definida como:

Se C’ e C’’ são cláusulas e C é um resolvente de C’ e C’’, então derive C de C’ e C’’

Page 51: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

51

O Sistema Formal da Resolução

Observe que a noção de uma dedução (derivação ou prova) em R é formalizada de maneira semelhante à noção de dedução em um sistema formal axiomático, no qual usa-se regras de inferência e axiomas.

Page 52: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

52

O Sistema Formal da Resolução

Teorema 3: Teorema da Correção Para todo conjunto S de cláusulas, se

existe uma refutação a partir de S em R, então S é insatisfatível. “tudo que se deriva é semanticamente correto”

Teorema 4: Teorema da Completude Para todo conjunto S de cláusulas, se S é

insatisfatível, então existe uma refutação a partir de S em R. “se é consequência lógica existe uma derivação”

Page 53: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

53

Exemplos de Aplicações: Banco de Dados

Exemplo 1: Considere o Banco de Dados que segue a seguinte Questão ou Consulta:

Quem é o chefe de João?

gerente(Vendas, José) lotado(João, Vendas) lotado(y, x) & gerente(x, z) chefe(y, z)

FATOS

REGRA

Page 54: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

54

Exemplos de Aplicações: Banco de Dados

Transformando essa descrição para cláusulas e fazendo derivações:1. gerente(Vendas, José)2. lotado(João, Vendas)3. ~lotado(y, x) ~gerente(x, z) chefe(y, z)4. ~lotado(y, Vendas) ~gerente(Vendas, José) chefe(y, José) 5. ~lotado(y, Vendas) chefe(y, José) 1, 3 R6. ~lotado(João, Vendas) chefe(João, José)7. chefe(João, José) 2, 5 R

Page 55: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

55

Exemplos de Aplicações: Banco de Dados

Exemplo 2: A figura que segue representa a maneira que umas caixas estão arrumadas:

CA B

chão

Use a Linguagem da Lógica de 1a Ordem para descrever essa arrumação, ou seja, as caixas que estão no topo, no chão e o que está sobre cada caixa. Uma regra de restrição observada para as caixas que estão no topo é: “as caixas que estão no topo, não têm nenhuma caixa sobre elas”.

Page 56: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

56

Exemplos de Aplicações: Banco de Dados

Descrição da situação:1. chão(A)2. chão(B)3. topo(C)4. sobre(C, A)5. x(topo(x) ~y(sobre(y, x))

Questão: tem algum bloco sobre o bloco C?

FATOS

REGRA

Page 57: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

57

Exemplos de Aplicações: Banco de Dados

Transformando para cláusulas e fazendo derivações:

1. chão(A)2. chão(B)3. topo(C)4. sobre(C, A)5. ~topo(x) ~sobre(y, x)7. ~topo(C) ~sobre(y, C)8. ~sobre(y, C)

Page 58: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

58

Métodos Básicos de Resolução(Refutação)

Método de Resolução por Saturação1. Dado um conjunto finito de cláusulas S,

construa uma sequência S0, S1, ... de conjuntos de cláusulas da forma seguinte:S0 = SSn+1= Sn {C : C é um resolvente de cláusulas em Sn}

2.Pare com SIM quando for gerada.

3.Pare com NÃO quando não houver novos resolventes a derivar.

Page 59: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

59

Métodos Básicos de Resolução(Refutação)

Esse procedimento: sempre pára com SIM quando S for

insatisfatível (método é refutacionalmente completo)

nunca pára quando S for satisfatível e existir um conjunto infinito de resolventes obtidos a partir de S

sempre pára com NÃO quando S for satisfatível mas o conjunto de resolventes obtido a partir de S é finito.

Page 60: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

60

Exemplo: S = {P Q, ~P Q, P ~Q, ~P ~Q}

S0: 1. P Q 2. ~P Q 3. P ~Q 4. ~P ~Q

S1: 5. Q 1. e 2. 6. P 1. e 3. 7. Q ~Q 1. e 4. 8. P ~P 1. e 4. 9. Q ~Q 2. e 3. 10. P ~P 2. e 3. 11. ~P 2. e 4. 12. ~Q 3. e 4.

Page 61: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

61

Exemplo (continuação):

S2:

13. P Q 1. e 7. 14. P Q 1. e 8.

.

.

. 37. Q 5. e 7. 38. Q 5. e 9. 39. 5. e 12.

Page 62: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

62

Métodos Básicos de Resolução(Refutação)

Outros métodos com implementações mais eficientes: Método por Saturação com Filtragem Método de Resolução por conjunto de Suporte Método da Resolução Linear

Esses métodos implementam a Resolução visando otimização. Para isso, evitam gerar resolventes (novas cláusulas) que sejam irrelavantes a decisão de insatisfatibilidade do conjunto de cláusulas.

O método mais eficiente é o da Resolução Linear, segue um exemplo:

Page 63: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

63

Métodos Básicos de Resolução(Refutação Linear)

Exemplo: Seja S o seguinte conjunto de cláusulas: 1. chama(a, b) 2. usa(b, e) 3. ~chama(x, y), depende(x, y) 4. ~usa(x, y), depende(x, y) 5. ~chama(x, z), ~depende(z, y), depende(x, y)

Questão: depende(a, e) ?

A seguinte sequência de cláusulas é uma refutação linear a partir de S:

Page 64: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

64

1. chama(a, b) 2. usa(b, e) 3. ~chama(x, y), depende(x, y) 4. ~usa(x, y), depende(x, y) 5. ~chama(x, z), ~depende(z, y), depende(x,

y) 6. ~depende(a, e) (negação da tese)

7. ~chama(a, z), ~depende(z, e) 6, 5 R 8. ~depende(b, e) 7, 1 R 9. ~usa(b, e) 8, 4 R 10. 9, 2 R

Métodos Básicos de Resolução(Refutação Linear)

Page 65: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

65

Métodos Básicos de Resolução(Refutação Linear)

Exemplo 2: Seja S o seguinte conjunto de cláusulas: 1. genitor(pam, bob) 2. genitor(tom, bob) 3. genitor(tom, liz) 4. genitor(bob, ana) 5. genitor(bob, pat) 6. genitor(pat, jim) 7. ~genitor(X,Z) v descendente (X,Z) 8. ~genitor(X,Y) v ~descendente (Y,Z) v descendente(X,Z)

Questão: descendente(tom,pat) ?

A seguinte sequência de cláusulas é uma refutação linear a partir de S:

FATOS

REGRAS

Page 66: 1 Resolução. 2 Equivalências de 1 a Ordem As leis de equivalência lógica permitem simplificar fórmulas da Lógica de 1a Ordem em fórmulas equivalentes,

66

1. genitor(pam, bob) 2. genitor(tom, bob) 3. genitor(tom, liz) 4. genitor(bob, ana) 5. genitor(bob, pat) 6. genitor(pat, jim) 7. ~genitor(X,Z) v descendente (X,Z) 8. ~genitor(X,Y) v ~descendente (Y,Z) v descendente(X,Z) 9. ~descendente(tom, pat) (negação da tese)

10. ~genitor(tom,Y) v ~descendente (Y, pat) v descendente(tom, pat) 8. X/tom, Z/pat

11. ~genitor(tom,Y) v ~descendente (Y, pat) 10, 9 R 12. ~genitor(tom, bob) v ~descendente (bob, pat) 11. Y/bob 13. ~descendente (bob, pat) 12, 2 R 14. ~genitor(bob, pat) v descendente (bob, pat) 7, X/bob, Z/pat 15. ~genitor(bob, pat) 14, 13 R 10. 15, 5 R

Métodos Básicos de Resolução(Refutação Linear)