Lgica Proposicional SAT e Custo Computacional O problema
Lógica Proposicional SAT e Custo Computacional
O problema SAT n Dada uma fórmula proposicional n n Determinar se é satisfazível n n = (a b) ( a b c) Problema de decisão Para n símbolos proposicionais, são necessárias 2 n linhas numa tabela verdade e 2 m+1 colunas a 0 0 b c 0 1 1 b 0 c 1 0 1
Aplicações n Um “resolvedor de SAT” é a principal ferramenta computacional para: n Em Inteligência Artificial: n n n Em Projeto Automático de Componentes Eletrônicos: n n n Programação em lógica Provadores de teoremas Teste e Verificação Síntese Escalonamento Planejamento …
Custo Computacional n n O custo (determinístico) de SAT é dito exponencial Não-determinísticamente, o custo de SAT cai para cerca de 2 m+1 n n 2 m+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
Complexidade Computacional n Criação da classe de problemas NP-Completo S. A. Cook, The complexity of theorem proving procedures, Proceedings, Third Annual ACM Symp. on the Theory of Computing, 1971, 151 -158 n Abordagem mais simples: B. Hayes, Can’t get no satisfaction, American Scientist, Vol. 85, nr. 2, Mar-Apr 1997, 108 -112
Complexidade Computacional (cont. ) n n Algoritmos deterministicamente polinomiais: logarítmico, linear quadrático, cúbico (log n, n, n**2, n**3, …, n**500, …) Algoritmos exponenciais (ou nãodeterministicamente polinomiais): 2**n, n**log n Algoritmos exponenciais são mais lentos que os polinomiais para valores altos de n Polinomiais são preferíveis!
Complexidade e SAT n n 1 -SAT: linear (um literal por subfórmula) 2 -SAT: linear (com fases) (x 11 OR x 12) AND (x 21 OR x 22) AND (x 31 OR x 32) AND… 3 -SAT: NP-completo n (x 11 OR x 12 OR x 13) AND (x 21 OR x 22 OR x 23) AND (x 31 OR x 32 OR x 33) AND. . . n O problema são os conflitos, que diminuem a satisfabilidade! n n 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 n 2 -SAT (no máximo 2 símbolos proposicionais por fórmula) n Cláusula de Horn – 1 -SAT (No máximo 1 símbolo proposicional positivo em todas as sub-fórmulas)
Resolvedores de SAT n n Davis-Puttnan DPLL Resolução Todas elas exigem que a fórmula esteja na forma normal conjuntiva
Forma normal conjuntiva n n 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 F 1 ^ F 2 ^. . . ^ Fn, onde n n n Fi é uma disjunção (da forma A 1 v A 2 v. . . v An ) e Ai é um literal Ex: G=( Pv. Q) ^ ( Rv Qv. P) ^ (Pv. S)
Algoritmos para obter CNF usando leis (repetidamente) n 1 -Leis de eliminação n n n 2 -Lei da negação n n ( H) H 2 -Leis de De Morgan n P Q = ( Pv. Q) P Q = (P Q)^(Q P) (Pv. Q) = P ^ Q (P^Q) = P v Q 3 -Leis distributivas: n n F v (G^H) = (Fv. G) ^ (Fv. H) F ^ (Gv. H) = (F^G) v (F^H) (não usada para CNF)
Notação na forma de conjuntos n n H=(Pv Qv. R)^(Pv Q)^(Pv. P) Representação na forma de conjuntos: H={[P, Q, R], [P, Q], [P]} Note que n n (Pv Qv. R) = [P, Q, R] (Pv. P)=[P] n Não é necessário representar duplicidade na forma de conjuntos
Cláusulas e literais complementares n Cláusula em lógica proposicional é uma disjunção de literais n n n Usando a notação de conjuntos: C 1=[P, Q, R], C 2=[P, Q], C 3=[P] Dois literais são complementares quando um é a negação do outro
Resolvente de 2 cláusulas n Supondo 2 cláusulas C 1=[A 1, . . . , An] e C 2=[B 1, . . . , Bn], com literais complementares n n n A, um conjunto de literais em C 1, tal que -A, um conjunto de literais complementares a A, estão em C 2 Resolvente de C 1 e C 2: Res(C 1, C 2)=(C 1 -A)U(C 2 - -A) Res(C 1, C 2) pode ser {} n Resolvente vazio ou trivial
Exemplo de resolvente n n C 1=[P, Q, R] e C 2=[ P, R] Res (C 1, C 2) = [ Q, R], que também é uma cláusula D 1=[P, Q] e D 2=[ P, Q] Res (D 1, D 2) = {}, que também é uma cláusula
Idéia básica em todos os algoritmos: Resolução n Resolução de um par de cláusulas com exatamente UMA variável incompatível a + b + c’ + f g + h’ + c + f a + b + g + h’ + f n E se tivermos mais de uma variável incompatível?
Algoritmo de Davis Putnam M. Davis, H. Putnam, “A computing procedure for quantification theory", J. of ACM, Vol. 7, pp. 201 -214, 1960 n n n 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 + b’) (a’ + c) (a’ + b) c’) (a + c + e)(c’ + e + f’) (a + e + f’) SAT Pode explodir a memória!!! (a) (a’ + c’) (c’ ) () INSAT
Algoritmo DPLL (a’ + b + c) (a + c + d’) (a + c’ + d’) (b’ + c’ + d) (a’ + b + c’) (a’ + b’ + c) a 0 b 0 c 0 a=0 Grafo de Implicação (a + c + d) d=1 Conflict! c=0 (a + c + d’) d=0
Algoritmo DPLL (a’ + b + c) (a + c + d’) (a + c’ + d’) (b’ + c’ + d) (a’ + b + c’) (a’ + b’ + c) a 0 b 0 c 0 a=0 Grafo de Implicação (a + c + d) d=1 Conflict! c=0 (a + c + d’) d=0
Algoritmo DPLL (a’ + b + c) (a + c + d’) (a + c’ + d’) (b’ + c’ + d) (a’ + b + c’) (a’ + b’ + c) a 0 b 0 c 0 Backtrack
Algoritmo DPLL (a’ + b + c) (a + c + d’) (a + c’ + d’) (b’ + c’ + d) (a’ + b + c’) (a’ + b’ + c) a 0 b 0 c 0 1 Decisão Forçada a=0 (a + c’ + d) d=1 Conflict! c=1 (a + c’ + d’) d=0
Algoritmo DPLL (a’ + b + c) (a + c + d’) (a + c’ + d’) (b’ + c’ + d) (a’ + b + c’) (a’ + b’ + c) a 0 b 0 Backtrack c 0 1
Algoritmo DPLL (a’ + b + c) (a + c + d’) (a + c’ + d’) (b’ + c’ + d) (a’ + b + c’) (a’ + b’ + c) a 0 b 0 c 0 1 1 Decisão Forçada
Algoritmo DPLL (a’ + b + c) (a + c + d’) (a + c’ + d’) (b’ + c’ + d) (a’ + b + c’) (a’ + b’ + c) a 0 b 0 1 c 0 c 1 0 a=0 Decisão (a + c’ + d) d=1 Conflict! c=0 (a + c’ + d’) d=0
Algoritmo DPLL (a’ + b + c) (a + c + d’) (a + c’ + d’) (b’ + c’ + d) (a’ + b + c’) (a’ + b’ + c) a 0 b 0 1 c 0 c 1 0 Backtrack
Algoritmo DPLL (a’ + b + c) (a + c + d’) (a + c’ + d’) (b’ + c’ + d) (a’ + b + c’) (a’ + b’ + c) a 0 b 0 1 c 0 c 1 0 a=0 1 Decisão Forçada (a + c’ + d) d=1 Conflict! c=1 (a + c’ + d’) d=0
Algoritmo DPLL (a’ + b + c) (a + c + d’) (a + c’ + d’) (b’ + c’ + d) (a’ + b + c’) (a’ + b’ + c) a 0 b 0 1 c 0 c 1 0 1 Backtrack
Algoritmo DPLL (a’ + b + c) (a + c + d’) (a + c’ + d’) (b’ + c’ + d) (a’ + b + c’) (a’ + b’ + c) a 0 1 b 0 1 c 0 c 1 0 1 Decisão Forçada
Algoritmo DPLL (a’ + b + c) (a + c + d’) (a + c’ + d’) (b’ + c’ + d) (a’ + b + c’) (a’ + b’ + c) a 0 1 b 0 b 1 c 0 0 Decisão c 1 0 1
Algoritmo DPLL (a’ + b + c) (a + c + d’) (a + c’ + d’) (b’ + c’ + d) (a’ + b + c’) (a’ + b’ + c) a 0 1 b 0 b 1 c 0 0 c 1 a=1 0 1 (a’ + b + c) c=1 Conflito! b=0 (a’ + b + c’) c=0
Algoritmo DPLL (a’ + b + c) (a + c + d’) (a + c’ + d’) (b’ + c’ + d) (a’ + b + c’) (a’ + b’ + c) a 0 1 b 0 b 1 c 0 0 c 1 0 1 Backtrack
Algoritmo DPLL a (a’ + b + c) (a + c + d’) (a + c’ + d’) (b’ + c’ + d) (a’ + b + c’) (a’ + b’ + c) 0 1 b 0 b 1 c 0 a=1 b=1 0 c 1 (a’ + b’ + c) 0 c=1 1 1 Decisão Forçada
Análise de DPLL e assorted… n n n 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) Walk. SAT (método incompleto): n n Estado Inicial: sorteia valorações de variáveis pré-ordenadas Operador de busca: n n n 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: n n Pega o literal cujo sorteio resulta na maior redução no número de cláusulas insatisfeitas Pega um literal aleatório
Métodos de Busca (GSAT, WSAT) Cost Local Minima Global minimum Solution Space
Com Lógica de Predicados, o método mais popular é a resolução
Prova por resolução n n 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
Exemplo de Prova por resolução n n n n H=((P 1 v. P 2 v. P 3)^(P 1 P 4)^(P 2 P 4)^ (P 3 P 4)) P 4 Determinar Hc associada a H Hc= (((P 1 v. P 2 v. P 3)^(P 1 P 4)^(P 2 P 4)^ (P 3 P 4)) = ( ((P 1 v. P 2 v. P 3)^(P 1 P 4)^(P 2 P 4)^(P 3 P 4)) v. P 4) =(P 1 v. P 2 v. P 3)^( P 1 v. P 4)^( P 2 v. P 4)^( P 3 v. P 4)^ P 4 ={[P 1, P 2, P 3], [ P 1, P 4], [ P 2, P 4], [ P 3, P 4], [ P 4]} Agora, é só fazer a expansão por resolução!
Exemplo de Prova por resolução (cont. ) n n n n n 1. 2. 3. 4. 5. 6. 7. 8. 9. [P 1, P 2, P 3] [ P 1, P 4] [ P 2, P 4] [ P 3, P 4] [P 2, P 3, P 4] [P 4] {} Res(1, 2) Res(3, 6) Res(4, 7) Res(5, 8)
Exercício de Conseqüência Lógica por Resolução n n n 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? ?
Solução n n n Provar H=(P^Q^((P^R) P 1)^(Q 1 R)^(Q Q 1)) P 1 Mostrando que H é absurdo (P^Q^((P^R) P 1)^(Q 1 R)^(Q Q 1)) P 1) gera uma expansão por resolução fechada a partir da sua forma clausal?
Lógica de Predicados Sintaxe
Alfabeto da Lógica de Predicados n n n Símbolos de pontuação: (, ) Símbolos de verdade: false, true Conjunto enumerável de símbolos para variáveis: x, y, z, w, x 1, y 1, x 2, z 2. . . Conjunto enumerável de símbolos para funções: f, g, h, f 1, g 1, f 2, g 2. . . Conjunto enumerável de símbolos para predicados: p, q, r, s, p 1, q 1, p 2, q 2. . . Conectivos proposicionais: , v, ,
Termos n São construídos a partir destas regras: n n Constantes e variáveis são termos (representam objetos) Se t 1, t 2, . . . , tn são termos n n f é um símbolo de função n-ária, então f(t 1, t 2, . . . , tn) também é um termo
Exemplos de termos n n 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) n n n interpretados como 10+9, 9 -5 Notação polonesa h(x, y, z), considerada implicitamente como ternária
Átomos n São construídos a partir destas regras: n n O símbolo de verdade false é um átomo Se t 1, t 2, . . . , tn são termos n n p é um símbolo de predicado n-ário então p(t 1, t 2, . . . , tn) é um átomo
Exemplos de átomos n P (símbolo proposicional) n n 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)) n n n interpretados como 10>9, 9=5+4 Interpretados como T Note os abusos de linguagem n n > e = são predicados + e – são funções
Fórmulas n São construídos a partir destas regras: n n 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 (Hv. G) também é Se H é fórmula e x variável, então n (( x)H) e (( x)H) são fórmulas
Construção de fórmulas n n n Átomos p(x), R e false (( p(x)) v R) Que equivale a (p(x) R) n também fórmula n (( x) p(x) R) n Expressão = termo v fórmula
Correspondência entre quantificadores n n (( x)H)= (( z)( H))
- Slides: 55