A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Lógica Proposicional SAT e Custo Computacional. O problema SAT Dada uma fórmula proposicional  = (a  b)  (  a   b  c) Determinar se  é satisfazível."— Transcrição da apresentação:

1 Lógica Proposicional SAT e Custo Computacional

2 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 2 n linhas numa tabela verdade e 2m+1 colunas a bb cccc

3 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 …

4 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

5 Complexidade Computacional 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, Abordagem mais simples: B. Hayes, Can’t get no satisfaction, American Scientist, Vol. 85, nr. 2, Mar-Apr 1997,

6 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!

7 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)

8 Resolvedores de SAT Davis-Puttnan DPLL Resolução Todas elas exigem que a fórmula esteja na forma normal conjuntiva

9 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) ^ (  Rv  QvP) ^ (PvS)

10 Algoritmos para obter CNF usando leis (repetidamente) 1 -Leis de eliminação P  Q = (  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)

11 Notação na forma de conjuntos H=(Pv  QvR)^(Pv  Q)^(PvP) Representação na forma de conjuntos: H={[P,  Q,R],[P,  Q],[P]} Note que (Pv  QvR) = [P,  Q,R] (PvP)=[P] Não é necessário representar duplicidade na forma de conjuntos

12 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

13 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

14 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

15 a + b + g + h’ + f a + 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’ + fg + h’ + c + f E se tivermos mais de uma variável incompatível?

16 (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 , 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’)( ) SAT INSAT (a) Pode explodir a memória!!!

17 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)

18 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

19 Algoritmo DPLL a 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

20 Algoritmo DPLL a 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

21 Algoritmo DPLL a 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

22 Algoritmo DPLL a 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

23 Algoritmo DPLL a 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

24 Algoritmo DPLL a 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

25 Algoritmo DPLL a 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

26 Algoritmo DPLL a 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

27 Algoritmo DPLL a 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  Decisão Forçada

28 Algoritmo DPLL a 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

29 Algoritmo DPLL a 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

30 Algoritmo DPLL a 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  Decisão Forçada

31 Algoritmo DPLL a 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  Backtrack

32 Algoritmo DPLL a 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  Decisão Forçada

33 Algoritmo DPLL a 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 b 0  Decisão

34 Algoritmo DPLL a 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 b 0 c=1 b=0 (a’ + b + c) a=1 c=0 (a’ + b + c’) Conflito!

35 Algoritmo DPLL a 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 b 0  Backtrack

36 Algoritmo DPLL a 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 b 0 1 a=1 b=1 c=1 (a’ + b’ + c)  Decisão Forçada

37 Algoritmo DPLL a (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 b 0 1 a=1 b=1 c=1 (a’ + b’ + c)(b’ + c’ + d) d=1 0

38 Algoritmo DPLL a (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 b 0 1 a=1 b=1 c=1 (a’ + b’ + c)(b’ + c’ + d) d=1  SAT 0

39 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

40 M é todos de Busca (GSAT, WSAT) Cost Solution Space Global minimum Local Minima

41 Com Lógica de Predicados, o método mais popular é a resolução

42 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

43 Exemplo de Prova por resolução H=((P1vP2vP3)^(P1  P4)^(P2  P4)^ (P3  P4))  P4 Determinar  Hc associada a  H  Hc=  (((P1vP2vP3)^(P1  P4)^(P2  P4)^ (P3  P4))  P4)) =  (  ((P1vP2vP3)^(P1  P4)^(P2  P4)^(P3  P4)) 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!

44 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)

45 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??

46 Solução Provar H=(P^Q^((P^R)  P1)^(Q1  R)^(Q  Q1))  P1 Mostrando que  H é absurdo  (P^Q^((P^R)  P1)^(Q1  R)^(Q  Q1))  P1) gera uma expansão por resolução fechada a partir da sua forma clausal?

47 Lógica de Predicados Sintaxe

48 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, , 

49 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

50 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

51 Á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

52 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

53 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

54 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

55 Correspondência entre quantificadores ((  x)H)=  ((  z)(  H)) ((  x)H)=  ((  z)(  H))


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

Apresentações semelhantes


Anúncios Google