Inteligência Artificial (SI 214)
Aula 5
Problemas de Satisfação de
Restrições
Prof. Josenildo Silva
jcsilva@ifma.edu.br
© 2012 Josenildo Silva (jcsilva@ifma.edu.br)
Este material é derivado dos slides de Hwee Tou Ng, disponível no site do livro AIMA (Russel & Norvig) para professores e instrutores.
Leitura obrigatória
• Leia o Capítulo 5 do livro AIMA
Sumário
• Problemas de Restrição de Satisfação (CSP)
• Busca com Backtracking para CSPs • Busca Local para CSPs
Problemas de Satisfação de
Restrições (CSPs)
• Problema de Busca Padrão:
– estado é uma caixa preta "black box“
– qualquer estrutura que suporte a função sucessor, heuristicas, e teste de objetivo.
• CSP:
– estado é definido por variáveis Xi com valores de um dominio Di
– teste de objetivo é um conjunto de restrições especificando combinações permitidas de valores para as variáveis
• Representa uma linguagem formal de representação
• Permite algorimos úteis de propósito geral com mais poder que algoritmos de busca padrão
Exemplo: colorir mapa
• Variáveis WA, NT, Q, NSW, V, SA, T
• Dominios Di = {red,green,blue}
• Restrições: regiões adjacentes devem ter cores diferentes
• Ex: WA ≠ NT, or (WA,NT) in
{(red,green),(red,blue),(green,red), (green,blue),(blue,red),(blue,green)}
Exemplo: colorir mapa
• Soluções são atribuições completas e
consistentes
• Ex: WA = red, NT = green,Q = red,NSW = green,V = red,SA = blue,T = green
Grafo de Restrições
• CSP Binário: cada restrição relaciona duas váriaveis
• Grafo de restrições representa um CSP Binário:
Variáveis em CSPs
• Discretas com Domínio Finitos
– n variáveis, tamanho do dominio d
Variáveis em CSPs (2)
• Discretas com Domínio Infinitos:
– inteiros, strings, etc.
– Ex: escalonamento de tarefas, variaveis são inicio/fim para cada tarefa
– precisa de uma linguagem de restrição, ex: StartJob1 + 5 ≤ StartJob3
Variáveis em CSPs (3)
• Variáveis Contínuas
– Ex: tempo de inicio/fim para observações com o telescópio Hubble
– restrições lineares são resolvíveis em tempo polinomial com programação linear
Tipos de Restrições
• Unárias: envolvem uma única variável
– ex. SA ≠ green
• Binárias: envolvem pares de variáveis
– ex. SA ≠ WA
• N-arias (high order): envolvem 3 ou mais variáveis
Exemplo: Cryptarithmetica
• Variables: F T U W R O X1 X2 X3 • Domains: {0,1,2,3,4,5,6,7,8,9} • Constraints: Alldiff (F, T, U, W, R, O) – O + O = R + 10 · X1 – X1 + W + W = U + 10 · X2 – X2 + T + T = O + 10 · X3 – X3 = F, T ≠ 0, F ≠ 0Problemas Reais de CSPs
• Problemas de Escala
– Ex: quem ministrará qual disciplina?
• Problemas de Horário
– Ex: quando e onde cada disciplina será oferecida?
• Logística de Transporte
• Escalonamento em Fábrica
• Muitos problemas envolvem variáveis com valores reais
Formulação padrão de busca
(incremental)
• Abordagem básica:
– Estados são definidos pelos valores atribuidos até o momento
– Estado inicial: atribuição vazia { }
– Função Successor: atribui um valor para uma variável não atribuida, sem entrar em conflito com as atribuições existentes
• Falha, caso não haja atribuições legais
Formulação padrão de busca
(incremental)
• Esta formulação serve para todos os CSPs • Uma solução aparece no nível n com n
variáveis
– Busca em profundidade é uma boa escolha
• O caminho é irrelevante, então pode-se
utilizar uma formulação de estado completo.
– Cada estado é uma atribuição completa
• O número de nodos na árvore de busca é de
Busca com Backtracking
• Atribuições são comutativas
[ WA = red seguido de NT = green ] é o mesmo que
[ NT = green seguido de WA = red ]
• Considera-se apenas atribuições para uma variável por vez em cada nodo • Com estas suposições, o número de
Busca com Backtracking
• Busca com bracktracking: busca em
profundidade para CSPs com atribuição a variáveis simples
• É o algoritmo de busca cega mais básico para CSPs
Melhorando a eficiencia da busca
com backtracking
• Métodos de propósito geral podem nos dar grande ganhos em velocidade:
– Qual a próxima variável devemos atribuir? – Em qual ordem os valores devem ser
tentandos?
Variável Mais Restrita
• A variável mais restrita é que possui menor número de valores legais
• Abordagem também conhecida como
heuristica dos valores remanescentes
Variável Mais Restrita
• Desempate entre variáveis restritas
Valor Menos Restritivo
• Dada uma variável, escolha o valor que seja menos restritivo:
– O que descarta menos valores para as variáveis restantes
• Combinando estas duas heurísticas torna possível resolver 1000 queens
Verificação Adiante
• Ideia:
– Manha registro dos valores legais que ainda podem ser utiliazados para variáveis não atribuídas
– Encerra a busca quando qualquer variável não tem valores legais
Verificação Adiante
• Ideia:
– Manha registro dos valores legais que ainda podem ser utiliazados para variáveis não atribuídas
– Encerra a busca quando qualquer variável não tem valores legais
Verificação Adiante
• Ideia:
– Manha registro dos valores legais que ainda podem ser utiliazados para variáveis não atribuídas
– Encerra a busca quando qualquer variável não tem valores legais
Verificação Adiante
• Ideia:
– Matenha registro dos valores legais que ainda
podem ser utiliazados para variáveis não atribuídas – Encerra a busca quando qualquer variável não tem
Propagação de Restrições
• Verificação adiante propaga informação das variáveis atribuídas para as não-atribuídas mas não detecta cedo todas as falhas:
• NT e SA não pode ser ambos azuis!
• Propagação de restrição repetidamente reforçam as restrições localmente
Consistência dos Arcos
• A maneira mais simples de propagação torna cada arco consistente
• X Y é consistente sse para cada valor de x há algum valor permitido de y
Consistência dos Arcos
• A maneira mais simples de propagação torna cada arco consistente
• X Y é consistente sse para cada valor de x há algum valor permitido de y
Consistência dos Arcos
• A maneira mais simples de propagação torna cada arco consistente
• X Y é consistente sse para cada valor de x há algum valor permitido de y
Consistência dos Arcos
• A maneira mais simples de propagação torna cada arco consistente
• X Y é consistente sse para cada valor de x há algum valor permitido de y
Algoritmo AC-3: consistência de arcos
Busca Local para CSPs
• Busca local funciona tipicamente com estados "completos", i.e., todas as variáveis atribuidas • Adaptando para CSPs:
– Permitir estados com restrições não satisfeitas – Operadores reatribuem valores
• Seleção de variáveis: selecionar
randomicamente qualquer variável em conflito • Heurística min-conflicts para seleção:
– Escolha a variável que viole menos restrições
Exemplo: 4-Rainhas
• Estados: 4 rainhas em 4 colunas (256 states) • Ações: mover rainha em uma coluna
• Teste de objetivo: não há ataques
• Avaliação: h(n) = número de ataques
• Dado um estado inicial qualquer, este método pode resolver n-queens quase em tempo constante para valor arbitrário de n com alta probabilidade (ex: n = 10,000,000)
Resumo
• CSPs são tipo especial de problema:
– estados são definidos por valores de variáveis
– teste de objetivo é definido por restrições nos valores das variáveis
• Backtracking = busca em profundidade com uma variável atribuida por vez
• Verificação adiante previne atribuições que levam a falha futura
• Propagação de restrições ajuda a restringir valores e detectar inconsistencias