Professional Documents
Culture Documents
Roteiro
Conceitos bsicos Busca cega simples e refinada Busca heurstica CSP iterativo
tipo de problema que impe propriedades estruturais adicionais soluo a ser encontrada h uma demanda mais refinada do que na busca clssica
ex. ir de Recife Cajazeiras com no mximo 3 tanques
um conjunto de variveis que podem assumir valores dentro de um dado domnio um conjunto de restries que especificam propriedades da soluo valores que essas variveis podem assumir
CSP: Formulao
Estados: definidos pelos valores possveis das variveis Estado inicial: nenhuma varivel instanciada ainda Operadores: atribuem valores s variveis Teste de trmino: verificar se todas as variveis esto instanciadas obedecendo as restries do problema Soluo: conjunto dos valores das variveis instanciadas Custo de caminho: nmero de passos de atribuio
4
O domnio pode ser discreto (fabricantes de uma pea do carro) ou contnuo (peso das peas do carro)
unrias (sobre uma nica varivel) binrias (sobre duas variveis) - ex. 8-rainhas n-rias - ex. palavras cruzadas a restrio unria um sub-conjunto do domnio, enquanto que a n-ria um produto cartesiano dos domnios
absolutas (no podem ser violadas) preferenciais (devem ser satisfeitas quando possvel)
5
Exemplo
Jogo das 8-rainhas
variveis: localizao das rainhas valores: possveis posies do tabuleiro restrio binria: duas rainhas no podem estar na mesma coluna, linha ou diagonal soluo: valores para os quais a restrio satisfeita
estado inicial: variveis sem atribuio aplica operador: instanciar uma varivel teste de parada: todas variveis instanciadas sem violaes
pode ser implementada com busca em profundidade limitada ( l = nmero de variveis) completa fator de expanso: i |Di| o teste de parada decomposto em um conjunto de restries sobre as variveis
7
Anlise
A
C E F
perda de tempo, pois continua mesmo que uma restrio j tenha sido violada
no se pode mais redimir o erro
Soluo: Backtracking
depois de realizar uma atribuio, verifica se restries no so violadas caso haja violao backtrack
A C C E
B B
F F
A C E F
Backtracking no basta...
Problema do backtracking:
no adianta mexer na 7a. rainha para tentar posicionar a ltima O problema mais em cima...
O backtrack tem que ser de mais de um passo
Solues
checking)
Propagao de restries
12
Algoritmo:
Aps cada atribuio, elimina do domnio das variveis no instanciadas os valores incompatveis com as atribuies feitas at agora Se um domnio torna-se vazio, backtrack imediatamente
Propagao de Restries
Forward checking um caso particular de
verificao de arco-consistncia
um estado arco-consistente se o valor de cada varivel consistente com as restries sobre esta varivel arco-consistncia obtida por sucessivas eliminaes de valores inconsistentes uma conseqncia da verificao de arco-consistncia quando um valor eliminado, outros podem se tornar inconsistentes e terem que ser eliminados tambm como uma onda que se propaga: as escolhas ficam cada vez mais restritas 14
Propagao de restries
A=red => B, C, E ={green,blue} (restries c/ A) => D, F ={red,green,blue} B=green => E = {blue}, F = {red, blue} (restries c/ B) => C ={green,blue}, D ={red,green,blue} C = green => E ={blue}, F = {red, blue} (restries c/ C) => D = {red,green,blue} D=red, E=blue, F=?? C
Backtracking!! D=green, E=blue, F=red
Ordenando a escolha da varivel a instanciar Ordenando a escolha do valor a ser associado a uma varivel varivel mais restritiva: varivel envolvida no maior nmero de restries preferida
varivel mais restringida: varivel que pode assumir menos valores preferida
valor menos restritivo: valor que deixa mais liberdade para futuras escolhas
16
E = green Candidatas: F, ...resto F = red Candidatas: A, B, C, D A= red Candidatas: B, C, D B= blue Candidatas: C, D C= blue D = green SEM BACKTRACK!!
1
Candidatas1:
E, F, ...resto
A C E
B B
em ordem de prioridade
A C E F
B B
A C E F
CSP iterativo
CSP pode ser resolvido iterativamente
1) instancia aleatoriamente todas variveis 2) aplica operadores para trocar os valores e ento diminuir nmero de restries no satisfeitas (min-conflicts).
Heurstica de reparos
repara inconsistncias
CSP
Grande importncia prtica, sobretudo em tarefas de
criao (design) agendamento (scheduling) onde vrias solues existem e mais fcil dizer o que no se quer...
Grandes aplicaes industriais $$$$ Nmero crescente de artigos nas principais conferncias
Estado atual
Observao:
a sigla CSP tambm usada para falar de Constraint Satisfaction Programming, que um paradigma de programao
21
Prxima aula
Reviso da lista para a prova
No faltem...
22