Você está na página 1de 22

Introduo aos Agentes Inteligentes

Aula: Busca com Satisfao de Restries Constraint Satisfaction Problems (CSP)


Flvia Barros

Roteiro
Conceitos bsicos Busca cega simples e refinada Busca heurstica CSP iterativo

Constraint Satisfaction Problems


Problema de Satisfao de Restries

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

de gasolina e 7 horas de viagem

Um CSP consistem em:

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

CSP: caractersticas das restries


O conjunto de valores que a varivel pode assumir chamado de domnio (Di)

O domnio pode ser discreto (fabricantes de uma pea do carro) ou contnuo (peso das peas do carro)

Quanto aridade, as restries podem ser


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

Quanto natureza, as restries podem ser


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

Busca cega para CSP


Funcionamento

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

Exemplo: colorao de mapas


Simulao passo a passo... A= green B = green C= green D=green E=green F=green (falha c/ C, E, D) F=red E (falha c/ C,A,B) E=red (falha c/ F) E=blue C (falha c/ A) ... Muito dispendioso variveis: A,B,C,D,E,F domnio: {green,red,blue} restries: A B; A C; A E; B E; B F; C E; C F; D F; E F

A
C E F

Backtracking na Busca Cega


Problema da busca em profundidade

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

Exemplo: colorao de mapas


Simulao passo a passo... A= green B = green (falha c/ A) B=red C=green (falha c/ A) C= red D=green E= green (falha c/ A) E= red (falha c/ B e C) E= blue F=green (falha c/ D) F=red (falha c/ C) F = blue (falha c/ E) F backtracking E backtracking D=red E=green (falha c/ A) E= red (falha c/ B) E= blue F=green variveis: A,B,C,D,E,F domnio: Da=Db...=Df={green,red,blue} restries: A B; A C; A E; B E; B F; C E; C F; D F; E F

A C C E

B B

F F

Exemplo: colorao de mapas


Mas poderia ser mais complicado comeando por red... A=red B=green C=blue D=red E= ?? Backtracking D=green E=?? Backtracking D=blue E=?? Backtracking D= ?? Backtracking C = green D = green E = blue F=red variveis: A,B,C,D,E,F domnio: Da=Db...=Df={green,red,blue} restries: A B; A C; A E; B E; B F; C E; C F; D F; E 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

Verificao de arco-consistncia (forward

checking)

Propagao de restries
12

Busca Cega - Refinamentos


Verificao prvia (forward checking)

idia: olhar para frente para detectar situaes insolveis


ex. no restaurante self-service ou no bar...

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

bem mais eficiente!


13

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 (constraint propagation)


Exemplo: colorao de mapas


Passo a passo...

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

variveis: A,B,C,D,E,F domnios ={red,green,blue}

Heursticas para CSP


Tentam reduzir o fator de expanso do espao de estados Onde pode entrar uma heurstica?

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

Existem 3 heursticas para isto...

varivel mais restringida: varivel que pode assumir menos valores preferida
valor menos restritivo: valor que deixa mais liberdade para futuras escolhas
16

(varivel envolvida no maior nmero de restries)


variveis: A,B,C,D,E,F domnio: Da=Db...=Df={green,red,blue} restries: A B; A C; A E; B E; B F; C E; C F; D F; E F

Varivel mais restritiva

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

(varivel que pode assumir menos valores)


Candidatas: todas A = green Candidatas: B, C, E, ... B = red Candidatos: E, F, ... E=blue Candidatos: C, F, D C=red Candidatos: F, D F=green D = blue ou red SEM BACKTRACK!! variveis: A,B,C,D,E,F domnio: Da=Db...=Df={green,red,blue} restries: A B; A C; A E; B E; B F; C E; C F; D F; E F

Varivel mais restringida

A C E F

B B

(valor que deixa mais liberdade)


variveis: A,B,C,D,E,F domnio: Da=Db...=Df={green,red,blue} restries: A B; A C; A E; B E; B F; C E; C F; D F; E F
Comeando com A = green B = red C=??? red melhor do que blue

Valor menos restritivo

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

Min-conflict resolve 8 rainhas em menos de 50 passos!!!


Nmero de ataques

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

Você também pode gostar