SAT e Custo Computacional

Slides:



Advertisements
Apresentações semelhantes
Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Advertisements

Lógica de Predicados e Representação de Conhecimento
AULA 5 PGC Sistemas de Banco de Dados Profa. Sandra de Amo
Capítulo 8 A linguagem da Lógica de Predicados
Capítulo 7 Tableaux semânticos e resolução na Lógica Proposicional
Capítulo 1 A linguagem da Lógica Proposicional
Cláusulas Conjuntos de cláusulas
TC2- Lógica Proposicional
Tópicos de Lógica Proposicional
Formalizar semântica da LPO
Elsa Carvalho 163 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Teoria dos Modelos.
Lógica de Predicados Sintaxe. O que não é possível expressar em Lógica Prop. Todo tricolor é um campeão. Roberto é tricolor. Logo Roberto é um campeão.
Introdução à Programação Lógica
Cálculo Relacional Datalog não-recursivo
Problemas NP-completos
Resolução.
Algoritmos e Estruturas de Dados
Aula 5 - Cap. 7 Fundamentos da IA Mestrado – FEI
Introdução à NP-completude
Lógica para Computação
Resolução Proposicional
FORMA NORMAL BSI Alunos: Emerson Shigueo Sugimoto
DEDUÇÃO NO CÁLCULO PROPOSICIONAL
INF 1771 – Inteligência Artificial
Aron Sebastian André Sousa Vivian Maria Márcio André
Lógica Matemática e Computacional
Informática Teórica Engenharia da Computação
Lógica de Predicados Teorema de Herbrand.
Capítulo 5 Relações semânticas entre os conectivos da Lógica Proposicional
INF 1771 – Inteligência Artificial
Algoritmos – Formas Normais
Introdução a Lógica Prof. Luiz Carlos Gabi.
Cássio Cristo Dawyson Guerra Matheu Santos
Lógica Proposicional Tableaux semânticos.
Formas Normais e Resolução
Lógica de Predicados Implementação de Resolução. Em Lógica de 1ª. Ordem Resolução não é uma simples extensão da Resolução da Lógica Proposicional O processo.
Teorema de Herbrand e Unificação
Métodos para determinação de validade de fórmulas
SEMÂNTICA.
Lógica de Predicados Forma Prenex e Skolem.
Lógica Proposicional Resolução.
Lógica de Predicados Resolução.
Lógica Proposicional Tableaux semânticos.
Lógica Proposicional Dedução Natural.
Lógicas e Inferência para IA
Lógica de Predicados Tableaux semânticos.
Implementação de Resolução
Lógica de Predicados Sintaxe.
Lógica de Predicados Forma Prenex e Skolem.
SAT e Custo Computacional
Lógica Proposicional Resolução.
Teorema de Herbrand e Unificação
SAT e Custo Computacional
Introdução à NP-completude Katia S. Guimarães
Algoritmos Crescimento de Funções
André Luiz da Costa Carvalho
Análise e Síntese de Algoritmos
Lógica para Computação
Inteligência Artificial: Lógica Proposicional e Prolog
Decidibilidade, Corretude, Completude, Consistência
Relações semânticas entre conectivos e formas normais
Introdução à NP-completude
Análise de Mundo Fechado Tratável com Atualizações Autor: Fábio Alves Marques.
Lógica Proposicional.
Frases de Horn Forma Normal Conjuntiva- para frases sem quantificadores conjunção de frases cada elemento da conjunção é disjunção de literais literal:
Interpretação do Teorema de Herbrand
Introdução a Lógica Matemática
Comportamento Assintótico
Relações semânticas entre conectivos e formas normais
Relações semânticas entre conectivos e formas normais
Transcrição da apresentação:

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 Problema de decisão Para n símbolos proposicionais, são necessárias 2n linhas numa tabela verdade e 2m+1 colunas a b c 1

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 …

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

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

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!

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)

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

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)

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)

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

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

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

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

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 a + b + g + h’ a + b + g + h’ + f 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 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 + b’) (a’ + c) (a’ + c’) (a + c + e) (c’ + e + f’) (a) (a’ + c) (a’ + c’) (a + e + f’) (c) (c’) ( ) SAT INSAT Pode explodir a memória!!!

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

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

Algoritmo DPLL a (a’ + b + c) (a + c + d)  Decisão (a + c + d’) (a + c + d)  Decisão (a + c + d’) (a + c’ + d) (a + c’ + d’) (b’ + c’ + d) (a’ + b + c’) (a’ + b’ + c)

Algoritmo DPLL a (a’ + b + c) (a + c + d) (a + c + d’) b (a + c’ + d) (a + c + d) (a + c + d’) b (a + c’ + d)  Decisão (a + c’ + d’) (b’ + c’ + d) (a’ + b + c’) (a’ + b’ + c)

Algoritmo DPLL a (a’ + b + c) (a + c + d) (a + c + d’) b (a + c’ + d) (a + c + d) (a + c + d’) b (a + c’ + d) (a + c’ + d’) (b’ + c’ + d) c (a’ + b + c’)  Decisão (a’ + b’ + c)

Algoritmo DPLL Grafo de Implicação a (a’ + b + c) (a + c + d) (a + c + d) (a + c + d’) b (a + c’ + d) (a + c’ + d’) (b’ + c’ + d) c (a’ + b + c’) (a’ + b’ + c) (a + c + d) a=0 d=1 Conflict! Grafo de Implicação c=0 d=0 (a + c + d’)

Algoritmo DPLL Grafo de Implicação a (a’ + b + c) (a + c + d) (a + c + d) (a + c + d’) b (a + c’ + d) (a + c’ + d’) (b’ + c’ + d) c (a’ + b + c’) (a’ + b’ + c) (a + c + d) a=0 d=1 Conflict! Grafo de Implicação c=0 d=0 (a + c + d’)

Algoritmo DPLL a (a’ + b + c) (a + c + d) (a + c + d’) b (a + c’ + d) (a + c + d) (a + c + d’) b (a + c’ + d) (a + c’ + d’) (b’ + c’ + d) c  Backtrack (a’ + b + c’) (a’ + b’ + c)

Algoritmo DPLL a (a’ + b + c) (a + c + d) (a + c + d’) b (a + c’ + d) (a + c + d) (a + c + d’) b (a + c’ + d) (a + c’ + d’) (b’ + c’ + d) c (a’ + b + c’) 1  Decisão Forçada (a’ + b’ + c) (a + c’ + d) a=0 d=1 Conflict! c=1 d=0 (a + c’ + d’)

Algoritmo DPLL a (a’ + b + c) (a + c + d) (a + c + d’) b (a + c’ + d) (a + c + d) (a + c + d’) b (a + c’ + d) (a + c’ + d’) (b’ + c’ + d) c  Backtrack (a’ + b + c’) 1 (a’ + b’ + c)

Algoritmo DPLL a (a’ + b + c) (a + c + d) (a + c + d’) b (a + c’ + d) (a + c + d) (a + c + d’) b (a + c’ + d) 1  Decisão Forçada (a + c’ + d’) (b’ + c’ + d) c (a’ + b + c’) 1 (a’ + b’ + c)

Algoritmo DPLL a (a’ + b + c) (a + c + d) (a + c + d’) b (a + c’ + d) (a + c + d) (a + c + d’) b (a + c’ + d) 1 (a + c’ + d’) (b’ + c’ + d) c c (a’ + b + c’) 1  Decisão (a’ + b’ + c) (a + c’ + d) a=0 d=1 Conflict! c=0 d=0 (a + c’ + d’)

Algoritmo DPLL a (a’ + b + c) (a + c + d) (a + c + d’) b (a + c’ + d) (a + c + d) (a + c + d’) b (a + c’ + d) 1 (a + c’ + d’) (b’ + c’ + d) c c  Backtrack (a’ + b + c’) 1 (a’ + b’ + c)

Algoritmo DPLL a (a’ + b + c) (a + c + d) (a + c + d’) b (a + c’ + d) (a + c + d) (a + c + d’) b (a + c’ + d) 1 (a + c’ + d’) (b’ + c’ + d) c c (a’ + b + c’) 1 1  Decisão Forçada (a’ + b’ + c) (a + c’ + d) a=0 d=1 Conflict! c=1 d=0 (a + c’ + d’)

Algoritmo DPLL a  Backtrack (a’ + b + c) (a + c + d) (a + c + d’) b (a + c + d) (a + c + d’) b (a + c’ + d) 1 (a + c’ + d’) (b’ + c’ + d) c c (a’ + b + c’) 1 1 (a’ + b’ + c)

Algoritmo DPLL a (a’ + b + c)  Decisão Forçada (a + c + d) 1  Decisão Forçada (a + c + d) (a + c + d’) b (a + c’ + d) 1 (a + c’ + d’) (b’ + c’ + d) c c (a’ + b + c’) 1 1 (a’ + b’ + c)

Algoritmo DPLL a (a’ + b + c) (a + c + d) (a + c + d’) b b 1 (a + c + d) (a + c + d’) b b (a + c’ + d) 1  Decisão (a + c’ + d’) (b’ + c’ + d) c c (a’ + b + c’) 1 1 (a’ + b’ + c)

Algoritmo DPLL a (a’ + b + c) (a + c + d) (a + c + d’) b b 1 (a + c + d) (a + c + d’) b b (a + c’ + d) 1 (a + c’ + d’) (b’ + c’ + d) c c (a’ + b + c’) 1 1 (a’ + b’ + c) (a’ + b + c) a=1 c=1 Conflito! b=0 c=0 (a’ + b + c’)

Algoritmo DPLL a (a’ + b + c) (a + c + d) (a + c + d’) b b  Backtrack 1 (a + c + d) (a + c + d’) b b  Backtrack (a + c’ + d) 1 (a + c’ + d’) (b’ + c’ + d) c c (a’ + b + c’) 1 1 (a’ + b’ + c)

Algoritmo DPLL a (a’ + b + c) (a + c + d) (a + c + d’) b b 1 (a + c + d) (a + c + d’) b b (a + c’ + d) 1 1  Decisão Forçada (a + c’ + d’) (b’ + c’ + d) c c (a’ + b + c’) 1 1 (a’ + b’ + c) (a’ + b’ + c) a=1 c=1 b=1

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

Algoritmo DPLL a (a’ + b + c) (a + c + d) (a + c + d’) b b 1 (a + c + d) (a + c + d’) b b (a + c’ + d) 1 1 (a + c’ + d’) (b’ + c’ + d) c c  SAT (a’ + b + c’) 1 1 (a’ + b’ + c) (a’ + b’ + c) (b’ + c’ + d) a=1 c=1 d=1 b=1

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

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

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

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

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!

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)

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

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?

Lógica de Predicados Sintaxe

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

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

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

Á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

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

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

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

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