55
Lógica Proposicional SAT e Custo Computacional

Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional = (a b) ( a b c) Determinar se é satisfazível

Embed Size (px)

Citation preview

Page 1: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Lógica Proposicional

SAT e Custo Computacional

Page 2: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

O problema SAT Dada uma fórmula proposicional

= (a b) ( a b c) Determinar se é satisfazível

Problema de decisão Para n símbolos proposicionais, são

necessárias 2n linhas numa tabela verdade e 2m+1 colunasa

b b

c c c c

0

0 0

00 001

1 1

1 1 1

1

Page 3: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Aplicações Um “resolvedor de SAT” é a principal

ferramenta computacional para: Em Inteligência Artificial:

Programação em lógica Provadores de teoremas

Em Projeto Automático de Componentes Eletrônicos:

Teste e Verificação Síntese

Escalonamento Planejamento …

Page 4: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Custo Computacional O custo (determinístico) de SAT é dito

exponencial Não-determinísticamente, o custo de SAT cai

para cerca de 2m+1 2m+1 é o número de sub-proposições, por

indução m= no. de conectivos da fórmula Custo não-deterministicamente polinomial (NP) Testam-se apenas algumas linhas da tabela

Page 5: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Complexidade Computacional

Criação da classe de problemas NP-CompletoS. A. Cook, The complexity of theorem proving

procedures, Proceedings, Third Annual ACM Symp. on the Theory of Computing,1971, 151-158

Abordagem mais simples: B. Hayes, Can’t get no satisfaction, American

Scientist, Vol. 85, nr. 2, Mar-Apr 1997, 108-112

Page 6: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Complexidade Computacional (cont.) Algoritmos deterministicamente

polinomiais: logarítmico, linear quadrático, cúbico (log n, n, n**2, n**3, …, n**500,…)

Algoritmos exponenciais (ou não-deterministicamente polinomiais): 2**n,n**n,n**log n

Algoritmos exponenciais são mais lentos que os polinomiais para valores altos de n

Polinomiais são preferíveis!

Page 7: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Complexidade e SAT 1-SAT:linear (um literal por

subfórmula) 2-SAT: linear (com fases)

(x11 OR x12) AND(x21 OR x22) AND(x31 OR x32) AND…

3-SAT: NP-completo (x11 OR x12 OR x13) AND

(x21 OR x22 OR x23) AND(x31 OR x32 OR x33) AND ...

O problema são os conflitos, que diminuem a satisfabilidade!

Não existe um algoritmo polinomial para todas as instâncias do problema SAT, a não ser que P = NP

Vira deterministicamente polinomial quando as sentenças viram

2-SAT (no máximo 2 símbolos proposicionais por fórmula)

Cláusula de Horn – 1-SAT (No máximo 1 símbolo proposicional positivo em todas as sub-fórmulas)

Page 8: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Resolvedores de SAT

Davis-Puttnan DPLL Resolução

Todas elas exigem que a fórmula esteja na forma normal conjuntiva

Page 9: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Forma normal conjuntiva Uma fórmula está na forma normal

conjuntiva (fnc ou CNF, em inglês) se é uma conjunção de disjunções de literais

F é da forma F1 ^ F2 ^ ... ^ Fn, onde Fi é uma disjunção (da forma

A1 v A2 v ... v An ) e Ai é um literal

Ex: G=(PvQ) ^ (RvQvP) ^ (PvS)

Page 10: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Algoritmos para obter CNF usando leis (repetidamente) 1 -Leis de eliminação

PQ = (PvQ) P Q = (P Q)^(Q P)

2 -Lei da negação (H) H

2 -Leis de De Morgan (PvQ) = P ^ Q (P^Q) = P v Q

3 -Leis distributivas: F v (G^H) = (FvG) ^ (FvH) F ^ (GvH) = (F^G) v (F^H) (não usada para

CNF)

Page 11: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Notação na forma de conjuntos H=(PvQvR)^(PvQ)^(PvP) Representação na forma de

conjuntos: H={[P,Q,R],[P,Q],[P]} Note que

(PvQvR) = [P,Q,R] (PvP)=[P]

Não é necessário representar duplicidade na forma de conjuntos

Page 12: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Cláusulas e literais complementares

Cláusula em lógica proposicional é uma disjunção de literais Usando a notação de conjuntos: C1=[P,Q,R], C2=[P,Q], C3=[P]

Dois literais são complementares quando um é a negação do outro

Page 13: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Resolvente de 2 cláusulas Supondo 2 cláusulas C1=[A1,..., An]

e C2=[B1, ..., Bn], com literais complementares A, um conjunto de literais em C1, tal

que -A, um conjunto de literais

complementares a A, estão em C2 Resolvente de C1 e C2: Res(C1,C2)=(C1-A)U(C2- -A) Res(C1,C2) pode ser {}

Resolvente vazio ou trivial

Page 14: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Exemplo de resolvente

C1=[P,Q,R] e C2=[P,R] Res (C1,C2) = [Q,R], que também

é uma cláusula D1=[P,Q] e D2=[P,Q] Res (D1,D2) = {}, que também é

uma cláusula

Page 15: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

a + b + g + h’ + fa + b + g + h’

Idéia básica em todos os algoritmos: Resolução Resolução de um par de cláusulas com exatamente

UMA variável incompatível

a + b + c’ + f g + h’ + c + f

E se tivermos mais de uma variável incompatível?

Page 16: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

(a + b)

(a + b’) (a’ + c) (a’ + c’)

Algoritmo de Davis Putnam

M .Davis, H. Putnam, “A computing procedure for quantification theory", J. of ACM, Vol. 7, pp. 201-214, 1960

Escolher uma variável a cada iteração para resolução até elas acabarem

INSAT se aparecer a cláusula vazia Descarta as cláusulas resolvidas depois de cada iteração

(a + b + c)

(b + c’ + f’)

(b’ + e)

(a + c + e)(c’ + e + f’)

(a + e + f’)

(a’ + c) (a’ + c’)

(c)

(c’)

( )SATINSAT

(a)

Pode explodir a memória!!!

Page 17: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Algoritmo DPLL

(a + c + d)(a + c + d’)

(a + c’ + d)(a + c’ + d’)

(a’ + b + c)

(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)

Page 18: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Algoritmo DPLL

(a + c + d)(a + c + d’)

(a + c’ + d)(a + c’ + d’)

(a’ + b + c)

(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)

a

Page 19: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Algoritmo DPLLa

0(a + c + d)(a + c + d’)

(a + c’ + d)(a + c’ + d’)

(a’ + b + c)

(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)

Decisão

Page 20: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Algoritmo DPLLa

0(a + c + d)(a + c + d’)

(a + c’ + d)(a + c’ + d’)

(a’ + b + c)

(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)

b

0 Decisão

Page 21: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Algoritmo DPLLa

0(a + c + d)(a + c + d’)

(a + c’ + d)(a + c’ + d’)

(a’ + b + c)

(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)

b

0

c

0 Decisão

Page 22: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Algoritmo DPLLa

0(a + c + d)(a + c + d’)

(a + c’ + d)(a + c’ + d’)

(a’ + b + c)

(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)

b

0

c

0

d=1

c=0

(a + c + d)a=0

d=0(a + c + d’)

Conflict!Grafo de Implicação

Page 23: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Algoritmo DPLLa

0(a + c + d)(a + c + d’)

(a + c’ + d)(a + c’ + d’)

(a’ + b + c)

(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)

b

0

c

0

d=1

c=0

(a + c + d)a=0

d=0(a + c + d’)

Conflict!Grafo de Implicação

Page 24: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Algoritmo DPLLa

0(a + c + d)(a + c + d’)

(a + c’ + d)(a + c’ + d’)

(a’ + b + c)

(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)

b

0

c

0

Backtrack

Page 25: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Algoritmo DPLLa

0(a + c + d)(a + c + d’)

(a + c’ + d)(a + c’ + d’)

(a’ + b + c)

(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)

b

0

c

0

d=1

c=1

(a + c’ + d)a=0

d=0(a + c’ + d’)

Conflict!

1 Decisão Forçada

Page 26: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Algoritmo DPLLa

0(a + c + d)(a + c + d’)

(a + c’ + d)(a + c’ + d’)

(a’ + b + c)

(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)

b

0

c

0 1

Backtrack

Page 27: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Algoritmo DPLLa

0(a + c + d)(a + c + d’)

(a + c’ + d)(a + c’ + d’)

(a’ + b + c)

(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)

b

0

c

0 1

1 Decisão Forçada

Page 28: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Algoritmo DPLLa

0(a + c + d)(a + c + d’)

(a + c’ + d)(a + c’ + d’)

(a’ + b + c)

(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)

b

0

c

0

d=1

c=0

(a + c’ + d)a=0

d=0(a + c’ + d’)

Conflict!

1

c

0

1

Decisão

Page 29: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Algoritmo DPLLa

0(a + c + d)(a + c + d’)

(a + c’ + d)(a + c’ + d’)

(a’ + b + c)

(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)

b

0

c

0 1

c

0

1

Backtrack

Page 30: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Algoritmo DPLLa

0(a + c + d)(a + c + d’)

(a + c’ + d)(a + c’ + d’)

(a’ + b + c)

(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)

b

0

c

0

d=1

c=1

(a + c’ + d)a=0

d=0(a + c’ + d’)

Conflict!

1

c

0 1

1

Decisão Forçada

Page 31: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Algoritmo DPLLa

0(a + c + d)(a + c + d’)

(a + c’ + d)(a + c’ + d’)

(a’ + b + c)

(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)

b

0

c

0 1

c

0 1

1

Backtrack

Page 32: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Algoritmo DPLLa

0(a + c + d)(a + c + d’)

(a + c’ + d)(a + c’ + d’)

(a’ + b + c)

(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)

b

0

c

0 1

c

0 1

1

1 Decisão Forçada

Page 33: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Algoritmo DPLLa

0(a + c + d)(a + c + d’)

(a + c’ + d)(a + c’ + d’)

(a’ + b + c)

(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)

b

0

c

0 1

c

0 1

1

1

b

0 Decisão

Page 34: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Algoritmo DPLLa

0(a + c + d)(a + c + d’)

(a + c’ + d)(a + c’ + d’)

(a’ + b + c)

(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)

b

0

c

0 1

c

0 1

1

1

b

0

c=1

b=0

(a’ + b + c)a=1

c=0(a’ + b + c’)

Conflito!

Page 35: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Algoritmo DPLLa

0(a + c + d)(a + c + d’)

(a + c’ + d)(a + c’ + d’)

(a’ + b + c)

(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)

b

0

c

0 1

c

0 1

1

1

b

0

Backtrack

Page 36: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Algoritmo DPLLa

0(a + c + d)(a + c + d’)

(a + c’ + d)(a + c’ + d’)

(a’ + b + c)

(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)

b

0

c

0 1

c

0 1

1

1

b

0 1

a=1

b=1

c=1(a’ + b’ + c)

Decisão Forçada

Page 37: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Algoritmo DPLLa

(a + c + d)(a + c + d’)

(a + c’ + d)(a + c’ + d’)

(a’ + b + c)

(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)

b

0

c

0 1

c

0 1

1

1

b

0 1

a=1

b=1

c=1(a’ + b’ + c) (b’ + c’ + d)

d=1

0

Page 38: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Algoritmo DPLLa

(a + c + d)(a + c + d’)

(a + c’ + d)(a + c’ + d’)

(a’ + b + c)

(b’ + c’ + d)(a’ + b + c’)(a’ + b’ + c)

b

0

c

0 1

c

0 1

1

1

b

0 1

a=1

b=1

c=1(a’ + b’ + c) (b’ + c’ + d)

d=1

SAT

0

Page 39: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Análise de DPLL e assorted… Podem ser usados para provar tanto

satisfatibilidade quanto insatisfatibilidade Mas DPLL não faz busca exaustiva, então não prova

insatisfatibilidade (e portanto conseqüência lógica) WalkSAT (método incompleto):

Estado Inicial: sorteia valorações de variáveis pré-ordenadas

Operador de busca: Pega uma cláusula ainda insatisfeita e um literal nela Sorteia uma valoração pro literal

A cada passo, escolhe aleatoriamente entre as seguintes estratégias para pegar um literal:

Pega o literal cujo sorteio resulta na maior redução no número de cláusulas insatisfeitas

Pega um literal aleatório

Page 40: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Métodos de Busca (GSAT, WSAT)

Cost

Solution Space

Global

minimum

Local Minima

Page 41: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Com Lógica de Predicados, o método mais popular é a

resolução

Page 42: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Prova por resolução

Método por refutação Dadas uma fórmula H e Hc, a

forma clausal associada a H Uma Prova de H por resolução é

uma expansão fechada sobre Hc H é um teorema do sistema de

resolução

Page 43: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Exemplo de Prova por resolução

H=((P1vP2vP3)^(P1P4)^(P2P4)^ (P3P4)) P4

Determinar Hc associada a H Hc=(((P1vP2vP3)^(P1P4)^(P2P4)^

(P3P4)) P4)) =(((P1vP2vP3)^(P1P4)^(P2P4)^(P3P

4))vP4) =(P1vP2vP3)^(P1vP4)^(P2vP4)^(P3vP4)

^ P4 ={[P1,P2,P3],[P1,P4],[P2,P4],[P3,P4],

[P4]} Agora, é só fazer a expansão por resolução!

Page 44: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Exemplo de Prova por resolução (cont.) 1. [P1,P2,P3] 2. [P1,P4] 3. [P2,P4] 4. [P3,P4] 5. [P4] 6. [P2,P3,P4] Res(1,2) 7. [P3,P4] Res(3,6) 8. [P4] Res(4,7) 9. {} Res(5,8)

Page 45: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Exercício de Conseqüência Lógica por Resolução Guga é determinado Guga é inteligente Se Guga é determinado, ele não é um

perdedor Guga é um atleta se é amante do tênis Guga é amante do tênis se é inteligente

“Guga não é um perdedor” é conseqüência lógica das afirmações acima??

Page 46: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Solução

Provar H=(P^Q^((P^R)P1)^(Q1R)^(QQ1)) P1

Mostrando que H é absurdo (P^Q^((P^R)P1)^(Q1R)^(QQ1))

P1) gera uma expansão por resolução fechada a partir da sua forma clausal?

Page 47: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Lógica de Predicados

Sintaxe

Page 48: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Alfabeto da Lógica de Predicados Símbolos de pontuação: (,) Símbolos de verdade: false, true Conjunto enumerável de símbolos para

variáveis: x, y, z, w, x1, y1, x2, z2... Conjunto enumerável de símbolos para

funções: f, g, h, f1, g1, f2, g2... Conjunto enumerável de símbolos para

predicados: p, q, r, s, p1, q1, p2, q2... Conectivos proposicionais: ,v, ,

Page 49: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Termos São construídos a partir destas

regras: Constantes e variáveis são termos

(representam objetos) Se t1, t2, ..., tn são termos

f é um símbolo de função n-ária, então f(t1, t2, ..., tn) também é um termo

Page 50: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Exemplos de termos x, a (constante, função zero-ária) f(x,a) se e somente se f é binária g(y, f(x,a), c) se e somente se g é

ternária +(9,10), -(9,5)

interpretados como 10+9, 9-5 Notação polonesa

h(x,y,z), considerada implicitamente como ternária

Page 51: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Átomos São construídos a partir destas

regras: O símbolo de verdade false é um

átomo Se t1, t2, ..., tn são termos

p é um símbolo de predicado n-ário então p(t1, t2, ..., tn) é um átomo

Page 52: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Exemplos de átomos P (símbolo proposicional)

Predicado zero-ário) p(f(x,a),x) se e somente se p é binário q(x,y,z) considerado implicitamente

como ternário Ex: >(9,10), =(9,+(5,4))

interpretados como 10>9, 9=5+4 Interpretados como T Note os abusos de linguagem

> e = são predicados + e – são funções

Page 53: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Fórmulas

São construídos a partir destas regras: Todo átomo é uma fórmula da Lógica

de Predicados Se H é fórmula então (H) também é Se H e G são fórmulas, então (HvG)

também é Se H é fórmula e x variável, então

((x)H) e ((x)H) são fórmulas

Page 54: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Construção de fórmulas

Átomos p(x), R e false ((p(x)) v R) Que equivale a (p(x) R)

também fórmula ((x) p(x) R)

Expressão = termo v fórmula

Page 55: Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível

Correspondência entre quantificadores

((x)H)= ((z)(H)) ((x)H)= ((z)(H))