Você está na página 1de 25

lnteligncia Artificial

Problemas de Satisfao de Restries

Constraint Satisfaction Problems


(CSP)
 Conceitos bsicos
 Busca cega simples e refinada
 Busca heurstica
 CSP iterativo
2

Constraint Satisfaction Problems (CSP)


 Um 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 consiste em:

1. um conjunto de variveis que podem assumir


valores dentro de um dado domnio
2. um conjunto de restries que especificam
propriedades da soluo valores que essas
variveis podem assumir.
3

Constraint Satisfaction Problems (CSP)


Formulao:
Estados: definidos pelos valores possveis das variveis
Estado inicial: nenhuma varivel instanciada
Operadores: atribuem valores (instanciao) s
variveis
Uma varivel por vez
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 i pode assumir
chamado 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)
n-rias
( a restrio unria um sub-conjunto do domnio, enquanto
que a n-ria um produto cartesiano dos domnios)

 Quanto natureza, as restries podem ser


absolutas (no podem ser violadas)
preferenciais (devem ser satisfeitas quando possvel)

Exemplo
 Problema das 8-rainhas
variveis: localizao das rainhas (coluna, linha)
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 com Retrocesso para CSP


 Funcionamento
estado inicial: variveis sem atribuio
aplica operador: instancia uma varivel
teste de parada: todas variveis instanciadas sem violaes

 Retrocesso (Backtracking)
depois de realizar uma atribuio, verifica se restries no so
violadas
caso haja violao retrocede

 Anlise

pode ser busca em profundidade limitada ( l = nmero de


variveis)
completa
fator de ramificao mxima: max(|Di|), expanso total: i (|Di|)
o teste de parada decomposto em um conjunto de restries
sobre as variveis
7

Exemplo: colorao de mapas


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

Solucionar usando busca em profundidade limitada com l=6.


8

A=g, B=C=D=E=F=x

A=g, B=g, C=D=E=F=x


Falha!

rvore de Busca

A=g, B=r, C=D=E=F=x

A=g, B=r, C=g, D=E=F=x


Falha!

A=g, B=r, C=r, D=E=F=x


...

A=g, B=r, C=r, D=g, E=F=x

A=g, B=r, C=r, D=g, E=g, F=x


Falha!

retrocesso

A=g, B=r, C=r, D=g, E=b, F=x


Falha!

A=g, B=r, C=r, D=g, E=r, F=x


Falha!
9

Simulao
A B C D E F

A B C D E F

A B C D E F

A B C D E F

A B C D E F

A B C D E F

A B C D E F

A B C D E F

A B C D E F

...
10

Exemplo: colorao de mapas


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;
EF
A
A

C
E
F

D
D
Simulando passo a passo:

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.

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= blue
F=green (falha c/ D)
F=red (falha c/ B)
F = blue (falha c/ E)
E (falha)
D=red
E=green (falha c/ A)
E= red (falha c/ B)
E= blue
F=green
11

Exemplo: colorao de mapas


Nova ordem,
novo resultado

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

C E; C F; D F; E F
A

C
E
F

Solucionar usando busca em profundidade limitada com l=6.


12

Exemplo: colorao de mapas


Mas poderia comear por red e fazer outra forma de seleo
de valores no domnio ...

A=red
variveis: A,B,C,D,E,F
B=green
domnio: Da=Db...=Df={red, green, blue}
C=blue
restries: A B; A C; A E; B E;
D=red
B F; C E; C F; D F;
E= ?? Backtracking
EF
D=green
E=?? Backtracking
B
D=blue
A
E=?? Backtracking
C
D= ?? Backtracking
C = green
D = green
E
E = blue
F
D
Mais retrocessos!!
F=red
13

Backtracking no basta...
 Problema do backtracking:
no adianta mexer na 7a. rainha para poder
posicionar a ltima.
O problema mais em cima... O backtrack
normalmente tem que ser de mais de um passo

 Solues:
Verificao prvia (forward checking)
Propagao de restries

14

Verificao Prvia
 Verificao prvia (forward checking)
idia: olhar para frente para detectar situaes
insolveis

 Algoritmo:
Aps cada atribuio, eliminar do domnio das
variveis no instanciadas os valores
incompatveis com as atribuies feitas at agora.
Se um domnio torna-se vazio, retrocede
imediatamente.

 bem mais eficiente!


15

Exemplo: colorao de mapas


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

Solucionar usando busca em profundidade limitada com l=6 e


verificao prvia.
16

Exemplo: colorao de mapas


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;
EF
A

C
E
F

Simulando passo a passo:


1. A= green B,C,E={r,b},
D,F={g,r,b}
2. B=red C={r,b}, D={g,r,b},
E={b}, F={g,b}
3. C= red D={g,r,b}, E={b},
F={g,b}
4. D=green E={b}, F={b}
5. E= blue F=?? backtracking
6. E=?? Backtracking
7. D=red E={b}, F={g,b}
8. E= blue F={g}
9. F=green

17

Propagao de restries
 Propagao de restries (constraint
propagation)
uma conseqncia da verificao prvia
quando um valor eliminado, isto propagado
para outros valores que dele dependem, podendo
torn-los inconsistentes e eliminados tambm
como uma onda que se propaga: as escolhas
ficam cada vez mais restritas

18

Exemplo: colorao de mapas


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

Solucionar usando busca em profundidade limitada com l=6 e


verificao prvia combinada com propagao de restries
19

Exemplo: colorao de mapas


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;
EF
A

C
E
F

Simulando passo a passo:


1. A= green B,C,E={r,b},
D,F={g,r,b}
2. B=red C={r,b}, D={g,r,b},
E={b}, F={g,b} C={r},
F={g}  D={r,b}
3. C= red D={r,b}, E={b},
F={g}
4. D=red E={b}, F={g}
5. E= blue
6. F=green
Sem retrocesso!

20

Heursticas para CSP


 Tenta 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

 Existem 3 heursticas para isto...


Varivel mais restritiva: varivel envolvida no maior nmero
de restries preferida (verifica restries)
Varivel mais restringida: varivel que pode assumir menos
valores preferida (verifica os domnios das variveis)
Valor menos restritivo: valor que deixa mais liberdade para
futuras escolhas (verifica os valores dos domnios e as
restries)
21

Varivel mais restritiva


(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;
Candidatas1: E, F, ...resto
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

em ordem de prioridade (4, 4, 3, 3, 3, 1)

B F; C E; C F; D F;
EF

BB

C
E
F

D
22

Colorao de mapas: varivel mais restringida


(varivel que pode assumir menos valores)

variveis: A,B,C,D,E,F
domnio: Da=Db...=Df={green,red,blue}
restries: A B; A C; A E; B E;
Candidatas: todas
A = green
Candidatas: B(rb), C(rb), E(rb), ...
B = red
Candidatas: E(b), C(rb), F(gb), ...
E=blue
Candidatas: C(r), F(g), D...
C=red
Candidatas: F(g), D(rgb)
F=green
D = red ou blue
SEM BACKTRACK!!

B F; C E; C F; D F;
EF

BB

C
E
F

D
23

Colorao de mapas: valor menos restritivo


(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
1. A = green B(br), C(br), D(grb), E(br), F(grb)
2. B=r ou B=b poda liberdade igualmente  faz escolha na ordem
B = red
C(rb), D(grb), E(b), F(gb)
3. C=r: D(grb), E(b), F(gb); C=b: D(grb), E( ), F(g)  escolhe C=r
C= red
D(grb), E(b), F(gb)
4. D=g: E(b), F(b); D=r: E(b), F(gb); D=b: E(b), F(g)  escolhe D=r
D = red
E(b), F(gb)
B
A
5. E= blue F(g)
6. F=green

SEM BACKTRACK!!

E
F

24

CSP concluses
 Grande importncia prtica, sobretudo em tarefas de
Criao, projeto (design)
Agendamento (scheduling)
onde vrias solues existem e mais fcil dizer o que no
se quer...

 Estado atual
Grandes aplicaes industriais $$$$
Nmero crescente de artigos nas principais conferncias

 Observao:
a sigla CSP tambm usada para falar de Constraint
Satisfaction Programmimg, que um paradigma de
programao
25

Você também pode gostar