SOES #54 - Constraint Logic Programming

Page 1

Constraint Logic Programming Thiago do Nascimento Ferreira


Sumário Parte 01

Definições

Parte 02

Estudo Empírico

Parte 03

Demonstração

Parte 04

Conclusão


Definições


Programação por Restrição

Um paradigma para formulação e resolução de problemas que são naturalmente definidos em termos de restrições e um conjunto de variáveis

Ivan Bratko


Programação por Restrição

Programação por Restrição representa a abordagem mais próxima para atingir o Santo Graal da programação: usuário declara o problema e o computador resolve

Eugene C. Freuder


Programação por Restrição

Resolver tais problemas consiste em encontrar uma combinação de valores que satisfaçam as restrições.

Constraint Logic Programming (CLP) consiste em combinar a abordagem restritiva com programação lógica.


Programação por Restrição

Ramos: ● Satisfação por Restrição ○ Domínios Finitos ○ Aplicações Industriais ● Resolução de Restrições ○ Domínios mais complexos ou infinitos ○ Diferenciação Automática, Séries de Taylor, Método de Newton, Programação Linear


Satisfação de Restrições

Dado: 1. Conjunto de Variáveis 2. Domínio de cada variável a qual tira os valores 3. Restrições que as variáveis tem que satisfazer Encontrar: Uma atribuição de valores para as variáveis, satisfazendo as restrições.


Objetivos da Satisfação de Restrição Apenas uma solução, sem qualquer preferência

Todas as Soluções

Uma solução ótima, ou pelo menos uma boa solução dada uma função objetiva


Hist贸rico Gr谩ficos interativos Ivan Sutherland麓s[1963]

Processamento de imagens [Montanari 1970][Waltz 1975]

Modelagem de circuitos e diagn贸sticos [Borning 1977]


Histórico Contraint Logic Programming (CLP) [Jaffar and Lassez 1987]

PrologIII, CLP(R) [Colmerauer 1990]

Algoritmos de propagação em Inteligência Artificial


Técnicas de Resolução

Busca Sistemática

Técnicas de Consistência


Técnicas de Resolução

Busca Sistemática

Técnicas de Consistência

● Simples e Ineficientes ● “Gera e Testa” ● Backtracking


Técnicas de Resolução

Busca Sistemática

Técnicas de Consistência

● Simples e Ineficientes ● “Gera e Testa” ● Backtracking

● Raramente usada sozinha ● Consistência de Nó ● Consistência de Arco


Problemas Agendamento de Tarefas Diversos Jogos de L贸gica Sudoku Problema da Satisfatibilidade Booleana Problema das N Rainhas


Problema das N Rainhas


Problemas das N Rainhas

Problema Combinat처rio Exponencial

Colocar n rainhas em um tabuleiro com n dimens천es

N찾o pode ocorrer nenhum ataque


Exemplo 4 3

2

1


Exemplo 1 2 3 4


Exemplo 1 2 3 4 Rainha 1 ataca a Rainha 2


Exemplo 1 2 3 4


Exemplo 1 2 3 4 Nenhum ataque


Possível Solução 1 2 3 4


Possível Solução 1 2 3 4


Possível Solução 1 2 3 4


Possível Solução 1 2 3 4


Possível Solução 1 2 3 4 Nenhum ataque


Formulação do Problema Quais as variáveis do problema?

Qual o domínio de cada variável?

Quais as restrições do problema?


Formulação do Problema Quais as variáveis do problema? x1 , x 2 , x 3 , x 4 Qual o domínio de cada variável?

Quais as restrições do problema?


Formulação do Problema Quais as variáveis do problema? x1 , x 2 , x 3 , x 4 Qual o domínio de cada variável? dom(x1) = [1, 2, 3, 4] dom(x3 ) = [1, 2, 3, 4] dom(x2) = [1, 2, 3, 4] dom(x4) = [1, 2, 3, 4] Quais as restrições do problema?


Formulação do Problema Quais as variáveis do problema? x1 , x 2 , x 3 , x 4 Qual o domínio de cada variável? dom(x1) = [1, 2, 3, 4] dom(x3 ) = [1, 2, 3, 4] dom(x2) = [1, 2, 3, 4] dom(x4) = [1, 2, 3, 4] Quais as restrições do problema? C1 ← Q x ≠ Q y C2 ← | Qx - Qy | ≠ |x - y|


Algoritmo de Backtracking


Demonstração


Algoritmo em Prolog


Demonstração


Ferramentas


Ferramentas

Cassowary Constraint Solver

Comet

JaCoP


Ferramentas

Koalog

Logilab-Constraint

ZDC


Referências Notas de Aula da Disciplina Advanced Artificial Intelligence BAZZAN, A. L. C.. 2012 Distributed Constraint Satisfaction for Formalizing Distributed Problem Solving YOKOO. et al. 1992

Inteligência Artificial RUSSEL Stuart. NORVIG, Peter, 2ª Edição. Editora Campus Geração de Configurações de Sistemas Industriais com o Recurso à Tecnologia das Restrições e Computação Evolucionária TAVARES, J.A.R 2000


OBRIGADO Constraint Logic Programming por Thiago do Nascimento Ferreira


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.