Resolução Proposicional - DAINF

Propaganda
Resolução Proposicional
Fernando Bozza, Vanessa Maria da Silva
[email protected], [email protected]
Curso Bacharelado em Sistemas de Informação
DAINF - Universidade Tecnológica Federal do Paraná (UTFPR)
Av. Sete de Setembro, 3165 - Rebouças
CEP 80230-901 - Curitiba - PR / Brasil
Abstract. This work will be started with the presentation of some definitions
about the subject, emphasizing the method of resolution in its form, its
fundamental concepts of logic, and not the content of arguments. The study of
mechanisms to verify the validity of the arguments will be dealt with only a
propositional approach. For a better understanding to how to use the
propositional resolution will be shown some examples.
It was from expressions of language, show how the method of resolution is a
powerful tool used in computing to automation and is also used by the
programming language Prolog and tasters of theorems, in both cases, the
method is applied more generally the logic of first order, not shown in this
work.
Resumo. Este trabalho será iniciado com a apresentação de algumas
definições sobre o tema, enfatizando o método de resolução em sua forma,
seus conceitos fundamentais de lógica, e não o conteúdo dos argumentos. O
estudo de mecanismos que verificam a validade dos argumentos será tratado
com uma abordagem apenas proposicional. Para uma melhor compreensão
de como utilizar a resolução proposicional serão demonstrados alguns
exemplos.
Buscou-se a partir de expressões da linguagem, mostrar como o método de
resolução é um poderoso instrumento utilizado pela computação para
automatização, sendo também utilizado pela linguagem de programação
Prolog e por provadores de teoremas, em ambos os casos, o método é
aplicado mais genericamente à lógica de primeira ordem, não apresentado
nesse trabalho.
1. Resolução Proposicional
O método da resolução teve inicio com o filósofo, matemático e cientista da
computação, John Alan Robinson, que fez sua maior contribuição, para os fundamentos
de provadores de teoremas automatizados e lógica de programação, usando o Princípio
da Resolução em 1965, isto permitiu a aplicação eficaz da linguagem de programação
lógica Prolog e provadores como o Otter.
A resolução na lógica proposicional é um método de prova, regra de inferência,
que toma duas cláusulas contendo literais complementares e produz uma nova cláusula
com os literais que sobraram de ambas, até que se chegue ao objetivo da resolução,
provar que as cláusulas são válidas, para que isto aconteça é necessário obter a cláusula
vazia (). Este sistema dedutivo usa a linguagem proposicional no formato clausal
também chamado de forma normal conjuntiva (FNC), que é diferente das fórmulas bem
formadas (fbf).
2. Componentes da Resolução Proposicional
 O alfabeto da lógica proposicional.
 O conjunto das cláusulas da lógica proposicional.
 A regra da resolução.
2.1 O alfabeto da lógica proposicional




Símbolos de pontuação
Símbolos verdade: true, false
Símbolos proposicionais: P, Q, R, P1,...
Conectivos: ¬, , , →, ↔.
2.2 O conjunto das cláusulas da lógica proposicional
Uma cláusula sobre um alfabeto A é uma seqüência não vazia de literais usando
os símbolos de A ou a seqüência vazia de literais, denotada por .
Observe como ocorre a disjunção: A= (p q r)  (p q)  (p p) essa formula é
representada na forma de conjuntos como A= {{pqr}, {pq}, {p}. As vírgulas
mais internas representam o conectivo e as mais externas representam o conectivo
(pq r) é representado por {p,  q. r}. 
O elemento básico na formação da FNC é o literal. Se o literal tiver a forma p, ele é
positivo, se tiver a forma p é chamado de negativo.
Seja L1 L2 ... Ln, uma cláusula, sendo n o tamanho da cláusula. Se n = 1 é dita
cláusula unitária, se n = 0 é dita cláusula vazia, cláusula vazia é equivalente á constante
falsa .
A ordem dos literais dentro das cláusulas não é considerada importante e,
portanto podem ser reordenadas da forma mais conveniente, sem que isso modifique de
alguma maneira a lógica computacional. Exemplo: LLC usando a regra de
contração, resulta em L C, assim apagando ou contraindo literais que aparecem mais
de uma vez.
2.3 A Regra da resolução
A regra da resolução é uma regra de inferência envolvendo duas cláusulas que
contenham literais sobe o mesmo átomo, mas de polaridade oposta.
Exemplo: p
p  (Resolução)
A  B
As fórmulas Ap ep são chamadas de resolventes, e a fórmula inferida
A B é chamada de resoluta, nessa inferência não ocorre à eliminação de suas
premissas, sendo assim, uma fórmula pode ser usada mais de uma vez como resolvente.
Quando as duas cláusulas contêm mais de um par de literais complementares, a
regra da resolução pode ser aplicada independentemente para cada par. Entretanto,
apenas o par de literais resolvidos pode ser removido, todos os outros permanecem na
cláusula resolvente.
Para definirmos a inferência por resolução, podemos inicialmente usar uma cláusula C,
sua negação é representada por C transformada no formato clausal, ou seja, se C = p,
C = {p}, e se, por exemplo, C = {p q   r}, C é o conjunto de cláusulas
unitárias C = {p, q, r}. Uma cláusula C pode ser inferida por resolução de um
conjunto de cláusulas , o que é representado por  
res,
se a partir do conjunto  U
{C}, por operações de resolução e contração pode-se obter a cláusula vazia. Portanto
o método de inferência por resolução é chamado de inferência por refutação (uma
refutação ou objeção, em lógica é uma razão que vai contra uma premissa, lema ou
conclusão), pois podemos inferir C de  se, a partir de  a negação de C, obtivermos
uma inconsistência.
Exemplo 1:
p

p
Exemplo 2:
Regra auxiliar da contração de clausulas:
p p q
p q
(contração)
Exemplo 3:
Representação na forma de conjuntos:
{(A B  C)  (A)  (A B C)  (A B)}
Transformando em cláusulas teremos:
= {[A, B, C], [A], [A, B, C], [A, B]}.
Resolução de = {[A, B, C], [A], [A, B, C], [A, B]}
1-A, B,C
2- A, B, C
3- A B
4-A, B
5- A
6-A
7- 
em 
em 
resolvente 1, 2
em 
resolvente 3, 4
em 
resolvente 5, 6.
Exemplo 4:
Considere a inferência p  s r,  s r res p r.
 (p r) = {p,r} e então procedemos a diversos passos de
resolução sobre o conjunto {p s r, s r, p,  r}:
p s r
p
s r
s r
Primeiro computamos
r r
r
r

O primeiro passo para a resolução entre p  s r e p gera s r, que é resolvido com
s r, obtendo-se r r, essa fórmula é então contraída e resolvida com r, chegando
finalmente a contradição, .
Essa técnica de resolução usa prova por contradição e é baseada no fato de que
qualquer sentença da lógica proposicional pode ser convertida para uma sentença
equivalente na forma normal conjuntiva.
A escolha dos resolventes gera distintas estratégias computacionais. Uma das
estratégias mais usadas é a tentativa de utilizar a resolução unitária o máximo possível.
A ideia básica do funcionamento do método por resolução, parte da observação
de que para mostrar que um determinado conjunto C não é uma possibilidade lógica, é
normalmente mais fácil mostrar que um conjunto maior C’, derivado de C, não é uma
possibilidade lógica.
3. Resolução Unitária
Resolução Unitária é aquela em que ao menos um dos resolventes é uma
cláusula unitária. A resolução unitária tem a vantagem de sempre gerar fórmulas de
tamanho menor que o resolvente não-unitário.
Exemplo: (p  s r),  s r res p r, com apenas resoluções unitárias
p s r
p
r
s r
 s r
s
r

r
A cláusula unitária r foi utilizada duas vezes por regra de contração de r r
no exemplo anterior. Nem sempre é possível fazer inferência com resoluções unitárias.
Em algumas referências na literatura, a resolução unitária é descrita como uma
resolução em que uma cláusula unitária deve ser negativa. O método apresentado
também é conhecido na literatura como propagação unitária ou BCP, boolean constraint
propagation (proposto por McAllester 1990).
4. Resolução Linear
Resolução Linear é aquela em que a fórmula resoluta de um passo deve ser
usada como resolvente do passo seguinte, de forma que a árvore de prova é degenerada
em uma linha, de forma que os ramos á direita são sempre constituídos de uma única
fórmula, o exemplo também se encaixa na resolução linear.
p s r
s r
p
s r
r r
r
r

Um dos desafios computacionais em termos da resolução é a diminuição do
espaço de busca, o fato de uma fórmula ter sido usada como resolvente em um
determinado passo da resolução não descarta a possibilidade de essa fórmula ser
utilizada como resolvente em algum outro passo da resolução. Além disso, muitos
possíveis resolventes geram fórmulas que nunca serão utilizadas na derivação final da
contradição, tornando-se fórmulas inúteis.
É necessária uma estratégia de restrição desse espaço de busca para aumentar a
eficiência da resolução.
A principal estratégia utilizada é o descarte de fórmulas por englobamento,
dadas duas cláusulas C e C`, dizemos que C engloba C` se todos os literais que ocorrem
em C também ocorrem em C`.
A estratégia de diminuição do espaço de busca de resolventes diz que, se temos
cláusulas C e C` tais que C  C` então podemos eliminar a cláusula englobada C`,
desde que o método usado para obter C´a partir de C garanta que os dois conjuntos são
satisfeitos pelas mesmas atribuições, podemos legitimamente trabalhar com C. No caso
da resolução unitária, a fórmula resoluta sempre engloba o resolvente não unário.
5. Exercícios
1- Mostrar que o passo da resolução é correto, ou seja, mostrar para toda valoração v
que, se v (A p) = v (B p) = 1, então necessariamente v (A ) =1, provar a
correção da regra de contração.
A p
B p
A 
sse
sse
V1 (p) = 1
V1 (A) = 1
V2 (p) = 1
V2 (B) = 1
2- Aplicar resolução: p  q, q  s  p s
p  q
p  s
 qs
3 – Prove por resolução: {(A  B  D), (A  B  C D), (B  C), (A),(C)
ADA  B  C D
AC
B C
AC A
C
C

4 – Contra-exemplo: p  q
p  q s
s, p  q r s,  qr  p
p q rs
p  q rq r
p  rp
r
5 – Contra-exemplo: : s  p, r  r, p  r , r  p, p p  s
Primeiramente removem-se as tautologias r  r, p p.
s
s p
r p
p
p  r
p
Como provou que o seqüente é falsificável atribui-se a valoração que a justifique:
r
v(p) = 1
v(r) = 1
v(s) = 0
6. Conclusão
O estudo da resolução na forma proposicional nos levou ao entendimento e
compreensão do método da resolução.
Sabendo que, para utilização da resolução proposicional há a necessidade de
transformação da fórmula para forma normal conjuntiva, examinando- as duas a duas
para provar tal fórmula têm como ferramenta o uso de resolventes e resolutos até
chegar ao símbolo  (cláusula vazia). Se a fórmula atingir esse ponto final, significa que
o seqüente em prova é válido, caso contrário, a resolução termina provando o seqüente
como falsificável, não válido.
7. Referências

Silva, Flávio S. C. da; FINGER, Marcelo; MELO, Ana C. V. De.Lógica para
Computação. São Paulo: Thomson Learning 2006

Souza, João N. de. Lógica para Ciência da Computação. Campus 2002

www.cos.ufrj.br/~sheila/cap04_Resolucao_Proposicional.doc

http://pt.wikipedia.org/wiki/Princ%C3%ADpio_da_resolu%C3%A7%C3%A3o

http://en.wikipedia.org/wiki/J._Alan_Robinson
Download