Módulo 1 - parte 2
Lógica Proposicional
Lógica Proposicional
-
Formalismo simples
para representar conhecimento e restrições.
-
Uma proposição é uma afirmação
que pode ser apenas verdadeira ou falsa.
-
Exemplos:
- "Está chovendo".
- "Estamos em Brasília".
- "A primeira célula contém o número 1".
-
Proposições podem ser combinadas usando
operadores lógicos:
E, OU,
NÃO e IMPLICAÇÃO.
-
Esse formalismo é a base de muitas técnicas
de modelagem e resolução de problemas.
Exemplos
-
Estamos em Brasília
OU estamos em Paris.
-
Se estamos em Brasília,
então há sol.
As condições normalmente usadas em
if e while
são exemplos diretos de lógica proposicional.
Formalismo da Lógica Proposicional
-
Definimos um vocabulário
V = {x₁, ..., xₙ},
composto por variáveis booleanas.
-
Cada variável pode assumir apenas dois valores:
- Verdadeiro (1 ou ⊤)
- Falso (0 ou ⊥)
-
Fórmulas são construídas combinando
variáveis com conectivos lógicos.
Conectivos Fundamentais
- Átomo: x
- Negação: ¬φ
- Conjunção: φ₁ ∧ φ₂
- Disjunção: φ₁ ∨ φ₂
- Implicação: φ₁ → φ₂
- Equivalência: φ₁ ↔ φ₂
Exemplos
-
"Se estamos em Brasília, então há sol":
Brasília → sol
-
No Sudoku, a variável
\( x^{i,j}_k \)
representa:
"a célula (j,k) contém o valor i".
-
Se a primeira célula da primeira linha contém 1,
então não há nenhum 1 em nenhum outra lugar dessa linha:
\( x^{1,1}_1 \to (\neg x^{2,1}_1 \wedge ... \wedge x^{9,1}_1 ) \)
Semântica e Tabelas-Verdade
-
Semântica: atribui
um valor lógico a cada variável:
0 (falso) ou
1 (verdadeiro).
-
A partir dessas atribuições,
podemos determinar o valor
de qualquer fórmula.
-
A tabela-verdade
enumera todas as interpretações possíveis
e o resultado correspondente da fórmula.
-
Para n variáveis,
existem exatamente
2ⁿ interpretações.
-
¬φ é verdadeiro
quando φ é falso.
-
φ₁ ∧ φ₂ é verdadeiro
somente quando ambos são verdadeiros.
Conjunção
| x |
y |
x ∧ y |
| 0 |
0 |
0 |
| 0 |
1 |
0 |
| 1 |
0 |
0 |
| 1 |
1 |
1 |
Disjunção e Implicação
-
φ₁ ∨ φ₂ é verdadeiro
quando pelo menos uma das fórmulas é verdadeira.
-
φ₁ → φ₂ é falso
somente quando φ₁ é verdadeiro
e φ₂ é falso.
| x |
y |
x ∨ y |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
| x |
y |
x → y |
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Equivalência
-
φ₁ ↔ φ₂ é verdadeiro
quando ambas possuem o mesmo valor lógico.
| x |
y |
x ↔ y |
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Fórmulas complexas são avaliadas
combinando recursivamente essas regras.
As interpretações que tornam
uma fórmula verdadeira
são chamadas de modelos.
Equivalência da Implicação
-
A implicação lógica pode ser
reescrita usando apenas
negação e disjunção.
-
Em particular:
φ₁ → φ₂ ≡ ¬φ₁ ∨ φ₂
-
Essa equivalência é fundamental
na transformação de fórmulas,
especialmente em solucionadores SAT.
-
As duas expressões possuem
exatamente os mesmos modelos.
¬x ∨ y
| x |
y |
¬x ∨ y |
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
x → y
| x |
y |
x → y |
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
As duas tabelas são idênticas.
Problema exemplo
"Em um reino antigo, o rei coloca um prisioneiro diante de duas celas, que podem conter um tigre ou uma princesa.
O prisioneiro deve entrar em uma cela: se houver um tigre, ele é devorado; se houver uma princesa, ele é libertado e se casa com ela.
Há placas nas portas com pistas, e o rei afirma que uma delas diz a verdade e a outra mente."
Pistas nas portas
- Dica-porta 1: “Há uma princesa nesta cela e um tigre na outra.”
- Dica-porta 2: “Há uma princesa em uma das celas e há um tigre em uma das celas.”
Problema lógico
- Sabendo que uma frase é verdadeira e a outra é falsa, qual porta você escolheria?
Inspirado em problema proposto por Raymond Smullyan
Modelagem
Podemos modelar de diferentes formas
- Variáveis: t1, t2 representam “há um tigre na cela 1 / cela 2”.
- Variáveis: p1, p2 representam “há uma princesa na cela 1 / cela 2”.
- Problema: isso complica a resolução, pois exige 2⁴ = 16 linhas na tabela-verdade e ainda é necessário impor que não pode haver tigre e princesa na mesma cela.
- Podemos usar apenas t1 e t2.
- Princesa: é representada por ¬t1 e ¬t2.
Formalização das portas
- Dica-porta 1:“Há uma princesa nesta cela e um tigre na outra” ϕ= ¬t1 ∧ t2
- Dica-porta 2:“Há uma princesa em uma cela e há um tigre em uma cela” ϕ₂ = (¬t1 ∨ ¬t2) ∧ (t1 ∨ t2)
Condição lógica do problema
- Uma placa diz a verdade e a outra mente:
- ϕ = ϕ₁ ↔ ¬ϕ₂
Definições lógicas do problema
- ϕ₁ = ¬t1 ∧ t2
- ϕ₂ = (¬t1 ∨ ¬t2) ∧ (t1 ∨ t2)
- ϕ = ϕ₁ ↔ ¬ϕ₂
| t1 |
t2 |
ϕ₁ = ¬t1 ∧ t2 |
¬t1 ∨ ¬t2 |
t1 ∨ t2 |
ϕ₂ |
ϕ |
| 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 0 | 1 | 1 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 | 1 | 1 |
| 1 | 1 | 0 | 0 | 1 | 0 | 0 |
único modelo onde o tigre está em uma cela e a princesa na outra
Algoritmos de raciocínio lógico e CNF
- Forma Normal Conjuntiva (CNF): os algoritmos de lógica usam CNF (Conjunctive Normal Form).
- Toda fórmula proposicional pode ser transformada em uma CNF equivalente (com os mesmos modelos).
- Literal: uma variável sozinha ou sua negação.
- Exemplos: x, ¬y (x ∨ ¬y não é um literal).
- Cláusula: disjunção (OU) de literais.
- Exemplos: ¬y, x ∨ ¬y (x ∧ ¬y não é cláusula)
- Uma interpretação satisfaz uma cláusula se satisfaz pelo menos um literal (pois é uma disjunção).
- CNF: conjunção (E) de cláusulas.
- Uma fórmula CNF tem uma ou várias cláusulas ligadas por ∧.
- Uma interpretação satisfaz uma CNF se satisfaz todas as cláusulas (pois é uma conjunção).
SAT Solver
- Um algoritmo que recebe uma CNF e decide se ela é satisfatível.
- Ou seja, verifica se existe ao menos um modelo que satisfaz a fórmula.
- Se existir, o solver também pode retornar esse modelo.
Transformação em CNF
- Eliminação de dupla negação
- Leis de De Morgan
- ¬(ϕ₁ ∨ ϕ₂) ≡ ¬ϕ₁ ∧ ¬ϕ₂
- ¬(ϕ₁ ∧ ϕ₂) ≡ ¬ϕ₁ ∨ ¬ϕ₂
- Distributividade
- ϕ₁ ∨ (ϕ₂ ∧ ϕ₃) ≡ (ϕ₁ ∨ ϕ₂) ∧ (ϕ₁ ∨ ϕ₃)
- ϕ₁ ∧ (ϕ₂ ∨ ϕ₃) ≡ (ϕ₁ ∧ ϕ₂) ∨ (ϕ₁ ∧ ϕ₃)
- Transformação para CNF
- A aplicação sucessiva dessas regras permite transformar qualquer fórmula em uma CNF equivalente.
- Atenção: essa transformação pode gerar uma fórmula exponencialmente maior que a original.
- Existe uma técnica mais avançada que mantém tamanho linear: transformação de Tseitin.
- Validação das regras
- Essas equivalências podem ser provadas usando tabelas-verdade.
Funcionamento dos solvers SAT
- DPLL: a maioria dos solvers SAT usa o algoritmo DPLL (Davis–Putnam–Logemann–Loveland).
- Princípio básico do DPLL
- Escolher uma variável \(x_i\) e atribuir um valor de verdade (ex: 1).
- Cláusulas que contêm \(x_i\) são satisfeitas e podem ser removidas.
- Cláusulas que contêm \(\neg x_i\) são simplificadas:
ex: \(x_1\) ∨ \(x_2\) ∨ \(\neg x_i\) viram \(x_1\) ∨ \(x_2\)
- Se surgir uma cláusula vazia (todos os literais falsos), há uma decisão incoerente \(\to\) backtracking
- O algoritmo volta atrás (backtracking) e tenta \(x_i\) = 0.
- Se 0 também gerar incoerência, a fórmula não é satisfatível (não existe modelo).
- Caso contrário, o processo continua até atribuir valores para todas as variáveis.
Simplificações durante o processo
- Propagação unitária: se existe uma cláusula unitária (ex: x ou ¬y), ela força valores nas demais cláusulas.
- Ex: x = 1 e y = 0 são propagados automaticamente.
- Literals puros: se uma variável aparece sempre com a mesma polaridade (ex: apenas x e nunca ¬x), pode-se atribuir valor diretamente.
- Ex: x = 1 satisfaz todas as cláusulas onde x aparece.
Relação do DPLL com busca em árvore
- DPLL compartilha pontos em comum com a busca em árvore (tree search).
- Estados: conjunto de variáveis com valores atribuídos ou não.
- Ações: atribuir um valor (0 ou 1) a uma variável.
- Estados objetivo: todas as variáveis estão atribuídas e todas as cláusulas são satisfeitas.
- Existem heurísticas para escolher variáveis de forma inteligente.
- Objetivo: encontrar rapidamente uma solução ou detectar inconsistências cedo.
- O uso de CNF torna o problema mais estruturado para o algoritmo.
- Técnicas como propagação unitária e eliminação de literais puros aceleram a resolução.
- Outras otimizações mais avançadas também são usadas em solvers modernos.
- Essas técnicas tornam o DPLL muito mais eficiente do que uma busca em árvore simples.
Módulo 1 - parte 2
Sistemas Especialistas
Como um computador pode resolver integrais de cálculo?
35
- O Problema: Integrais não são resolvidas por força bruta, mas por transformações.
- A Estratégia: Redução (complexidade) Quebrar um problema difícil em sub-problemas mais fáceis.
Diagramas AND-OR
Um diagrama de decisão é fundamentalmente uma estrutura AND-OR que representa a decomposição de um problema em uma árvore:
- Nós OR: Representam diferentes métodos para resolver o mesmo problema (Se o Método A OU o Método B funcionar, o problema está resolvido).
- Nós AND: Representam sub-problemas que precisam ser resolvidos simultaneamente (Para resolver X, preciso resolver Y E Z).
Meta Principal: Resolver Integral(f(x))
├── OR: Substituição de Variável
└── OR: Integração por Partes
└── AND: Escolher 'u'
└── AND: Escolher 'dv'
Sistemas Especialistas focam em lógica e símbolos. A ideia é capturar o "If-Then" (Se-Então) de um especialista humano.
- O Conhecimento: O mundo é descrito por fatos e regras.
- O Objetivo: Dedução. Usar o que sabemos para derivar novas conclusões logicamente irrefutáveis dentro do sistema.
- Quadro: Sistemas de Produção.
Ideia Central
- Representar o conhecimento humano via regras lógicas.
- Separar o Conhecimento (regras) do Motor de Inferência (algoritmo).
- Explicabilidade: O sistema pode dizer exatamente qual regra usou para chegar ao resultado.
O Sistema de Produção
Consiste em três componentes principais:
1. Memória de Trabalho (Fatos)
2. Base de Regras (Conhecimento: SE -> ENTÃO)
3. Motor de Inferência (O Executor)
Encadeamento Progressivo (Forward Chaining)
Como deduzir fatos novos?
O sistema parte dos fatos conhecidos e aplica as regras para adicionar novos fatos à memória até que um objetivo seja alcançado ou não haja mais regras para disparar.
Exemplo de Regra:
IF 'o animal tem penas'
THEN 'o animal é uma ave'
Isso é um exemplo de Dedução Orientada a Dados.
Encadeamento Regressivo (Backward Chaining)
A ideia fundamental: "Para provar uma hipótese, prove as premissas que a tornam verdadeira."
O sistema começa com uma pergunta (ex: "O animal é um pinguim?") e busca na base de regras o que seria necessário para que isso fosse verdade, transformando premissas em novos sub-objetivos.
Resolução de Conflitos
O que fazer quando múltiplas regras podem ser disparadas ao mesmo tempo?
- Especificidade: Regras mais complexas (mais condições) ganham de regras genéricas.
- Recência: Usar os fatos que entraram na memória por último.
- Prioridade: Ordem definida pelo especialista.