resolução exercício dos cubos
TRANSCRIPT
Sistemas Dedutivos
UTFPR/Curitiba Prof. Cesar A. Tacla http://www.pessoal.utfpr.edu.br/tacla
24/10/2012 21:32
Fundamentos
CONSEQUÊNCIA LÓGICA c é uma conseqüência lógica das premissas, se toda interpretação que satisfaz todas as premissas satisfaz também a conclusão c.
p1, p2, …, pn ╞ c
pi são premissas, c é a conclusão do argumento
Fundamentos
SISTEMAS DEDUTIVOS ou SISTEMAS DE INFERÊNCIA ou MÉTODOS DE PROVA Procedimento para cálculo de consequência lógica pela aplicação de regras de inferência, i.e. dada uma teoria Γ={p1, …, pn} permite deduzir que uma fórmula A é uma conclusão lógica de Γ por uma sequência de aplicações de regras de inferência.
Idéia fundamental: raciocínio é uma manipulação de símbolos
Fundamentos
Γ ⊢ A
Se há uma sequência de regras de inferência que permite concluir A de uma teoria Γ, então escreve-se (diz-se que A é dedutível a partir de Γ):
antecedente ou hipótese TEORIA
consequente ou conclusão TEOREMA
Sequente
B1, …, Bn ⊢ A1, …, An
Formulação genérica de sequente
conjunção disjunção
Fundamentos
MÉTODO CORRETO DE PROVA (CORRETUDE) diz-se que um método de prova é correto se somente produz conclusões válidas:
MÉTODO COMPLETO DE PROVA (COMPLETUDE) diz-se que um método de prova é completo se consegue encontrar uma sequência de aplicações de regras de inferência para toda conclusão válida
p1, p2, …, pn ⊢ c sse p1, p2, …, pn ⊨ c
p1, p2, …, pn ⊨ c sse p1, p2, …, pn ⊢ c
Fundamentos
*Fonte: Guilherme Bittencourt, http://www.das.ufsc.br/~gb/pg-md/tra-mad-prova.pdf
Métodos de prova corretos e completos (entre outros):
Sistemas de axiomas (ou de Frege ou de Hilbert): método que pelo uso de um conjunto de axiomas e de regras de inferência (Modus Ponens - MP, Modus Tolens - MT) alcança o teorema (a fórmula a ser demonstrada). Dedução Natural: conjunto de regras para lógica proposicional (inclusão e eliminação para cada conectivo lógico) Método de Tableaux. Por refutação, porém, analítico (em oposição aos de resolução). Lida diretamente com as fórmulas sem recorrer a formas normais. * Resolução: método por refutação (utilizado pelo PROLOG). Usa as formas normais.
Formas Normais
• Diversos algoritmos assumem que as fórmulas estão na forma normal que pode ser
– conjuntiva (FNC) ou
– disjuntiva (FND)
• Ex. colocar as fórmulas na FNC é requisito para aplicar o método de prova por resolução – usada por algoritmos SAT em geral
Forma Normal Conjuntiva (FNC)
• FNC: transformar as fórmulas em uma conjunção de disjunções
(¬q p r) (s ¬r) { [¬q, p, r], [s, ¬r] }
cláusula cláusula
fórmula
Notação clausal (q p r) (r s)
literal: p ou p
cláusula: disjunção de literais
vazia: sem literais, é igual a constante falsa ⊥
unitária: um só literal
Forma Normal Conjuntiva
Teorema: para toda fórmula B da lógica proposicional clássica, há uma fórmula
A na FNC que é equivalente a B
Algoritmo: ENT: uma fórmula B SAI: uma fórmula A na FNC tal que A B Para todas as subfórmulas de X,Y,Z de B faça Redefinir → em termos de e Empurrar as negações para o interior por leis de Morgan Eliminar a dupla negação Aplicar a distributividade de sobre Fim para A fórmula A é obtida quando não mais substituições possíveis
(Silva, Finger e Melo, 2006, pg. 79)
Cláusulas de Horn
Exemplo (2 cláusulas): (p ⋁ q ⋁ r) ⋀ (q ⋁ s ⋁ t) equivalente à (p ⋀ q) → r ⋀ (q ⋀ s) → t
São cláusulas com no máximo um literal positivo (PROLOG)
Horn
LP
Cláusulas de Horn
Fatos: são cláusulas unitárias em que há um único literal e este é positivo. Ex.: p
Regras: são cláusulas na forma (p1 ⋁ ... ⋁ pn ⋁ q) equivalente à (p1 ⋀ ... ⋀ pn → q) corpo da regra → cabeça
Consultas ou restrições: são cláusulas de Horn sem átomo positivo (p1 ⋁ ... ⋁ pn)
Tipos de cláusulas
Cláusulas de Horn
Propriedades que tornam a manipulação mais simples do que cláusulas genéricas
LEMA 1 Se C é um conjunto de cláusulas de Horn sem nenhum fato, então C é satisfazível.
LEMA 2 C é um conjunto de cláusulas de Horn que contém um fato p. C’ são cláusulas obtidas a partir de C removendo-se p do corpo de todas as cláusulas. Então C C’.
Cláusulas de Horn
Algoritmo de verificação de satisfabilidade
Algoritmo: HornSAT(C) ENT: conjunto de cláusulas C SAI: Verdadeiro se C é satisfazível, Falso, caso contrário. // Casos base Se ⊥ C retorne falso Se C não contém fatos então retorne verdadeiro // Passos redutores – levam aos casos base Seja p C um fato Seja C’ obtida de C removendo-se p de suas cláusulas retorne HornSAT(C’)
(Silva, Finger e Melo, 2006)
Tableaux Analíticos
É um procedimento de decisão – portanto decidível : capaz de demonstrar conclusões que são consequências lógicas de uma teoria e também aquelas que não são (assim como as tabelas-verdade).
Dedução natural e axiomatização são completos (capazes de demonstrar todas as consequências lógicas de uma teoria), porém, não são decidíveis. *Tableaux analíticos não são decídiveis para LPO.
É um método de prova baseado em refutação. É correto, completo, decidível em LP* e não-determinístico.
Tableaux Analíticos
Não- determinístico: o algoritmo possui (pelo menos) dois pontos onde deve haver uma escolha guiada por uma estratégia. As tabelas-verdade, em contraposição, são determinísticas. Não há escolhas heurísticas.
Plano
• Resolução em lógica proposicional (LP) – Regras de resolução para aplicar o método de prova
por refutação (há outros métodos!)
• Resolução em lógica de primeira ordem (LPO) – Reduzir a resolução em LPO à resolução em LP pela:
• Eliminação/instanciação do universal
• Eliminação do existencial (skolemização)
• Completude e decidibilidade
MÉTODO DA RESOLUÇÃO
RESOLUÇÃO No nosso caso, interessa resolução para uma linguagem mais próxima possível da LPO completa (com quantificadores, negação, predicados n-ários, funções, …). Também nos interessa o método de resolução por redução ao absurdo ou por refutação.
Γ ⊨ sse Γ U { } não é satisfazível (prova por refutação)
RESOLUÇÃO EM LÓGICA PROPOSICIONAL
Procedimento para lógica proposicional para verificar a validade de Γ ⊢ :
• a teoria Γ aqui será umconjunto de cláusulas na FNC • a ordem dos literais dentro das cláusulas não é importante • a ordem das cláusulas também não é importante
1. Colocar Γ U { } na forma normal conjuntiva
2. Representar a Γ na forma clausal
3. Verificar se é possível derivar a cláusula ⊥ aplicando-se as regras de resolução
4. Caso seja possível, prova-se por refutação que Γ ⊢
Regras de Resolução • Utilizadas no método de prova por refutação
{[w, q, r], [w, s, r]}
{[w, q, s]} resoluta: cláusula inferida pela regra
resolventes: cláusulas de entrada
{[r], [r]}
{[ ]}
Importante: neste caso, a resoluta é igual [ ] ou ⊥, ou seja, as cláusulas resolventes são insatisfazíveis
regra de RESOLUÇÃO
{[w, w, r]}
{[w, r]}
regra de CONTRAÇÃO
EXEMPLO
1. fund 2. fund criança 3. criança masc menino 4. jardim criança 5. criança fem menina 6. fem
Γ ⊢ ? sendo = menina
Γ
1. {[fund], 2. [fund , criança], 3. [criança , masc, menino], 4. [jardim , criança] 5. [criança , fem menina], 6. [fem], 7. [menina]}
Γ U {} na FNC
[fund] [fund , criança]
[criança] [criança, fem menina]
[fem, menina] [fem]
[menina] [menina]
[ ]
1
5
2
6
7
RESOLUÇÃO EM LÓGICA PROPOSICIONAL
Método utilizado pelo PROLOG e por provadores de teorema (ex. OTTER) pela simplicidade
Desafios computacionais do método: 1. não-determinístico: é preciso escolher os resolventes a cada passo de
resolução. Qual estratégia? sempre utilizar um resolvente unitário = resolução unitária
2. diminuição do espaço de busca: descartar fórmulas que subsumem outras (englobam). [a, b, c] [a, p] [b, p]
[a, b]
fórmula englobada por [a,b,c] que pode ser eliminada diminuindo o espaço de busca para {[a, p], [b, p], [a, b]}
COMPLETUDE
O procedimento de resolução é completo e correto se restrito à refutação, i.e. a derivação da cláusula vazia [ ].
Não é completo em outros casos, pois é possível demonstrar que uma conclusão é consequência lógica de Γ embora não se consiga derivar a partir de Γ utilizando as regras de resolução.
COMPLETUDE
Exemplo: p ⊢ p q Não é possível aplicar a regra de resolução somente a cláusula [p], mas é trivial ver que [p, q] é consequência lógica de [p]. Sempre que v(p)=1, v(p v q) = 1. Daí, para fins de completude do método de resolução, a idéia de se fazer prova por refutação {[p], [p], [q]} ⊢ [ ]
RESOLUÇÃO EM LPO
Resolução com lógica proposicional está um pouco distante da LPO pois não considera os quantificadores universal e existencial, nem predicados e funções n-ários com n>0.
Para fazer inferência com quantificadores, a idéia básica é reduzi-la à inferência da lógica proposicional
BASTA ELIMINARMOS OS QUANTIFICADORES!!!
RESOLUÇÃO EM LPO
1. Colocar a Γ U { } na FNC 2. Eliminar os quantificadores universais * 3. Aplicar a regra de resolução
*primeiramente, excluiremos somente o quantificador universal (depois, veremos com excluir o existencical
FNC em LPO
• Eliminar implicação lógica
• Mover negações para dentro para que precedam os átomos utilizando as equivalências
• x() substituir por x( )
• x() substituir por x.
• Padronizar as variáveis: cada quantificador deve corresponder a uma variável
• x(p(x)) q(x) substituir por z.(p(z)) q(x)
• Eliminar todos os existenciais (será visto mais tarde)
• Mover universal para fora do escopo do e do utilizando as equivalências: ( x(β)) substituir por x( β) desde que x não seja var. livre em ( x(β)) substituir por x( β) desde que x não seja var. livre em
• Fazer conjunção de disjunções por meio da distributiva e das leis de Morgan
• Não colocar os quantificadores universais na FNC pois todas as fórmulas quantificadas serão universais (desprezar ≠ eliminar)
ELIMINAÇÃO DO UNIVERSAL
X(rei(X) ganancioso(X) perverso(X)) joão constante que denota um objeto do domínio ricardo constante que denota um objeto do domínio pai(X) função que retorna o pai de X que é um objeto do domínio
Pela instanciação universal obtém-se: rei(joão) ganancioso(joão) perverso(joão) rei(ricardo) ganancioso(ricardo) perverso(ricardo) rei(pai(joão) ganancioso(pai(joão)) perverso(pai(joão)) … …
{X/joão} {X/ricardo}
{X/pai(joão)}
sub
stit
uiç
ões
Termos básicos: não apresentam variáveis
Pode-se eliminar o quantificador universal pela instanciação universal ou unificação, i.e. substituir as variáveis por valores concretos.
EXEMPLO RESOLUÇÃO EM LPO
1. X (fund(X) criança(X)) 2. X (criança(X)brinca(X)) 3. fund(maria)
Γ ⊢ ? sendo = brinca(maria)
Γ
1. {[fund (X), criança(X)], 2. [criança (X), brinca(X)], 3. [fund(maria)], 4. [brinca(maria)]}
Γ U {} na FNC
[fund (X), criança(X)] [fund(maria)]
X/maria criança(maria) [criança (X), brinca(X)]
X/maria
[brinca(maria)] [brinca(maria)]
[ ]
Logo, brinca(maria) é uma consequência lógica das fórmulas em Γ
PREDICADOS RESPOSTA
(extraído de Brachman e Levesque, 2005)
Cada derivação produz uma só resposta. Se tivéssemos Happy(Sue) na KB terímos que fazer outra substituição {x/sue}. Porém, a resposta pode ser uma disjunção
Negação da query= x(Student(x) or Happy(x))
ELIMINAÇÃO DO EXISTENCIAL
• Para completar a resolução em LPO, é preciso tratar fórmulas com o quantificador existencial
• Para tal, faz-se a instanciação do existencial ou skolemização (do autor, Skolem).
• A idéia básica é exemplificada:
X(coroa(X) naCabeça(X, joão))
Se existe um objeto que é uma coroa e que está sobre a cabeça do João, então podemos supor que este objeto existe e nomêa-lo com um símbolo constante que não exista e nem venha a se repetir na KB. No exemplo, c1 é chamado de constante de skolem.
coroa(c1) naCabeça(c1, joão)
SKOLEMIZAÇÃO
• Se existe um x, chame-o de a (constante)
• Se para todo x existe um y, chame-o de f(x)
x1 yP(x1,y) x1P(x1,f(x1))
x1 x2 yP(x1, x2, y) x1 x2P(x1, x2, f(x1, x2))
x1 x2 … xn yP(x1, x2, …, xn, y) x1 x2P(x1, x2, …, xn, f(x1, …, xn))
f é um novo símbolo de função que não existe em nenhum outro lugar da KB
x mae(x, jose) mae(a, jose)
x1y(pessoa(x1) mae(y, x1)) x1(pessoa(x1) mae(f(x1), x1))
Exemplo
IMPLICAÇÃO DA SKOLEMIZAÇÃO
Quando fazemos instanciação dos existenciais numa KB, a nova KB não é logicamente equivalente à anterior pois x.P(x) P(a) é falso!!!
Porém, a KB antiga e a nova (resultante da skolemização) apresentam equivalência inferencial, i.e. é satisfazível sse ’ é satisfazível, sendo ’ o resultado da skolemização.
Preservar a equivalência inferencial ou a satisfabilidade é suficiente para resolução!
DEPENDÊNCIA DAS VARIÁVEIS
• A ordem de aparecimento dos quantificadores é importante na resolução em LPO.
• Esta ordem gera dependências entre as variáveis o que afeta a skolemização e a satisfabilidade!
x y.R(x, y)╞ y x.R(x, y) é satisfazível
y x.R(x, y) ╞ x y.R(x, y) não é satisfazível
DEPENDÊNCIA DAS VARIÁVEIS
x y.R(x, y)╞ y x.R(x, y)
y x.R(x, y) ╞ x y.R(x, y)
satisfazível não é satisfazível
1. Mostrar que as cláusulas abaixo derivam []
2. {x/a}
3. Negação para dentro e {y/b}
4. Unificar pela substituição {x/a, y/b}
2. {x/f(y)} // x depende de y
3. Negação para dentro e {y/g(x)}
4. Não há unificação
1. Mostrar que as cláusulas abaixo derivam []
DECIDIBILIDADE
• A resolução por derivações não oferece solução geral para o cálculo da consequência lógica (nem com a instanciação dos quantificadores universais e existenciais)
• Há situações onde há infinitas substituições. Por exemplo, se há um símbolo de função, o número de substituições é infinito.
DECIDIBILIDADE KB: X rei(X) ganancioso(X) perverso(X) joão constante que denota um objeto do domínio ricardo constante que denota um objeto do domínio rei(joão) ganancioso(joão) pai(X) função que retorna o pai de X
Pela instanciação universal obtem-se: rei(joão) ganancioso(joão) -> perverso(joão) rei(ricardo) ganancioso(ricardo) -> perverso(ricardo) rei(pai(joão) ganancioso(pai(joão)) -> perverso(pai(joão)) … …
{X/joão}
{X/ricardo}
{X/pai(joão)}
{X/pai(pai(joão))}
{X/pai(pai(pai(joão)))}
substituições
Exercício: demonstrar que pode-se fazer infinitas substituições se retirarmos a sentença ganancioso(joão) e quisermos demonstrar que há um rei perverso.
DECIDIBILIDADE • Resoluções geradas pela instanciação universal e
existencial são completas.
• i.e. toda sentença que é consequência lógica da KB pode ser demonstrada. Algum ramo de derivação conterá a cláusula [ ], mesmo que existam outros ramos infinitos. Por isto, deve-se fazer busca breadth-first.
• Porém, se a sentença não é satisfazível, a prova pode prosseguir indefinidamente pelo aninhamento de funções nas substituições
• Nesta situação, não é possível saber se não se pode deduzir a sentença ou se ainda não se chegou a dedução!!!
• Alguns autores dizem que o cálculo da consequência lógica em LPO é semi-decídivel por este motivo.
Melhorias na resolução
• Face as constatações de que não há garantia de terminação da resolução e não maneira de garantir eficiência, há algo a ser feito? Sim…
– É possível reduzir redundâncias nas buscas, fazendo substituições mas genéricas possíveis > most general unifiers
– Escolhas arbitrárias nas substituições podem impedir que um caminho atinja a cláusula []. Não é preciso atribuir um valor específico a uma variável, pode-se deixar este comprometimento para mais tarde
Resolução é difícil
• Resolução em LPO não tem garantias de término
• Na lógica proposicional: – Haken demonstrou em 1995 que sabendo-se que
há cláusulas não satisfazíveis {c1, …, cn} na KB, a derivação mais curta para a cláusula [] é da ordem de 2n
cláusulas.
– Portanto, mesmo se as vezes a cláusula [] pode ser encontrada imediatamente, em alguns problemas a busca pode requerer tempo exponencial.
Resolvedores SAT
• São algoritmos utilizados para encontrar valorações para cláusulas que são satisfazíveis (para lógica proposicional)
Implicações para KR
• Problema: como gerar consequências lógicas em tempo razoável para realizar ações imediatas
– Provadores de teoremas completos podem não ser úteis para KR – Outras opções:
• Dar maior controle ao usuário • Linguagens menos expressivas (ex. cláusulas de Horn)
• Em algumas aplicações, é razoável esperar bastante tempo: provar um teorema matemático pode levar meses!
• Em geral, a melhor alternativa é a utilização do most general unifier para evitar buscas redundantes
• Mas há outras estratégias… – eliminação de cláusulas ; ex; que contêm um literal que não aparece em outras cláusulas – Ordenação da resolução,;ex. primeiro cláusulas unitárias – Utilizar lógica tipificada (sorted logic): unificar cláusulas somente qdo os tipos forem
compatíveis – …