Lgica de Predicados Teorema de Herbrand e Unificao
Lógica de Predicados Teorema de Herbrand e Unificação
Desejo antigo. . . n Encontrar um procedimento geral de decisão para verificar a validade (ou inconsistência) de uma fórmula n n n Leibniz (1700 s) Peano (1700 s-1800 s) Hilbert na década de 20
Church e Turing[1936] -> impossível!! n n n Não existe um procedimento de decisão para verificar a validade/invalidade de fórmulas da lógica de predicados Mas existem métodos de prova que podem verificar se uma fórmula é válida se realmente ela for! Para fórmulas inválidas, esses procedimentos são indecidíveis
Herbrand (1930) n n n Uma fórmula válida é verdadeira sob todas as suas interpretações Herbrand desenvolveu um algoritmo para encontrar uma interpretação que pode invalidar uma fórmula! No entanto, se ela é válida, nenhuma dessas interpretações pode existir n n O algoritmo termina após um número finito de tentativas O método de Herbrand é a base para muitos métodos modernos de prova automática
Reduzindo o problema n n n Um conjunto S de cláusulas é insatisfatível em LP sse for falso sob todas as interpretações sobre todos os domínios. . . é inconveniente e impossível considerar todas as interpretações sobre todos os domínios em LPO Mas, para provar por refutação, basta achar instâncias complementares de predicados
Universo de Herbrand de um Conjunto de Cláusulas (H) n Ho é o conjunto de constantes que aparecem em S n Se nenhuma constante aparece em S n n então Ho é formado por uma única constante, Ho={a} Se f é um símbolo funcional n-ário ocorrendo em S, e n se t 1, . . . , tn são termos que pertencem a H, então o termo f(t 1, . . . , tn) também pertence a H
Exemplos de universos de Herbrand n n n n S = { P(x) Q(x), P(x)} H 0 = H = {a} S = {P(a), P(x) P(f(x))} H 0 = {a} H 1 = {a, f(a)} H 2 = {a, f(a), f(f(a))}. . . H = {a, f(a), f(f(a)), f(f(f(a))), . . . }
Base de Herbrand n n n Um termo-base é um elemento de H Uma cláusula-base é um predicado sobre H Uma base de Herbrand para S é o conjunto B(S) de todas as fórmulas atômicas da forma P(t 1, . . . , tn) n n n P é um símbolo predicativo ocorrendo em S t 1, . . . , tn termos-base Exemplo: S = {P(x) Q(x), R(f(y))} H = {a, f(a), f(f(a)), . . . } B(S) = {P(a), Q(a), R(a), P(f(a)), Q(f(a)), R(f(a)), . . . }
Interpretação de Herbrand n Uma interpretação I para S é uma interpretação de Herbrand para S sse n n n o domínio U de I é H para cada constante a de S, a. I = a para cada função f de S, f. I(t 1, . . . , tn) = f(t 1, . . . , tn), n n n para cada t 1, . . . , tn H(S) para cada predicado p de S, p. I tem uma valoração (T ou F) Também chamada de H-interpretação Podem ser infinitas e de tamanho infinito Porém são contáveis (ordenáveis)
Exemplos de H-interpretações n S = {P(x) Q(x), R(f(y))} H = {a, f(a), f(f(a)), . . . } B(S) = {P(a), Q(a), R(a), P(f(a)), Q(f(a)), R(f(a)), . . . } n Algumas H-interpretações para S: n n n I 1 = {P(a), Q(a), R(a), P(f(a)), Q(f(a)), R(f(a)), . . . } I 2 = { P(a), Q(a), R(a), P(f(a)), Q(f(a)), R(f(a)), . . . } I 3 = {P(a), Q(a), R(a), P(f(a)), Q(f(a)), R(f(a)), . . . } n Só I 1 das interpretações acima satisfaz S n n
Teorema de Herbrand n n n Um conjunto de cláusulas é insatisfatível sse há um conjunto finito insatisfatível de instânciasbase de cláusulas de S Reduz o problema da insatisfatibilidade de um conjunto de cláusulas ao problema de gerar um conjunto finito de instâncias básicas das cláusulas do conjunto que seja insatisfatível Tal conjunto sempre existirá se S for insatisfatível n . . . mas poderá não existir em caso contrário.
Fecho de resolução n n n Se S’ é este conjunto finito insatisfatível O fecho de resolução de S’ (T) é S’ mais o conjunto das cláusulas deriváveis de S’ recursivamente O fecho é finito, obviamente! Ex: S’={P(a), P(a) Q(a), Q(a) false} T={P(a), P(a) Q(a), Q(a) false, Q(a), P(a) false, false}
Teorema de resolução da base n n Se um conjunto de cláusulas-base S’ (i. e. instanciadas em H) é insatisfatível, então seu fecho de resolução contém false. Em outras palavras, existe uma expansão por resolução para esse conjunto! Prova por negação: se ele não tiver false, ele é satisfatível! Ok, S’ é insatisfatível, e como provar que S também é? Lema do Levantamento (fim)
Método de Herbrand n n 1. Dado um conjunto S de cláusulas, gere todos os conjuntos finitos S 0, S 1, . . . , Sn, . . . de instâncias-base 2. Para cada conjunto Si gerado, teste se Si é insatisfatível 3. Pare com SIM, se Si é insatisfatível 4. Pare com NÃO, se não houver novos conjuntos a gerar
Decidibilidade n Esse procedimento: n n n sempre pára com SIM quando S for insatisfatível nunca pára quando S for satisfatível e existir um conjunto infinito de instâncias básicas de cláusulas de S sempre pára com NÃO quando S for satisfatível mas o conjunto de instâncias básicas de cláusulas de S é finito Procedimento de decisão parcial para o problema da insatisfatibilidade de conjunto de cláusulas Procedimento de decisão para o problema da insatisfatibilidade de conjunto de cláusulas cujo conjunto de instâncias básicas é finito
Árvores semânticas n n Mostra as interpretações de S Encontrar uma prova para um conjunto de cláusulas S é, a partir de ¬S n n Árvores semânticas completas n n n gerar uma árvore semântica fechada! contém todas as possibilidades Em LPO, as árvores são infinitas. . . Mas, se S é insatisfatível, uma árvore semântica sobre H é fechada e finita!
Árvore semântica infinita n n S = {P(x), Q(f(x))} B = {P(a), Q(f(a)), P(f(a)), Q(f(f(a))), P(f(f(a))), . . . }.
Nós de falha n n S = {P, Q v R, P v Q, P v R} B = {P, Q, R}.
Árvore semântica fechada n n S = {P(x), P(x) v Q(f(x)), Q(f(a))} B = {P(a), Q(a), P(f(a)), Q(f(a)), . . . }
Problema para um algoritmo n Ineficiência: não dá para testar todos os elementos do universo de Herbrand n Complexidade da Ordem de 2 n , onde n é o número de elementos
Resolver isso por resolução n n W= ( x)(Bom(x) Alegria) ( x) (Bom(x) Alegria) Resolução sobre W? ? ?
Resolvendo o problema n (( x)(Bom(x) Alegria) ( x) (Bom(x) Alegria)) n Na forma clausal: {[Bom(x), Alegria], [Bom(a), Alegria]} n Com {x a} chegamos à cláusula vazia n
E para a implementação? ?
Problemas graves n n Posso gerar {x a 1}, depois {x a 2}. . . O problema piora muito mais com muitas sentenças (pode ficar maior que o 3 -SAT). . .
Para resolver isso: Unificação n n n Intuição de Herbrand, criação de Robinson 2 fórmulas são unificáveis sse existir uma substituição que, se aplicada a ambas, torna-as complementares Como unificar? ? Fazendo substituições inteligentes de variáveis nas 2 fórmulas Existem bons algoritmos para isso. . .
Conceito importante: Substituição n n É um conjunto O={x 1<-t 1, . . . , xn<-tn} xi é variável, ti termo e xi<>ti xi<>xj, com i<>j Existe substituição vazia ({})
Aplicação de substituição n S é uma expressão e O uma substituição n n A aplicação de O em S (dita SO) é o conjunto obtido de S substituindo simultaneamente: n n O={x 1<-t 1, . . . , xn<-tn} Todas as ocorrências xi por ti Se O={}, SO=S
Exemplo n n n n C 1 = {p(y 1), q(y 1, z, x)} C 2 = { p(x), q(w), r(w, y 1, z, x, z)} O = {y 1 w, w g(a, z, x), x w} A aplicação de O em C 1 e C 2 é C 1 O= {p(w), q(w, z, w)} C 2 O = { p(w), q(g(a, z, x)), r(g(a, z, x), w, z)} C 1 e C 2 não tinham literais complementares. . . Mas C 1 O e C 2 O têm!
Gerando complementares n n n C 1={p(x)} e C 2={ p(a)} não possuem literais complementares Com O 1={x a} C 1 O 1={p(a)} e C 2 O 2={ p(a)} com literais complementares C 3={p(f(x), y, x)} e C 4={ p(z, g(z), a)} O 2=? ? | R(C 3 O 2, C 4 O 2)={}
Expressões unificáveis n Um conjunto de expressões é unificável se existir uma substituição O que faça SO=1 n n n O é unificador de S Ex: S={p(x, y), p(w, x)} O 1={x w, y w} é unificador de S O 2={x a, y a, w a} também O 1 é mais geral que O 2 n n n O 2, usando a, é mais específica O 2 pode ser obtida de O 1 O 2=O 1{w a, x a}
Unificador mais geral n Se O é unificador de S, ele é o mais geral se para qualquer unificador Oi n n n Exista uma substituição F | Oi=OF Pode ter mais de um. . . O 1={x w, y g(f(w)), z f(w)} unifica S={p(f(x), y, x), p(z, g(z), w)} O 2={x a, w a, y g(f(a)), z f(a)} tb! O 1 é mais geral pois O 2=O 1{w a}
Conjunto de diferenças n n n Dado S={A 1, . . . An}, um conjunto de expressões, o conjunto de diferenças é achado pelo algoritmo 1 -Pegue o primeiro símbolo de cada expressão Ai 2 -Se todos os símbolos coincidem, passe para o próximo símbolo n n Senão o conjunto de diferenças é D={E 1, . . . , En} D pode ser vazio
Exemplo de conjunto de diferenças n n n S={p(f(x), y, x), p(z, g(z), a)} D 1={f(x), z} D 2=. . .
Unificação n n n Dado um conjunto de expressões S, se S é unificável, acha-se um Unificador mais geral (ou indica-se a impossibilidade) fazendo: 1 - k=0, O 0={} 2 -Se SOk=1, Ok é este unificador n n Senão ache o conjunto de diferenças Dk de SOk 3 -Se existe uma variável x e um termo t em Dk de forma que x não ocorra em t, então faça Ok+1=Ok{x t} e incremente k n Se não existir, S não é unificável
Exemplo de unificação n n n n S={p(f(x), y, x), p(z, g(z), w)} k=0, O 0={}, SO 0=S <>1, D 0={f(x), z} z não ocorre em f(x), O 1=O 0{z f(x)} k=1, O 1={}{z f(x)}={z f(x)} SO 1={p(f(x), y, x), p(f(x), g(f(x)), w)} SO 1<>1, D 1={y, g(f(x))} y não ocorre em g(f(x)) O 2={z f(x)}{y g(f(x))} ={z f(x), y g(f(x))}, k=2 SO 2={p(f(x), g(f(x)), x), p(f(x), g(f(x)), w)} <> 1 D 2={x, w} x não ocorre em w, O 3={z f(x)}{y g(f(x))}{x w} O 3={z f(w)}{y g(f(w)), x w}, k=3 SO 3={p(f(w), g(f(w)), w)} = 1 O 3 é o unificador mais geral
Exemplo não-unificável n n S={p(f(x)), p(x)} D 0={f(x), x} e x ocorre em f(x) Se continuamos ? ? Prolog normalmente não testa a ocorrência, para dar mais eficiência, mas. . .
Lema do levantamento n n n Se C 1 e C 2 não têm as mesmas variáveis e C 1’ e C 2’ são instâncias-base de C 1 e C 2 e C’ é resolvente de C 1’ e C 2’ n n n Então existe um resolvente C de C 1 e C 2 e C’ é uma instância de C Prova: voltar com substituições
Exemplo do lema n n n C 1=P(x, F(x, a))^Q(x, a) R(x, b) C 2=N(G(y), z) P(H(y), z) C 1’=P(H(b), F(H(b), a))^Q(H(b), a) R(H(b), b) C 2’=N(G(b), F(H(b), a)) P(H(b), F(H(b), a)) C’=N(G(b), F(H(b), a))^Q(H(b), a) R(H(b), b) C=N(G(y), F(H(y), a))^Q(H(y), a) R(H(y), b)
Cenas dos próximos capítulos Agora que temos a unificação, a resolução poderá ter um passo só. . .
- Slides: 39