41
1 Resolução

1 Resolução. 2 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

Embed Size (px)

Citation preview

Page 1: 1 Resolução. 2 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

1

Resolução

Page 2: 1 Resolução. 2 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

2

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 construida é dita ser um resolvente de C1 e C2.

Page 3: 1 Resolução. 2 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

3

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

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

R Q é um resolvente de C1 e C2.

Page 4: 1 Resolução. 2 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

4

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

resolvente C de C1 e C2 é consequê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 sequê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 5: 1 Resolução. 2 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

5

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

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

1. ~P Q2. ~Q3. P4. Q de 1 e 3, R5. de 4 e 2, R

Page 6: 1 Resolução. 2 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

6

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 7: 1 Resolução. 2 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

7

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 8: 1 Resolução. 2 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

8

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 9: 1 Resolução. 2 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

9

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 10: 1 Resolução. 2 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

10

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}

pela retirada dos elementos:xj/tj para o qual tj = xj e

yi/ui tal que yi {x1, ... ,xn}.

Page 11: 1 Resolução. 2 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

11

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 12: 1 Resolução. 2 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

12

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 13: 1 Resolução. 2 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

13

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 14: 1 Resolução. 2 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

14

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 15: 1 Resolução. 2 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

15

Unificação Exemplo1:

E = {P(x), P(a)}D = {x, a}

Exemplo2:E = {P(x, f(y, z)), P(x, a), P(x, g(h(k(x))))}D = {f(y, z), a, g(h(k(x)))}

Page 16: 1 Resolução. 2 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

16

Unificação Exemplo1: Discórdia de E1

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

Exemplo2: Discórdia de E2 E = {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 17: 1 Resolução. 2 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

17

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 18: 1 Resolução. 2 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

18

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 19: 1 Resolução. 2 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

19

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 20: 1 Resolução. 2 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

20

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 21: 1 Resolução. 2 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

21

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 22: 1 Resolução. 2 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

22

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 23: 1 Resolução. 2 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

23

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 24: 1 Resolução. 2 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

24

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 25: 1 Resolução. 2 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

25

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 26: 1 Resolução. 2 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

26

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 27: 1 Resolução. 2 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

27

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 28: 1 Resolução. 2 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

28

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 29: 1 Resolução. 2 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

29

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 30: 1 Resolução. 2 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

30

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 31: 1 Resolução. 2 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

31

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 32: 1 Resolução. 2 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

32

Exemplos de Aplicações: Banco de Dados

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

C

A 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 33: 1 Resolução. 2 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

33

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 34: 1 Resolução. 2 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

34

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 35: 1 Resolução. 2 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

35

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 36: 1 Resolução. 2 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

36

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 37: 1 Resolução. 2 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

37

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 38: 1 Resolução. 2 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

38

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 39: 1 Resolução. 2 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

39

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 40: 1 Resolução. 2 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

40

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 41: 1 Resolução. 2 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

41

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)