Aplicação: Resolvendo Problemas Usando Lógica

Propaganda
Aplicação: Resolvendo Problemas
Usando Lógica
Matemática Discreta I
Rodrigo Ribeiro
Departamento de Ciências Exatas e Aplicadas
Universidade de Federal de Ouro Preto
11 de dezembro de 2012
Motivação (I)
Colocando a Teoria em Prática...
Até o presente momento, estudamos a lógica de
um ponto de vista meramente teórico.
O objetivo desta aula é apresentar uma
aplicação prática de como solucionar problemas
utilizando lógica proposicional.
R. Ribeiro
Aplicação: Resolvendo Problemas Usando Lógica
Satisfazibilidade (I)
Denição
O problema da Satisfazibilidade consiste em: Dada
uma fórmula da lógica proposicional f determinar se
existe uma atribuição de valores às variáveis de f de
maneira que o valor lógico de f seja igual a >.
Isto é...
Algoritmos para Satisfazibilidade determinam se uma
fórmula é satisfazível.
R. Ribeiro
Aplicação: Resolvendo Problemas Usando Lógica
Satisfazibilidade (II)
Softwares para Problema SAT
Diversos softwares gratuitos para solução do
problema:
C/C++: MiniSAT
Java: SAT4J
R. Ribeiro
Aplicação: Resolvendo Problemas Usando Lógica
Satisfazibilidade (III)
Aplicações
Classicação de fórmulas.
Tautologia: f é tautologia se e somente se ¬f não
é satisfazível.
Contradição: f é contradição se e somente se não
é satisfazível.
R. Ribeiro
Aplicação: Resolvendo Problemas Usando Lógica
Satisfazibilidade (IV)
Exercício
Como um algoritmo para satisfazibilidade pode ser
utilizado para determinar que uma fórmula é:
falseável.
contingente.
R. Ribeiro
Aplicação: Resolvendo Problemas Usando Lógica
Satisfazibilidade (V)
Provando Sequentes
Dado um sequente Γ ` f , onde Γ = {p1 , p2 , ..., pn }
temos
Vn que este sequente é provável se e somente se
i =1 pi → f é uma tautologia.
R. Ribeiro
Aplicação: Resolvendo Problemas Usando Lógica
Satisfazibilidade (VI)
Um problema um pouco mais prático...
Qual a quantidade mínima de cores para este mapa?
R. Ribeiro
Aplicação: Resolvendo Problemas Usando Lógica
Satisfazibilidade (VII)
Colorindo mapas...
Problema que apesar de simples, é bastante
complicado para mapas maiores...
Conhecido matematicamente, como coloração
de grafos.
Todo elemento do mapa deve possuir uma cor.
Nenhum elemento adjacente deve possuir a mesma
cor.
R. Ribeiro
Aplicação: Resolvendo Problemas Usando Lógica
Satisfazibilidade (VIII)
Uma Possível Solução...
SP
MG
RJ
ES
R. Ribeiro
Aplicação: Resolvendo Problemas Usando Lógica
Satisfazibilidade (IX)
Resolvendo Utilizando SAT
O problema de coloração impõe as seguintes
restrições:
Todo elemento deve possuir uma cor.
Elementos adjacentes devem possuir cores
diferentes.
Para resolver utilizando algoritmos para SAT
Basta codicar as restrições como fórmulas lógicas.
Se a fórmula lógica for SAT então o mapa pode ser
colorido utilizando k cores.
R. Ribeiro
Aplicação: Resolvendo Problemas Usando Lógica
Satisfazibilidade (X)
Restrição 1
Se o mapa a ser colorido possui n elementos e você
deseja colorí-lo com k cores, representaremos a
possibilidade de que o elemento i possui a cor j pela
variável xij . Então a primeira restrição seria:
n _
k
^
xij
i =1 j =1
R. Ribeiro
Aplicação: Resolvendo Problemas Usando Lógica
Satisfazibilidade (XI)
Restrição 2
Para cada par de elementos adjacentes (ea , eb ) temos
que as cores destes devem ser diferentes. Para isso,
basta para cada par de elementos adjacentes,
construir a seguinte fórmula:
xak → ¬xbk = ¬xak ∨ ¬xbk
onde xak , xbk são as variáveis que representam o fato
de que ea e eb possuem a cor k .
R. Ribeiro
Aplicação: Resolvendo Problemas Usando Lógica
Satisfazibilidade (XII)
Resolvendo para o Exemplo
SP
MG
RJ
ES
R. Ribeiro
Aplicação: Resolvendo Problemas Usando Lógica
Satisfazibilidade (XIII)
Exercício
O jogo do 15 é bem conhecido e objetivo é
movimentar as peças deste quebra cabeça para que
este chegue a conguração apresentada na gura a
seguir.
Apresente uma fórmula da lógica que é verdadeira se
e somente se o quebra-cabeça está resolvido.
R. Ribeiro
Aplicação: Resolvendo Problemas Usando Lógica
Download