lógica proposicional sat e custo computacional. conjuntos for: conjunto das fórmulas sat: conjunto...
TRANSCRIPT
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 H € INSAT H € INSAT (H) € TAUT H € SAT (H) € TAUT H € REFUT H € TAUT H € REFUT (H) € INSAT
Lema entre os conjuntos SAT, INSAT, TAUT, REFUT FOR TAUT SAT INSAT REFUT TAUT REFUT = {} INSAT SAT = {} SAT U REFUT = FOR TAUT U INSAT FOR SAT 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 colunasa
b b
c c c c
0
0 0
00 001
1 1
1 1 1
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-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
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
Completo: 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 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 a partir de SD, H é realmente conseqüência lógica de
Se ├SD H, então ⊨ H SD só deduz fórmulas corretas!!
Teorema da completude 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 , H também é conseqüência lógica de a partir de SD
Se ⊨ H, então ├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 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