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