Teorema de Herbrand e Unificação

Slides:



Advertisements
Apresentações semelhantes
Lógica de Predicados e Representação de Conhecimento
Advertisements

Capítulo 9 A semântica da Lógica de Predicados
Capítulo 3 Propriedades semânticas da Lógica Proposicional
Definibilidade em Lógica (I)
Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Máquina de.
Tópicos de Lógica Proposicional
Formalizar semântica da LPO
Elsa Carvalho 163 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Teoria dos Modelos.
1 Domínios Finitos A eficiência das programas em domínios finitos (incluindo booleanos) podem ainda ser melhoradas pelo uso de Algoritmos de Propagação.
Restrições Booleanas O domínio dos Booleanos (ou variáveis 0/1) tem especial aplicação em aplicações Envolvendo circuitos digitais Exemplo: Circuito semi-somador.
Capítulo 2 - Derivadas No final do capítulo 1, já definimos o coeficiente angular de uma curva y = f(x) no ponto onde x = x0. Chamamos esse limite, quando.
Lógica de Predicados Sintaxe. O que não é possível expressar em Lógica Prop. Todo tricolor é um campeão. Roberto é tricolor. Logo Roberto é um campeão.
Lógicas em Dedução Natural
Introdução à Programação Lógica
Cálculo Relacional Datalog não-recursivo
Resolução.
Inferência em lógica de primeira ordem
Análise Sintática Ascendente
3. Sintaxe e Semântica.
Indução Métodos de prova já vistos Excepções
Lógica de Primeira Ordem -2
Linguagem de 1ª ordem da teoria de conjuntos
Luís Rodrigues – Universidade dos Açores
Meta - heurísticas Prof. Aurora
Lógica Lógicas Clássicas Lógicas Não-Clássicas
Lógica de Predicados Teorema de Herbrand.
UNIVERSIDADE ESTADUAL DE SANTA CRUZ
Swami Gersiline Calebe Hyago
Componentes: Lucas, Ítalo, Wagner, Newton e Gabriel
Capítulo 10 Propriedades semânticas da Lógica de Predicados
Capítulo 4 Métodos para determinação de propriedades semânticas de fórmulas da Lógica Proposicional
Cássio Cristo Dawyson Guerra Matheu Santos
Capítulo 11 Programação Lógica
REVISÃO PROVA 2 Monitoria de Lógica.
Lógica Proposicional Tableaux semânticos.
Formas Normais e Resolução
Teorema de Herbrand e Unificação
SEMÂNTICA.
Lógica Proposicional Resolução.
Lógica de Predicados Resolução.
Lógica Proposicional Tableaux semânticos.
Lógica de Predicados Tableaux semânticos.
Implementação de Resolução
Sintaxe e Semântica na Lógica de Predicados
Lógica de Predicados Sintaxe.
SAT e Custo Computacional
SAT e Custo Computacional
SAT e Custo Computacional
Teoria da Computação Aula 5 Prof. Fabiano Sabha.
André Luiz da Costa Carvalho
Elsa Carvalho 186 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Aplicação e Composição.
Lógica para Computação
Métodos Formais.
Algoritmos e Estrutura de Dados I
Redução.
Decidibilidade, Corretude, Completude, Consistência
Introdução à NP-completude
Decidibilidade, Corretude, Completude, Consistência, Monotonicidade
Linguagem de 1ª ordem da teoria de conjuntos
Elsa Carvalho 262 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Negação Com os.
J. M. Barreto UFSC-INE Lógica de Primeira Órdem R ecordação.
Lógica Proposicional.
Elsa Carvalho 203 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Resolução (com.
Teorema de Herbrand.
Lógica de 1ª Ordem.
Interpretação do Teorema de Herbrand
1 Decidibilidade continuação…. 2 Teorema: Para qualquer linguagem recursivamente enumerável é indecidível determinar se é finita Prova: Vamos reduzir.
Informática Teórica Engenharia da Computação
Lógica de Predicados Tableaux semânticos.
Busca Heurística Prof. Valmir Macário Filho. 2 Busca com informação e exploração Capítulo 4 – Russell & Norvig Seção 4.1 Estratégias de Busca Exaustiva.
Transcrição da apresentação:

Teorema de Herbrand e Unificação Lógica de Predicados Teorema de Herbrand e Unificação

Desejo antigo... Encontrar um procedimento geral de decisão para verificar a validade (ou inconsistência) de uma fórmula Leibniz (1700s) Peano (1700s-1800s) Hilbert na década de 20

Church e Turing[1936] -> impossível!! Não existe um procedimento de decisão para verificar a validade 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) 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 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 Um conjunto S de cláusulas é insatisfatível sse for falso sob todas as interpretações sobre todos os domínios Mas... é inconveniente e impossível considerar todas as interpretações sobre todos os domínios Idéia: usar um domínio especial H, tal que S é insatisfatível se e somente se S é falso sob todas as interpretações sobre H H é o universo de Herbrand de S

Universo de Herbrand de um Conjunto de Cláusulas (H) Se Ho é o conjunto de constantes que aparecem em S Se nenhuma constante aparece em S então Ho é formado por uma única constante, Ho={a} Se f é um símbolo funcional n-ário ocorrendo em S, e se t1, ...,tn são termos que pertencem a H, então o termo f(t1, ...,tn) também pertence a H

Exemplos de universos de Herbrand S = {P(x)  Q(x), P(x)} H0 = H = {a} S = {P(a), P(x)  P(f(x))} H0 = {a} H1 = {a, f(a)} H2 = {a, f(a), f(f(a))} ... H = H = {a, f(a), f(f(a)), f(f(f(a))), ... }

Base de Herbrand Um termo-base é um elemento de H Uma base de Herbrand para S é o conjunto B(S) de todas as fórmulas atômicas da forma P(t1, ...,tn) P é um símbolo predicativo ocorrendo em S t1, ...,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 Uma interpretação I para S é uma interpretação de Herbrand para S sse o domínio U de I é H para cada constante a de S, aI = a para cada função f de S, fI(t1, ...,tn) = f(t1, ...,tn), para cada t1, ...,tn  H(S) Também chamada de H-interpretação

Exemplos de H-interpretações 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)), ...} Algumas H-interpretações para S: I1 = {P(a), Q(a), R(a), P(f(a)), Q(f(a)), R(f(a)), ... } I2 = {P(a), Q(a), R(a), P(f(a)), Q(f(a)), R(f(a)), ... } I3 = {P(a), Q(a),  R(a), P(f(a)),Q(f(a)), R(f(a)),...}

H-interpretação correspondente Dada uma interpretação I, uma H-interpretação I* correspondente a I é uma H-interpretação em que Sendo h1, ..., hn elementos de H (o universo Herbrand de S) Sendo cada hi mapeado para alguma variável di Se é atribuído a P(d1, ... , dn) V(F) por I, então para P(h1, ... , hn) também é atribuído V(F) em I* Se uma interpretação I sobre algum domínio D satisfaz um conjunto de cláusulas S, então qualquer H-interpretação I* correspondente a I também satisfaz S Exs: I1 e I2

Árvores semânticas Encontrar uma prova para um conjunto de cláusulas S é gerar uma árvore semântica fechada! Árvores semânticas completas 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 S = {P(x), Q(f(x))} B = {P(a), Q(a), P(f(a)), Q(f(a)), P(f(f(a))),...}.

Árvore semântica completa S = {P(x), P(a)} B = {P(a)} P(a) P(a)

Exemplos de árvores semânticas completas

Nós de falha S = {P, Q v R, P v Q, P v R} B = {P, Q, R}.

Árvore semântica fechada S = {P(x), P(x) v Q(f(x)), Q(f(a))} B = {P(a), Q(a), P(f(a)), Q(f(a)), ...}

Teorema de Herbrand Um conjunto de cláusulas é insatisfatível sse há um conjunto finito insatisfatível de instâncias-base 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 ...mas poderá não existir em caso contrário.

Método de Herbrand 1. Dado um conjunto S de cláusulas, gere todos os conjuntos finitos S0, S1, ..., 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 Esse procedimento: 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

Implementação de Gilmore (60) S = {P(a), ~P(x)  Q(f(x)), ~Q(f(a))} H0 = {a} Geram-se todos os Si (método multiplicativo) S0 = P(a) & (~P(a)  Q(f(a))) & ~Q(f(a)) = ((P(a) & ~P(a))  (P(a) & Q(f(a)))) & Q(f(a)) = (P(a) & ~P(a) & ~Q(f(a)))  (P(a) & Q(f(a)) & ~Q(f(a))) = F  F = F

Avaliação do algoritmo MUITO INEFICIENTE!!! Ordem de 2n , onde n é o número de instâncias-base Imagine com 500 instâncias...

Algoritmo de Davis-Putnam M .Davis, H. Putnam, “A computing procedure for quantification theory", J. of ACM, Vol. 7, pp. 201-214, 1960 Iterativamente escolhe uma variável até que não haja mais variáveis INSAT se chegarmos à cláusula vazia Joga fora cláusulas resolvidas depois de cada iteração (a + b + c) (b + c’ + f’) (b’ + e) (a + b) (a + b’) (a’ + c) (a’ + c’) (a + c + e) (c’ + e + f’) (a) (a’ + c) (a’ + c’) (a + e + f’) (c) (c’) ( ) SAT INSAT Problemas de explosão de memória!

Para resolver isso: Unificação 2 fórmulas são unificáveis sse existir uma substituição que, se aplicada a ambas, torna-as iguais Como unificar?? Fazendo substituições inteligentes de variáveis nas 2 fórmulas Existe um bom algoritmo para isso...

Substituição É um conjunto O={x1<-t1, ..., xn<-tn} xi é variável, ti termo e xi<>ti xi<>xj, com i<>j Existe substituição vazia ({})

Aplicação de substituição S é uma expressão e O uma substituição O={x1<-t1, ..., xn<-tn} A aplicação de O em S (SO) é o conjunto obtido de S substituindo simultaneamente: Todas as ocorrências xi por ti Se O={}, SO=S

Exemplo C1 = {p(y1), q(y1,z,x)} C2 = {p(x), q(w), r(w,y1,z,x,z)} O = {y1w, wg(a,z,x), xw} A aplicação de O em C1 e C2 é C1O= {p(w), q(w,z,w)} C2O = {p(w), q(g(a,z,x)), r(g(a,z,x),w,z,w,z)} C1 e C2 não tinham literais complementares... Mas C1O e C2O têm!

Composição de substituições Dadas 2 substituições O1 e O2 A composição O1O2 deve manter a propriedade S(O1O2) = (SO1)O2 S é um conjunto de expressões O1={xy}, O2={yb}, S={p(x,y)} S(O1)O2 = (p(x,y){xy}){yb}=p(b,b) S(O1O2) = p(x,y){xy,yb}=p(y,b)!!

Como resolver?? Antes de substituir {x<-y} e {y<-b} Aplicar {y<-b} nos termos y que ocorre em O1 ({x<-y}) O1O2={x<-y{y<-b},y<-b}={x<-b,y<-b} O3= {x<-w} e O4= {w<-x} O3O4=???

Composição de substituições O3O4={x<-w{w<-x},w<-x}= {x<-x,w<-x} = {w<-x} O5= {x<-a} e O6= {x<-b} O5O6={x<-a{x<-b},x<-b}= {x<-a,x<-b} = {x<-a}

Composição de substituições O1={x1<-t1,...xn<-tn} O2={y1<-s1,...ym<-sm} Algoritmo para O1O2: 1- Construa F={x1<-t1O2,...,xn<-tnO2, y1<-s1,...ym<-sm} 2- Elimine as substituições yi si quando yi=xj 3- Elimine as substituições xi tiO2 quando xi=tiO2

Exemplo de composição O1={xf(y),wz,zx} e O2={yw,xz,zw}, O1O2=? O1O2={xf(y)O2,wzO2,zxO2, yw,xz,zw} (1) ={xf(w),ww,zz, yw,xz,zw} ={xf(w),ww,zz, yw} (2: xz e zw foram eliminadas; x e z estão em O1) ={xf(w), yw} (3)

Propriedades da composição O1{}={}O1=O1 (CO1)O2=C(O1O2) O1(O2O3)=(O1O2)O3 Provadas por indução

Gerando complementares C1={p(x)} e C2={p(a)} não possuem literais complementares Com O1={xa} C1O1={p(a)} e C2O2={p(a)} com literais complementares C3={p(f(x),y,x)} e C4={p(z,g(z),a)} O2=?? | C3O2=C4O2

Expressões unificáveis Um conjunto de expressões é unificável se existir uma substituição O que faça SO=1 O é unificador de S Ex: S={p(x,y),p(w,x)} O1={xw, yx} é unificador de S O2={xa, ya, wa} também O1 é mais geral que O2 O2, usando a, é mais específica O2 pode ser obtida de O1 O2=O1{wa,xa}

Unificador mais geral Se O é unificador de S, ele é o mais geral se para qualquer unificador Oi Exista uma substituição F | Oi=OF Pode ter mais de um... O1={xw,yg(f(w)),zf(w)} unifica S={p(f(x),y,x),p(z,g(z),w)} O2={xa,wa,yg(f(a)),zf(a)} tb! O1 é mais geral pois O2=O1{wa}

Conjunto de diferenças Dado S={A1,...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 Senão o conjunto de diferenças é D={E1,...,En} D pode ser vazio

Exemplo de conjunto de diferenças S={p(f(x),y,x),p(z,g(z),a)} D1={f(x),z} D2=...

Unificação 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, O0={} 2-Se SOk=1, Ok é este unificador 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 Se não existir, S não é unificável

Exemplo de unificação S={p(f(x),y,x), p(z,g(z),w)} k=0, O0={}, SO0=S <>1, D0={f(x),z} z não ocorre em f(x), O1=O0{zf(x)} k=1, O1={}{zf(x)}={zf(x)} SO1={p(f(x),y,x), p(f(x), g(f(x)),w)} SO1<>1, D1={y,g(f(x))} y não ocorre em g(f(x)) O2={zf(x)}{yg(f(x))} ={zf(x),yg(f(x))}, k=2 SO2={p(f(x),g(f(x)),x), p(f(x), g(f(x)),w)} <> 1 D2={x,w} x não ocorre em w, O3={zf(x)}{yg(f(x))}{xw} O3={zf(w)}{yg(f(w)),xw}, k=3 SO3={p(f(w), g(f(w)),w)} = 1 O3 é o unificador mais geral

Exemplo não-unificável S={p(f(x)),p(x)} D0={f(x),x} e x ocorre em f(x) Se continuamos ?? Prolog normalmente não testa a ocorrência, para dar mais eficiência

Cenas dos próximos capítulos Agora que temos a unificação, a resolução terá um passo só...