SAT e Custo Computacional Lógica Proposicional SAT e Custo Computacional
Conjuntos FOR: conjunto das fórmulas SAT: conjunto das fórmulas satisfazíveis INSAT: conjunto das fórmulas insatisfazíveis TAUT: conjunto das tautologias REFUT: conjunto das fórmulas refutáveis(Falsificável) Refutável é toda fórmula H tal que exista pelo menos uma interpretação I[H]=F
Lema de pertinência Para H € FOR: H € SAT D H € INSAT H € INSAT D (H) € TAUT H € SAT D (H) € TAUT H € REFUT D H € TAUT H € REFUT D (H) € INSAT
Lema entre os conjuntos SAT, INSAT, TAUT, REFUT FOR TAUT SAT INSAT REFUT TAUT I REFUT = {} INSAT I SAT = {} SAT U REFUT = FOR TAUT U INSAT FOR SAT I REFUT = {}
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 Custo não-deterministicamente polinomial (NP) Testam-se apenas algumas linhas da tabela O no. de sub-fórmulas é sempre até 2 vezes o número de conectivos mais 1
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)
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
Vocabulário Sistemas de Dedução, Decidibilidade, Corretude, Completude, Consistência, Monotonicidade
Cálculo Proposicional Cálculo = Lógica + Sistema de Prova (ou dedução) Um sistema de prova serve para analisar e raciocinar sobre argumentos de uma lógica, de maneira a prová-los válidos ou inválidos.
Sistema de dedução Alfabeto de uma Lógica Conjunto de fórmulas desta Lógica Conjunto de regras de dedução (ou regras de inferência)
Como avaliar sistemas de dedução?? Avaliação do problema de dedução Finitude da solução algorítmica (decidibilidade) Avaliação do algoritmo de dedução Complexidade Avaliação da capacidade de inferência Qualidade: Consistência Eficiência: Completude
Avaliação de lógicas e seus algoritmos de dedução Análise de lógicas Expressividade Finitude = Decidibilidade Tem a ver com teoria da computação Computabilidade, Máquinas de Turing, funções recursivas, ... Análise para métodos de dedução Correção Completude Consistência Monotonicidade
Computabilidade Intuitivamente uma função é dita computável se é possível calcular seu valor, dado qualquer elemento do seu domínio Será toda função, bem definida, computável? NEM SEMPRE!!!
Decidibilidade Caso particular de computabilidade quando a função só admite dois valores É possível resolver um problema algoritmicamente (insolubilidade)? Quando se fala se um problema é solúvel tem-se um problema de decidibilidade Trata-se de saber se um algoritmo acaba Devolvendo uma resposta, no nosso caso, T ou F Há lógicas que são assim!
Complexidade Computabilidade diz respeito a se um problema pode ou não ser resolvido Complexidade diz respeito à quantidade de recursos necessários para resolver um problema Os recursos (normalmente) são: Memória Tempo Porém... Complexidade não será analisada nesse curso
E para sistemas de dedução? Desejamos que nossos sistemas de dedução tenham certas propriedades... Quais?? Relembrando conceitos Conseqüência lógica Contradição Lógicas precisam ter sintaxe e semântica bem definidas!
Avaliando sistemas de dedução Queremos que o nosso sistema de dedução hipotético SD para ela (a lógica proposicional) seja correto, completo e consistente Verificar também monotonicidade Que danado é isso???
Correto Correto: Toda sentença deduzida por SD a partir de um dado conjunto de sentenças S inclusive o conjunto vazio de sentenças! Seja realmente dedutível a partir de S! Se as premissas são válidas, a conclusão também é válida!
Completo e Consistente Toda sentença realmente dedutível a partir de S, seja também dedutível através de SD Consistente: Não seja possível gerar contradições usando SD
Teorema da correção Se b├SD H, então b⊨ H Um sistema de dedução SD é correto se satisfaz à condição abaixo Todas as condições são a mesma no fundo Se H é conseqüência lógica de um conjunto de hipóteses b a partir de SD, H é realmente conseqüência lógica de b Se b├SD H, então b⊨ H SD só deduz fórmulas corretas!!
Teorema da completude Se b⊨ H, então b├SD H Um sistema de dedução SD é completo se satisfaz às condições abaixo Todas as condições são a mesma no fundo Se H é conseqüência lógica de um conjunto de hipóteses b, H também é conseqüência lógica de b a partir de SD Se b⊨ H, então b├SD H Toda fórmula dedutível também é dedutível por SD!!
Teorema da Consistência Um sistema de dedução SD é consistente sse não é possível deduzir usando SD duas fórmulas que se contradizem Não é possível ├SD H e ├SD H Teorema: Um sistema correto é também consistente
Prova do Teorema da Consistência Se ├SD H, pelo teorema da correção: H é tautologia D H é contraditória Não é possível ├SD H, pois H seria uma tautologia Não é possível que H e H sejam tautologias
Monotonicidade Definição fraca: Se KBi├ H, então KBj├ H Não perder o que é dedutível Definição forte: Se KBi├ H e j>i, então KBj├ H e KBj KBi KB só aumenta