Formas Normais - DAINF

Propaganda
Formas Normais
Dalton E. dos Santos, Kelvin E. Nogueira da Silva, Jorge L. dos Santos Ramos Jr.
Departamento de Informática – Universidade Tecnológica Federal do Paraná (UTFPR)
CEP: 80230-901 – Curitiba – PR – Brasil
[email protected], [email protected], [email protected]
Resumo. Este trabalho, desenvolvido para a disciplina de Lógica para
Computação, tem como objetivo esclarecer Formas Normais; tanto a Forma
Normal Conjuntiva (FNC), quanto a Forma Normal Disjuntiva (FND). Outros
temas como a Cláusula de Horn e alguns princípios da lógica proposicional
também são abordados para melhor compreensão das Formas Normais. A fim
de justificar a importância desses estudos, demonstrações práticas e teóricas
também serão discutidas.
1. Conceitos básicos
Antes de iniciar o estudo sobre Formas Normais é necessária uma breve explanação
sobre algumas definições básicas da Lógica Proposicional.
1.1. Literal
Um literal é toda variável proposicional (fórmula atômica) ou sua negação. Exemplos de
literais: p , ¬p , A , ¬B .
1.2. Conjunção Fundamental
Uma Conjunção Fundamental é a conjunção de dois ou mais literais, sem haver repetição
de literais. Exemplos de Conjunções Fundamentais: α1 ∧ α 2 ∧ ¬α 3 ∧ K ∧ α n (n ≥ 1) .
1.3. Cláusula
Cláusula é a disjunção de dois ou mais literais, sem que haja repetição deles. Exemplos
de Cláusulas: γ1 ∨ γ 2 ∨ ¬γ 3 ∨ K ∨ γ n (n ≥ 1) .
1.3.1. Cláusula de Horn
Em homenagem a Alfred Horn (matemático americano que notou a importância dessas
fórmulas 1918–20011), quando em uma cláusula há no máximo um literal positivo
(verdadeiro), essa cláusula será chama de Cláusula de Horn. Exemplo de uma Cláusula
de Horn: ¬γ1 ∨ ¬γ 2 ∨ ¬γ 3 ∨ K ∨ γ n , que é logicamente equivalente a:
(γ1 ∧ γ 2 ∧ γ 3 ∧ K) → γ n .
Há três tipos dessas cláusulas, a definida (ou regra), a objetivo (ou restrições) e a
fato. A primeira consiste em uma fórmula de Horn com um literal positivo, a objetivo,
sem nenhum literal positivo e a última, uma cláusula unitária positiva. Todas as cláusulas
de Horn estão na forma normal conjuntiva (FNC), a qual será tratada mais adiante. É
importante notar que nem todas as fórmulas podem ter uma equivalente no formato da
cláusula de Horn, basta que se tenha um ou mais literais positivos que não possam ser
simplificados. Exemplo de cláusula de Horn definida: ¬γ1 ∨ ¬γ 2 ∨ γ 3 . Exemplo de
cláusula de Horn objetivo: ¬γ1 ∨ ¬γ 2 ∨ ¬γ 3 . Exemplo de cláusula de Horn fato: p , q .
O principal objetivo das cláusulas de Horn é facilitar a verificação da
satisfatibilidade booleana de uma fórmula, sem construir tabelas-verdade. Esse problema
é conhecido como HORNSAT e é considerado um problema P-completo. Em
programação lógica essas cláusulas são de fundamental importância para o desempenho
dos programas e são as únicas aceitas em Prolog.
1.4. Fórmula Normal
Uma formula normalizada será ou uma conjunção de cláusulas ou uma cláusula de
conjunções. Ela pode ser também só uma cláusula ou conjunção fundamental. Exemplos
(n ≥ 1) e
de fórmulas normalizadas: Se
A = {α1 ∧ α 2 ∧ ¬α 3 ∧ K ∧ α n }
B = {γ1 ∨ γ 2 ∨ ¬γ 3 ∨ K ∨ γ n } (n ≥ 1) , então A , B , A ∨ A , A ∧ A , A ∨ B , A ∧ B ,
B ∧ B são fórmulas normalizadas.
2. Forma Normal Disjuntiva
Com base nos exemplos supracitados, uma fórmula estará na forma normal disjuntiva
quando for: A ∨ A ou apenas A . Toda fórmula proposicional pode ser transformada em
outra fórmula logicamente equivalente na FND. Para isso é necessário usar as regras de
equivalências lógicas: a Lei da Dupla Negação, as Leis de DeMorgan, e a
Distributividade. Porém, é importante ressaltar que dependendo da fórmula a ser
transformada, a sua forma na FND pode ser exponencialmente maior que a fórmula
original. As fórmulas na FND só podem ter os conectivos lógicos ¬ , ∨ e ∧ .
Uma fórmula na FND será tautológica se um elemento da disjunção for
tautológico. Ela será insatisfazível se todos os elementos de disjunção forem
insatisfazíveis.
Outra representação de uma fórmula na FND é2:
n
A = ∨ L1 ∧ K ∧ L ni
i =1
3. Forma Normal Conjuntiva
Analogamente a FND, pode-se dizer que uma fórmula esta na forma normal conjuntiva
quando tiver o formato: B ∧ B ou apenas B . Toda fórmula proposicional pode ser
transformada em outra fórmula logicamente equivalente na FNC. Para isso é necessário
usar as regras de equivalências lógicas: a Lei da Dupla Negação, as Leis de DeMorgan, e
a Distributividade. Porém, vale ressaltar que em algumas fórmulas, quando
transformadas na sua forma na FNC, podem ser exponencialmente maiores que a fórmula
original. As fórmulas na FNC só podem ter os conectivos lógicos ¬ , ∨ e ∧ .
Uma fórmula na FNC será tautológica apenas se cada elemento da conjunção for
tautológico. Ela será insatisfazível se um elemento da conjunção for insatisfazível.
Outra maneira de representar uma fórmula na FNC é assim2:
m
A = ∧ L1 ∨ K ∨ L mk
k =1
4. Forma Normal Negativa
Uma fórmula está na forma negativa se as negações ( ¬ ) estão sempre em literais e se há
apenas os conectivos lógicos não ¬ , ∧ e ∨ . Um exemplo de uma fórmula na forma
normal negativa é: (p ∧ q ) ∨ (¬q ∧ ¬p ) . Já (p ∧ q ) ∨ ¬(q ∨ p ) não está na forma normal
negativa. Usando os Teoremas de DeMorgan e a eliminação da dupla negação, é possível
deixar qualquer fórmula que contenha apenas {¬, ∧, ∨} na forma normal negativa.
No caso da Lógica clássica, toda fórmula pode ser posta nessa forma.
5. Métodos de Normalização de Fórmulas
Como já visto anteriormente, as fórmulas normalizadas admitem apenas os conectivos
lógicos ¬ , ∨ e ∧ , portanto, algumas estratégias são usadas para gerar uma fórmula
normalizada logicamente equivalente a outra fórmula não normalizada. É possível fazer
isso usando tabelas-verdade ou por equivalência.
Na mudança por equivalência, é necessário seguir uma ordem de mudanças nos
operadores lógicos. Primeiro deve-se eliminar as equivalências lógicas (exemplo:
A ⇔ B ≡ (A → B ) ∧ (B → A ) ), depois as implicações (exemplo: A → B ≡ ¬A ∨ B ), em
seguida distribuir as negações, usando as leis de DeMorgan (exemplo:
¬(A ∧ B ) ≡ (¬A ∨ ¬B ) ), eliminar as duplas negações (exemplo: ¬¬A ≡ A ), e, por
último, redistribuir os conectivos ∨ e ∧ usando a distributividade, associatividade e
comutatividade destes conectivos. Exemplo de normalização de uma fórmula para a
FNC3:
p → (q ∧ ¬(r ∨ p ))
¬p ∨ (q ∧ ¬(r ∨ p ))
¬p ∨ (q ∧ (¬r ∧ ¬p ))
¬p ∨ (q ∧ ¬r ∧ ¬p )
(¬p ∨ q ) ∧ (¬p ∨ ¬r ) ∧ (¬p ∨ ¬q )
(¬p ∨ q ) ∧ (¬p ∨ ¬r ) ∧ ¬p
O processo é semelhante quando se deseja passar uma fórmula para a FND, a
diferença fica na ordenação dos conectivos ∨ e ∧ do último passo.
5.1. Leis de DeMorgan
As Leis de DeMorgan (matemático e lógico britânico 1806–18714) são usadas para
distribuir as negações ( ¬ ), permite passar uma fórmula para a FNC ou para FND, além
de ser usada para simplificar circuitos lógicos, entre outras aplicações na lógica
matemática. Exemplos de distribuições do
¬(A ∧ B ) ≡ (¬A ∨ ¬B ) ,
¬:
¬(A ∨ B ) ≡ (¬A ∧ ¬B ) .
5.2. Eliminação da Dupla Negação
Na lógica proposicional, como cada átomo só recebe um valor verdade (falso ou
verdadeiro) é possível eliminar as negações, quando essas se repetem em um número par,
por exemplo: V(A ) = 0 , então ¬A ≡ ¬¬A ≡ ¬¬¬¬A . Na lógica intuicionista isso não
acontece, pois ela é mais abrangente: “Uma sentença como Não é verdade que não está
chovendo é mais fraca que Está chovendo. Esta última sentença requer uma prova de
que está chovendo, enquanto a primeira requer somente uma prova de que a suposição
da chuva não seja contraditória”5.
5.3. Distributividade de conectivos
Há algumas regras que servem para converter OU ( ∨ ) em E ( ∧ ) ou vice-versa em
fórmulas lógicas. Isso se torna útil para a normalização de fórmulas na FNC ou na FND.
Basicamente essas são as duas demonstrações dessas regras:
A ∧ (B ∨ C ) ≡ (A ∧ B ) ∨ (A ∧ C ) (FND)
A ∨ (B ∧ C ) ≡ (A ∨ B ) ∧ (A ∨ C ) (FNC)
5.4. Tabelas-verdade
Outro método para normalizar uma fórmula é através de tabelas verdades. Primeiro é
necessário fazer a tabela-verdade da fórmula, como no exemplo abaixo para
¬p ∨ q → r 6:
Tabela 1. Tabela-verdade para a formula ¬p ∨ q → r
p
q
r
¬p ∨ q → r
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
Depois de identificar as linhas falsificáveis, proceder da seguinte forma: os
átomos com o valor verdadeiro (1) devem ser modificados para a sua negação; os que já
estavam com o valor falso (0) permanecem iguais; todos os átomos de uma mesma
interpretação são conectados por ∨ e, por fim, cada interpretação é conectada com ∧ .
Desse modo, o exemplo dado fica assim: Linha 2: (¬p ∨ ¬q ∨ r ) , Linha 6: (p ∨ ¬q ∨ r ) ,
Linha 8: (p ∨ q ∨ r ) e, após concatenar as interpretações, o resultado será uma fórmula
na FNC: (¬p ∨ ¬q ∨ r ) ∧ (p ∨ ¬q ∨ r ) ∧ (p ∨ q ∨ r ) .
Analogamente ao exemplo acima, também é possivel produzir uma fórmula na
FND atráves de tabelas-verdades. Primeiro se constrói a tabela, depois identificam-se as
linhas com resultado verdadeiro (1); os átomos com o valor falso (0) devem ser
modificados para a sua negação; os que já estavam com o valor verdadeiro (0)
permanecem iguais; todos os átomos de uma mesma interpretação são conectados por ∧
e, por fim, cada interpretação é conectada com ∨ .
5.5. Transformação em FNC ou FND com Adição de Novos Átomos
A normalização de uma fórmula para FNC ou FND muitas vezes é acompanhada pela
inconveniencia de se obter uma nova fórmula de tamanho exponencialmente maior que a
primeira. Nesse caso, é possível usar o artifício da Adição de Novos Átomos para que
seu tamanho aumente apenas de forma linear.
Para tanto, deve-se executar integralmente os passos de normalização citados
anteriormente (eliminação da implicação, leis de DeMorgan e eliminação da dupla
negação), a única mudança será na distributividade das conjunções ou disjunções, pois,
um novo átomo será adicionado nessa parte, como pode se verificar no exemplo abaixo2:
Fórmula que já passou pelos primeiros passos de normalização: X ∨ (Y ∧ Z)
Substituindo (Y ∧ Z) por um novo átomo p temos que:
X ∨ (Y ∧ Z) ≡ (X ∨ p ) ∧ (¬p ∨ Y ) ∧ (¬p ∨ Z) ∧ (¬Y ∨ ¬Z ∨ p )
A primeira cláusula da fórmula acima é imediata, porém, para achar as outras, é
preciso normalizar a equivalência lógica p ↔ (Y ∧ Z ) , a qual terá como resultado
(¬p ∨ Y ) ∧ (¬p ∨ Z) ∧ (¬Y ∨ ¬Z ∨ p) . Desse modo, a transformação da fórmula original
para a FNC estará concluída. E, de modo semelhante, pode-se transformar uma fórmula
para a FND.
6. Notação de Kowalsky
Além da notação tradicional da lógica proposicional, as fórmulas na FNC ou na FND
podem ser representadas na notação de Kowalsky (lógico e cientista de computação
estadunidiense 19417). Para isso é necessário separar os literais positivos dos negativos,
deixando os positivos à esquerda, como em p ∨ q ∨ ¬r , o que é logicamente equivalente
a escrever p, q ← r , na notação de Kowalsky, ou ainda r → (p ∨ q ) . Outro exemplo é:
s ∨ ¬p ∨ ¬q , que fica: s ← p, q ou, na lógica proposicional: (p ∧ q ) → s .
Através dos exemplos, pode-se perceber que, na notação de Kowalsky, a virgula
( , ) a esquerda de ← representa uma disjunção e a direita, uma conjunção. Essa
disjunção é chamada de conclusão e a conjunção é chama de premissa ou condição.
7. Utilidades da Normalização
A normalização de fórmulas é importante para padronizar a notação, já que é possível
escrever fórmulas logicamente equivalentes de muitas maneiras diferentes. As fórmulas
lógicas na FND são usadas em circuitos lógicos. Há dispositivos físicos idealizados,
chamados de portas lógicas, os quais utilizam funções relacionadas á conjunção,
disjunção e negação.
Qualquer função matemática descrita por uma tabela verdade pode ser
especificada por uma fórmula na FNC ou FND. Em Programação lógica, a simplificação
ou padronização de expressões resulta em um melhor desempenho ao verificar a
satisfatibilidade de uma fórmula. O mesmo ocorre em circuitos lógicos, quanto menor a
fórmula lógica menor o circuito.
7.1. Aplicação em Portas Lógicas8
Portas Lógicas são pequenos circuitos padronizados, freqüentemente presentes em
dispositivos eletrônicos. Elas têm a finalidade de efetuar operações lógicas entre um ou
mais sinais de entrada e obter um único sinal de saída, já que esses sinais são digitais, ou
seja, associados aos valores binários 0 (ou falso) e 1 (ou verdadeiro).
Os tipos de portas lógicas são: AND (conjunção), OR (disjunção), NOT
(negação), NAND (negação da conjunção), NOR (negação da disjunção), XOR
(disjunção exclusiva) e XNOR (negação da disjunção exclusiva ou coincidência). Cada
um possui um símbolo padronizado para sua representação em projetos de circuitos
eletrônicos.
Dadas as entradas A e B, suponha que queiramos que à saída C seja atribuído o
valor verdade de A → ¬B . Nesse caso, será necessário executar métodos de
normalização na fórmula para que ela contenha somente operações que as portas lógicas
possam fazer (o que não é o caso da implicação):
A → ¬B ≡ ¬A ∨ ¬B
¬A ∨ ¬B contém somente conectivos lógicos que possuem uma porta lógica
correspondente, logo já resolveria o problema. Porém, se pode ainda usar as Leis de
DeMorgan para simplificá-la:
¬A ∨ ¬B ≡ ¬(A ∧ B)
¬(A ∧ B ) é uma negação de uma conjunção, logo a situação inicial pode ser
tratada como um NAND de entradas A e B e saída C. A representação simbólica seria:
A
B
C
Figura 1. Representação no padrão da norma ANSI7 de uma Porta Lógica do
tipo NAND com entradas A e B e saída C.
8. Conclusão
A realização desse trabalho foi de grande importância para compreender qual a utilidade
das normalizações. Além disso, destacam-se os seguintes pontos: toda fórmula
proposicional bem formulada pode ser escrita na FNC ou na FND, porém, algumas
fórmulas crescerão exponencialmente de tamanho; há dois principais métodos para a
normalização de uma fórmula, através de tabelas-verdade, o que exige muito trabalho
manual, ou através da substituição de alguns conectivos lógicos, exigindo maior trabalho
intelectual; a cláusula de Horn é uma fórmula especial na FND cuja satisfatibilidade pode
ser rapidamente encontrada.
Referências
1 <http://en.wikipedia.org/wiki/Alfred_Horn>. Acesso em: 22 mar. 2009, 19:35.
2 SILVA, Flávio Soares Corrêa da; FINGER, Marcelo; MELO, Ana Cristina Vieira de.
Lógica para computação. São Paulo: Thomson, 2006. 234 p. ISBN 85-221-0517-0.
3 KAESTNER, Celso Antônio Alves. Lógica para Computação.
<http://www.dainf.cefetpr.br/~kaestner/Logica/AlgoritmodeWang.ppt>. Acesso em:
19 mar. 2009, 15:12.
4 <http://pt.wikipedia.org/wiki/Augustus_De_Morgan>. Acesso em: 20 mar. 2009,
16:09.
5 < http://pt.wikipedia.org/wiki/Dupla_nega%C3%A7%C3%A3o>. Acesso em: 20 mar.
2009, 16:42.
6 <http://labic.icmc.usp.br/didactic-material/logic/FormasNormais.pdf>. Acesso em: 20
mar. 2009, 17:12.
7 <http://en.wikipedia.org/wiki/Robert_Kowalski>. Acesso em 22 mar. 2009, 21:12.
8 <http://pt.wikipedia.org/wiki/Portas_l%C3%B3gicas>. Acesso em 23 mar. 2009,
20:57.
Outras referências:
<http://pt.wikipedia.org/wiki/Forma_normal_disjuntiva>
<http://pt.wikipedia.org/wiki/Forma_normal_clausal>
<http://pt.wikipedia.org/wiki/Forma_normal_conjuntiva>
<http://pt.wikipedia.org/wiki/Cl%C3%A1usula_de_Horn>
<http://pt.wikipedia.org/wiki/Forma_normal_alg%C3%A9brica>
<http://www.inf.pucrs.br/~alfio/Logica/lec04-prop-equiv.pdf>
<http://200.17.137.110:8080/licomp/Members/cicero/logica-e-programacaologica/turma-lc1-2007.2/arquivos/5-logica_proposicional3.ppt>
<http://www.dcc.fc.up.pt/~nam/aulas/0405/lc/teoricas/nlc.pdf>
Os endereços eletrônicos acima foram acessados em 20 mar. 2009.
Download