slides

Propaganda
Inteligência Artificial (SI 214)
Aula 5
Problemas de Satisfação de
Restrições
Prof. Josenildo Silva
[email protected]
2012
© 2012 Josenildo Silva ([email protected])
Este material é derivado dos slides de Hwee Tou Ng, disponível no site
do livro AIMA (Russel & Norvig) para professores e instrutores.
http://aima.eecs.berkeley.edu/slides-ppt
Leitura obrigatória
• Leia o Capítulo 5 do livro AIMA
– Seções 5.1, 5.2 e 5.3
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:
– nodos são variáveis, arcos são restrições
Variáveis em CSPs
• Discretas com Domínio Finitos
– n variáveis, tamanho do dominio d
– há O(dn) atribuições completas
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
– ex. Restrições de cryptarithmetica
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 ≠ 0
Exemplo: Cryptarithmetica
Problemas 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
– Teste de objetivo: a atribuição está completa
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
O(n!dn)
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
nodos na árvore de busca é O(dn)
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
• Pode resolver n-queens para n ≈ 25
Busca com Backtracking
Exemplo de Backtracking
Exemplo de Backtracking
Exemplo de Backtracking
Exemplo de Backtracking
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?
– Podemos detectar falha inevitável cedo?
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
minimos (MRV)
Variável Mais Restrita
• Desempate entre variáveis restritas
– Escolha a variável com mais restrições
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
valores legais
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
• Complexidade de tempo: O(n2d3)
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
– Ex: hill-climb com h(n) = total de restrições violadas
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
• Heurística min-conflicts é bastante efetiva na prática
Download