1 / 66

Resolução

Resolução. 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, porém mais simples – Forma Normal Prenex.

adila
Download Presentation

Resolução

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Resolução

  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

  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:

  4. Procedimento de Eliminação de Quantificadores Existenciais • Seja a uma fórmula na forma normal prenex Q1x1, ..., Qnxn(M), onde M está na forma normal conjuntiva e Qr um quantificador existencial no prefixo de a Q1x1, ... ,Qnxn, 1  r  n. • A eliminação de Qnxn é feita observando-se osquantificadores que o antecedem. Ocorre da seguinte maneira:

  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 ...

  6. Procedimento de Eliminação de Quantificadores Existenciais ... 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.

  7. Procedimento de Eliminação de Quantificadores Existenciais • 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(a).

  8. Procedimento de Eliminação de Quantificadores Existenciais • Exemplo: obter skolem(a) a = xyzu(P(x, y, z, u)) • x não é precedido de quantificador universal, então: • yzu(P(a, y, z, u)) 2. u é precedido por yz, então: yz (P(a, y, z, f(y, z)))

  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

  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 “ a = xy(Mãe(y,x)) skolem(a) = 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

  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 “ a = xy(Mãe(x,y)) skolem(a) = y(Mãe(a,y)) a constante a pode ser = “Nossa Senhora”

  12. Procedimento de Eliminação de Quantificadores Existenciais • Exemplo: obter skolem()  = (xyz((~P(x,y) ^ Q(x,z)) v R(x,y,z)) xyz((~P(x,y) ^ Q(x,z)) v R(x,y,z)) xyz((~P(x,y) v R(x,y,z)) ^ (Q(x,z) v R(x,y,z))) xz((~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))))

  13. Forma Normal Skolem • Teorema 1: Seja a um fórmula de 1a ordem. Então, a é insatisfatível se e somente se skolem(a) é 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.

  14. Forma Normal Skolem • Exemplo: Seja a = x(P(x)) então, skolem(a) = P(a) Seja I a seguinte interpretação : D = {1, 2} aI = 1 PI(1) = F PI(2) = V Então, I satisfaz a, mas não satisfaz skolem(a).

  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)

  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)}

  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.

  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

  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. xy (~P(x) ((~P(y)  P(f(x, y)) ) ^ (Q(x, g(x)) ^ ~P(g(x)) ))) 7. xy ( (~P(x) (~P(y)  P(f(x, y)))) ^ (~P(x) v(Q(x, g(x)) ^ ~P(g(x)) ))) 8. xy((~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)) }

  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)) }

  21. Exemplo: Fazer a representação clausal de um estado do “Dicionário” Exemplo:A transformação da fórmula 12 em cláusulas xyz((depende(x, z) & depende(z, y))  depende(x, y)) xyz(~(depende(x, z) & depende(z, y))v depende(x, y)) xyz((~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

  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.

  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)

  24. Exemplo: Fazer a representação clausal de um estado do “Dicionário” • 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) F A T O S REGRAS

  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.

  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.

  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.

  28. Resolução • Exemplo: Prove que o conjunto de cláusulas S é insatisfatível: S = {~P  Q, ~Q, P} 1. ~P  Q C1 2. ~Q C2 3. P C3 4. Q de 1 e 3, R 5.  de 4 e 2, R

  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)

  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)

  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)

  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)

  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}.

  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 }

  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.

  36. Unificação • Def.4 Um unificador s 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 l tal que  = sl.

  37. Unificação Exemplo: E = {Q(x), Q(f(y))} • Entre outras possíveis substituições,  unifica E  = {x/f(a) , y/a} e o umg s = {x/f(y)} Existe uma substituição l tal que  = sl Essa substituição seria: l = {y/a} {x/f(a) , y/a} = sl {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)}, l seria {y/f(a)}

  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.

  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)))}

  40. Algoritmo de Unificação 1. 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.

  41. Algoritmo de Unificação Exemplo: E = {P(a, x, f(g(y))), P(z, f(z), f(u))} K= 0 S0 = e 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} = e{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 = 1 S2 = 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

  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))}

  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 s, então Cs é chamado um fator de C

  44. Resolução: Definições Exemplo: Seja C = P(x)  P(f(y))  ~Q(x) P(x) e P(f(y)) tem um umg s = {x/f(y)} Cs = P(f(y))  ~Q(f(y)) é um fator de C.

  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 s, então a cláusula: (C1s L1s)  (C2s L2s) é chamada um resolvente binário de C1 e C2.

  46. Resolução: Definições Exemplo: 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 é s = {x/a} logo, (C1s L1s)  (C2s L2s) = Q(a)  R(y)um resolvente binário de C1 e C2.

  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

  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)

  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.

  50. O Sistema Formal da Resolução • Def.9 O Sistema Formal da ResoluçãoR 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’’

More Related