Representação Clausal das Fórmulas

Propaganda
REPRESENTAÇÃO
CLAUSAL DAS
FÓRMULAS
DEFINIÇÃO FORMAL
 A forma normal clausal é usada em
programação lógica e em diversos sistemas
provadores de teoremas. A fórmula na forma
clausal é um conjunto de cláusulas,
interpretadas como uma conjunção. Uma
clausa é um conjunto quantificado universal e
implícito de literais, interpretados como uma
disjunção.
CONVERSÃO DE UMA FÓRMULA PARA A
FORMA CLAUSAL
 Dada uma fórmula “P” no Cálculo de Predicados,
sua representação clausal “S” é obtida da
seguinte forma:
1. Eliminar variáveis livres: Se “P” contiver uma
variável livre, substituir “P” por “ ∃ x(P)”. Este
passo deve ser repetido até que a fórmula
não contenha mais variáveis livres.
VARIÁVEIS LIVRES & LIGADAS
 Sejam os seguintes enunciados:
1. Todo primata é mamífero.
2. Existe um ser humano que é canibal.
3. Para todo ser humano x existe um ser humano y
tal que y é mãe de x.
 Considerando o universo dos seres humanos
pode-se definir os seguintes predicados:
 primata(x)
 mamifero(x)
canibal(x)
mae(x,y)
VARIÁVEIS LIVRES & LIGADAS
 Os enunciados do slide anterior podem ser
descritos da seguinte forma:
1. ∀x(primata(x) → mamifero(x))
2. ∃x canibal(x)
3. ∀x ∃y mae(x,y)
VARIÁVEIS LIVRES & LIGADAS
 Onde:
 A variável ligada está associada a um quantificador e
aparece dentro do escopo desse quantificador. Por
exemplo em 1 o escopo de “ ∀ ” é x(primata(x) →
mamifero(x)). Em 3, o escopo de “ ∀ ” é ∃ y mae(x,y).
 A variável dita livre quando não está associada a
nenhum quantificador. Por exemplo, em ∀x p(x,y), “y”
é uma variável livre.
CONVERSÃO DE UMA FÓRMULA PARA A
FORMA CLAUSAL
2. Eliminar quantificadores redundantes: Eliminar
todo quantificador “∀ x” e “∃ x” que não
contenha nenhuma ocorrência livre de “x” no
seu escopo – isto é, eliminar todo
quantificador desnecessário.
CONVERSÃO DE UMA FÓRMULA PARA A
FORMA CLAUSAL
3. Renomear as variáveis quantificadas mais
do que uma vez: Se uma mesma variável é
governada por dois quantificadores,
devemos substituir a variável de um deles e
de todas as suas ocorrências livres no
escopo do quantificador por uma nova
variável que não ocorra na fórmula. Este
passo deverá ser repetido até que todos os
quantificadores governem variáveis
diferentes .
CONVERSÃO DE UMA FÓRMULA PARA A
FORMA CLAUSAL
4. Elimine os conectivos “” e “  ”:
 Substitua:
 (Q  R) por (¬Q ∨ R).
 (Q  R) por (¬Q ∨ R) ∧ (Q ∨ ¬R)
 ¬ (Q  R) por (Q ∧ ¬R)
 ¬ (Q  R) por (Q ∧ ¬R) ∨ (¬ Q ∧ R)
CONVERSÃO DE UMA FÓRMULA PARA A
FORMA CLAUSAL
5. Mova “¬” para o interior da fórmula:
 Até que cada ocorrência de “¬” preceda
imediatamente uma fórmula atômica, substitua:
 ¬ ∀ x(Q) por ∃ x(¬Q)
 ¬ ∃ x(Q) por ∀ x (¬Q)
 ¬(Q ∧ R) por (¬Q ∨ ¬R)
 ¬(Q ∨ R) por (¬Q ∧¬R)
 ¬¬Q por Q
CONVERSÃO DE UMA FÓRMULA PARA A
FORMA CLAUSAL
6. Mova os quantificadores para o interior da
fórmula.
Substitua, caso x não seja livre em R,
∀
∀
∀
∀
x(Q
x(R
x(Q
x(R
∨
∨
∧
∧
R)
Q)
R)
Q)
por
por
por
por
∀
R
∀
R
x(Q) ∨ R,
∨ ∀ x(Q),
x(Q) ∧ R,
∧ ∀ x(Q),
∃ x(Q ∨ R) por ∃ x(Q ) ∨ R
∃ x(R ∨ Q) por R ∨ ∃ x(Q)
∃ x(Q ∧ R) por ∃ x(Q) ∧ R
∃ x(R ∧ Q) por R ∧ ∃ x(Q)
CONVERSÃO DE UMA FÓRMULA PARA A
FORMA CLAUSAL
7. Eliminar os quantificadores existenciais:
Por exemplo, na fórmula ∀y (∃x p (x,y)) o valor
de x depende do valor de y, pois está dentro do
escopo de y. Pode-se dizer que existe uma
função g(y) que calcula o valor de x em relação
a y. Essa função é chamada de Skolem.
FORMA NORMAL SKOLEM
 Essa forma elimina os quantificadores existenciais de
uma Forma Prenex obtendo uma generalização, ou
seja, uma fórmula de primeira ordem está na forma
normal de Skolem se contiver somente quantificadores
universais.
 As fórmulas de primeira ordem podem ser convertidas
para a forma normal de Skolem por meio do processo
chamado de skolemização. A fórmula obtida deste
processo não é necessariamente equivalente a
original, mas é satisfatível se, e somente se, a original
também for.
FORMA NORMAL SKOLEM
 A skolemização é feita substituindo cada variável y
quantificada existencialmente , por um termo 𝑓(x 1 ,
... , x n), no qual o símbolo da função 𝑓 é uma nova
função em que não há outra ocorrência dela na
fórmula.
 A função 𝑓 introduzida nesse processo é conhecida
como função de Skolem, o termo é dito termo de
Skolem.
CONVERSÃO DE UMA FÓRMULA PARA A
FORMA CLAUSAL
7. Eliminar os quantificadores existenciais:
A partir de agora a fórmula pode ser escrita da
seguinte forma: ∀y p(g(y),y), ou seja eliminou-se
o quantificador existencial.
CONVERSÃO DE UMA FÓRMULA PARA A
FORMA CLAUSAL
8. Obter a Fórmula Normal Prenex e remover os
quantificadores universais:
Neste ponto do procedimento não existem mais
quantificadores existenciais e cada
quantificador universal possui sua própria
variável. Podemos “mover” todos os
quantificadores universais para o início da
fórmula. Desta forma fórmula estará na FNP.
CONVERSÃO DE UMA FÓRMULA PARA A
FORMA CLAUSAL
9. Colocar a matriz da FNP na forma conjuntiva:
Qualquer matriz pode ser escrita como uma
conjunção de um conjunto finito de disjunções
de literais – forma conhecida como forma
normal conjuntiva. Então até que a matriz da
fórmula seja uma conjunção de disjunções ,
substituir: (P  Q)  R por (P  R)  (Q  R.)
CONVERSÃO DE UMA FÓRMULA PARA A
FORMA CLAUSAL
10. Eliminar os símbolos ^ :
Pode-se agora eliminar as ocorrências
explícitas dos símbolos ^, substituindo-se
expressões da forma (X1 ^X2) pelo conjunto de
wffs {X1, X2}. O resultado de repetidas
substituições é um conjunto de wffs cada uma
delas sendo uma disjunção de literais – uma
cláusula.
CONVERSÃO DE UMA FÓRMULA PARA A
FORMA CLAUSAL
11. Renomear variáveis:
Símbolos variáveis podem ser renomeados de
forma que um símbolo variável não compareça
em mais do que uma cláusula. Deve ser
lembrado que x (p(x)  q(x)) é equivalente a
(x p(x)  y q(y)).
CONVERSÃO DE UMA FÓRMULA PARA A
FORMA CLAUSAL
Exemplo 01: Teorema de Representação Clausal
 Seja P a entrada e S a saída do Algoritmo de
Representação Clausal. Então, P é satisfatível se e
somente se S é satistatível.
 Corolário:
 O problema da validade é redutível ao problema da
insatisfatibilidade para conjuntos de cláusulas.
CONVERSÃO DE UMA FÓRMULA PARA A
FORMA CLAUSAL
Exemplos:
Seja P a fórmula abaixo:
 x y(chama(x,y)→((∃u(programa(y,u))^(∃u(programa(y,u)))
Aplicaremos as transformações acima a P da seguinte forma:
 Passos 1 e 2: Não são necessários pois P não possui
variáveis livres ou quantificadores redundantes.
CONVERSÃO DE UMA FÓRMULA PARA A
FORMA CLAUSAL
 Passo 3: Renomeie u pois u ocorre quantificada
mais de uma vez:
x y(chama(x,y) → ((∃u(programa(y,u))^(∃v(programa(y,v)))
 Passo 4: Elimine “ → ”:
 x  y(¬chama(x,y) v ((∃ u(programa(y,u))^(∃ v(programa(y,v)))
CONVERSÃO DE UMA FÓRMULA PARA A
FORMA CLAUSAL
 Passo 5: Não é necessário mover “¬” para o
interior da formula pois a única ocorrência de
“¬” precede imediatamente uma fórmula
atômica.
 Passo 6: Não é necessário pois a ultima
fórmula acima não permite mover
quantificadores.
CONVERSÃO DE UMA FÓRMULA PARA A
FORMA CLAUSAL
 Passo7: Elimine os quantificadores existenciais da seguinte
forma: a subfórmula “( ∃ u(programa(y,u))” é a subfórmula
mais a esquerda começando por um quantificador existencial.
Como “x” é a única variável livre desta subfórmula, substitua
“u” por “f(x)”, onde “f” é um novo símbolo funcional, obtendo:
 x  y(¬chama(x,y) v ((∃ u(programa(y,u))^(∃ v(programa(y,v)))
Da mesma forma, substitua “v” por “g(y)” é um novo símbolo
funcional, obtendo:
 x  y(¬chama(x,y) v (programa(x,f(x))^(programa(y,g(y)))
CONVERSÃO DE UMA FÓRMULA PARA A
FORMA CLAUSAL
 Passo 8: Todos os quantificadores universais já estão à
esquerda.
 Passo 9: Obtenha a forma normal conjuntiva:
xy((¬chama(x,y) v programa(x,f(x)))^(¬chama(x,y) v
programa(y,g(y)))
CONVERSÃO DE UMA FÓRMULA PARA A
FORMA CLAUSAL
 A representação clausal de P será então compostas das
cláusulas:
¬chama(x,y) programa(x,f(x))
¬chama(x,y) programa(y,g(y))
EXEMPLOS ADICIONAIS
Download