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= {{pqr}, {pq}, {p}. As vírgulas mais internas representam o conectivo e as mais externas representam o conectivo (pq 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: LLC 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 Ap ep 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 qs 3 – Prove por resolução: {(A B D), (A B C D), (B C), (A),(C) ADA B C D AC B C AC A C C 4 – Contra-exemplo: p q p q s s, p q r s, qr p p q rs p q rq r p rp 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