Pós-graduação → Lógica Matemática e Fundamentos → Lógica proposicional ↓
Solução na lógica proposicional
A resolução é uma regra fundamental de inferência usada em lógica proposicional e prova automática de teoremas. Ela desempenha um papel importante na programação lógica e forma a base da linguagem de programação Prolog. A técnica é baseada no princípio da refutação, onde se prova a impossibilidade de uma proposição assumindo sua negação e obtendo uma contradição. Na lógica proposicional, a resolução é usada para derivar uma conclusão resolvendo um conjunto de cláusulas.
Noções básicas de lógica proposicional
Na lógica proposicional, lidamos com proposições, que são afirmações que podem ser verdadeiras ou falsas. Essas proposições são representadas por variáveis proposicionais, como p
, q
, r
, etc. Proposições combinadas são formadas usando conectivos lógicos, como E (∧
), OU (∨
), NÃO (¬
), IMPLICA (→
) e EQUIVALENTE (↔
).
Um literal é ou uma variável proposicional ou a negação de uma variável proposicional. Uma cláusula é uma disjunção de literais. Por exemplo, a cláusula (p ∨ ¬q ∨ r)
contém os literais p
, ¬q
e r
.
O conceito central na solução é a regra de solução, que nos permite deduzir uma nova cláusula a partir de duas cláusulas existentes que contêm literais complementares. Literais complementares são pares, como p
e ¬p
, que são negações um do outro.
Regras de resolução
A regra de solução pode ser formalmente expressa da seguinte forma:
C1: (A ∨ X) C2: (¬x ∨ b) , Resposta: (A ∨ B)
Aqui, C1
e C2
são cláusulas contendo os literais x
e ¬x
, respectivamente. A cláusula (A ∨ B)
é o resultado de resolver essas duas cláusulas no literal x
.
Considere o seguinte exemplo:
C1: (p ∨ q) C2: (¬q ∨ r) , Res: (P ∨ R)
Neste caso, o literal q
em C1
e ¬q
em C2
são complementares. O resultado da solução é (p ∨ r)
.
Forma normal conjuntiva (CNF)
Para usar a solução efetivamente, as proposições devem ser convertidas em uma forma específica conhecida como forma normal conjuntiva (CNF). Uma fórmula está em CNF se for uma conjunção de uma ou mais cláusulas, onde cada cláusula é uma disjunção de literais.
Converter uma fórmula lógica para CNF envolve uma série de transformações de equivalência:
- Eliminar implicações e equivalências usando equivalências lógicas como:
p → q ≡ ¬p ∨ q p ↔ q ≡ (p → q) ∧ (q → p)
- Mover os NÃOs para dentro usando as leis de De Morgan e dupla negação:
¬(p ∧ q) ≡ ¬p ∨ ¬q ¬(p ∨ q) ≡ ¬p ∧ ¬q ¬¬P ≡ P
- Distribuir o OU sobre o E, garantindo que todas as cláusulas se tornem disjunções de termos literais.
Exemplo de conversão para CNF
Considere a fórmula:
(P → Q) → (Q → R)
Passo 1: Eliminar as implicações:
¬(¬p∨q) ∨ (¬q∨r)
Passo 2: Aplicar as Leis de De Morgan:
(p ∧ ¬q) ∨ (¬q ∨ r)
Passo 3: Distribuir:
(p ∨¬q) ∧ (p ∨r)
Agora, a fórmula está em CNF.
Exemplo de uma solução em lógica proposicional
Vamos considerar um exemplo de como a resolução pode ser usada para resolver um problema lógico:
As seguintes afirmações são dadas:
- Se está chovendo, então o chão está molhado. (R → W)
- Se o chão está molhado, o céu está nublado. (W → C)
- Não há nuvens no céu. (¬C)
Prove que não está chovendo. (¬R)
Represente cada afirmação em CNF:
¬R ∨ W
(derivado deR → W
)¬W ∨ C
(derivado deW → C
)¬C
Para provar ¬R, adicione a negação da conclusão como uma suposição e resolva a contradição:
Adicione R
ao conjunto.
Solução:
1. R 2.¬R ∨ W 3. ¬W ∨ C 4. ¬C
Resolva (1) R e (2) ¬R ∨ W:
5. WResolva (5) W e (3) ¬W ∨ C:
6. C(6) C contradiz (4) ¬C. Portanto, a suposição
R
deve ser falsa, então ¬R é verdadeiro.
Propriedades da resolução
A resolução tem várias propriedades importantes que a tornam uma ferramenta poderosa na prova automática de teoremas:
- Solidez: Se uma cláusula emerge da regra de solução, então essa cláusula é logicamente implicada pelo conjunto inicial de cláusulas.
- Completude: Se um conjunto de cláusulas for insatisfatível (ou seja, elas não podem ser todas verdadeiras ao mesmo tempo), então a solução pode refletir essa insatisfatibilidade.
- Completude de refutação: Se uma contradição pode ser derivada de um conjunto de cláusulas, então a solução eventualmente a encontrará.
Complexidade e limitações
Embora a resolução seja uma técnica poderosa, é importante notar suas limitações:
- Crescimento exponencial: O espaço dos segmentos possíveis pode crescer exponencialmente em tamanho, tornando as soluções computacionalmente caras para grandes problemas.
- Restrito a CNF: Como a solução funciona em CNF, qualquer problema deve ser transformado nessa forma, o que às vezes pode envolver um grande número de cláusulas.
Representação visual da resolução
Para tornar a solução mais clara, vamos observar uma simples representação diagramática. Considere estas frases:
A (A ∨ B) ¬B
O passo de solução A
combina (A ∨ B
) e (¬B
) para fazer uma conjectura.
Estratégias de solução
Na prática, várias estratégias e otimizações são empregadas para usar a solução de forma eficiente. Essas estratégias visam controlar a ordem e o método em que as cláusulas são resolvidas, muitas vezes baseadas em heurísticas ou algoritmos específicos.
- Solução unitária: Isso envolve priorizar blocos de uma única letra, conhecidos como blocos unitários, a fim de simplificar e reduzir rapidamente o tamanho do problema.
- Resolução de entrada: garante que a resolução seja realizada entre um segmento do conjunto original e um segmento recém-derivado, reduzindo assim a complexidade.
- Estrategia de conjunto de suporte: concentra-se em reduzir o espaço de busca resolvendo cláusulas apenas dentro de um subconjunto especificado, muitas vezes usado na prova de teoremas interativa.
Aplicações na ciência da computação
A resolução é amplamente utilizada em disciplinas de ciência da computação, especialmente em áreas como inteligência artificial e programação lógica. Suas principais aplicações incluem:
- Prova automática de teoremas: Como técnica principal em sistemas de prova e ferramentas de raciocínio automático, a prova de solução ajuda a verificar a validade de declarações lógicas.
- Programação lógica: A teoria da solução é a base de linguagens como Prolog, onde as relações lógicas são resolvidas para formar questões de computação.
- Soluções de satisfatibilidade: Solucionadores SAT modernos aplicam estratégias baseadas em solução para determinar se uma fórmula proposicional pode ser satisfeita.
Conclusão
A resolução na lógica proposicional é um método robusto e convincente para raciocínio lógico. Aproveitando o poder da inferência através da regra de resolução, ela fornece uma abordagem sistemática para provar a validade ou contradição de declarações expressas na lógica proposicional. Embora sua aplicação em cenários do mundo real possa ser computacionalmente intensiva, sua base teórica possui imenso valor para entender sistemas lógicos e desenvolver ferramentas práticas e automáticas em ciência da computação.
A inferência de solução proporciona grande entendimento da estrutura lógica de problemas, tornando possível construir algoritmos eficientes para enfrentar tarefas de raciocínio lógico complexas, e continua sendo uma área importante de estudo em matemática e ciência da computação.