Post on 16-Dec-2015
description
1lnteligncia Artificial
Problemas de Satisfao de Restries
2Constraint Satisfaction Problems(CSP)
Conceitos bsicos
Busca cega simples e refinada
Busca heurstica
CSP iterativo
3Constraint 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 domnio2. um conjunto de restries que especificam
propriedades da soluo valores que essas variveis podem assumir.
4Constraint Satisfaction Problems (CSP)Formulao: Estados: definidos pelos valores possveis das variveis Estado inicial: nenhuma varivel instanciada Operadores: atribuem valores (instanciao) s
variveisUma 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
5CSP: 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)
6ExemploProblema 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
7Busca 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
8Exemplo: colorao de mapasvariveis: A,B,C,D,E,Fdomnio: 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 B
C
D
E
F
Solucionar usando busca em profundidade limitada com l=6.
9A=g, B=C=D=E=F=x
A=g, B=g, C=D=E=F=xFalha!
A=g, B=r, C=D=E=F=x
A=g, B=r, C=g, D=E=F=xFalha!
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=xFalha!
A=g, B=r, C=r, D=g, E=r, F=xFalha!
A=g, B=r, C=r, D=g, E=b, F=xFalha!
. . .
retrocesso
rvore de Busca
10
Simulao A B C D E F
gr
b
A B C D E Fgr
b
A B C D E Fgr
b
A B C D E Fgr
b
A B C D E Fgr
b
A B C D E Fgr
b
A B C D E Fgr
b
A B C D E Fgr
b
A B C D E Fgr
b. . .
11
1. A= green2. B = green (falha c/ A)3. B=red4. C=green (falha c/ A)5. C= red6. D=green7. E= green (falha c/ A)8. E= red (falha c/ B)9. E= blue10. F=green (falha c/ D)11. F=red (falha c/ B)12. F = blue (falha c/ E) 13. E (falha) 14. D=red15. E=green (falha c/ A)16. E= red (falha c/ B)17. E= blue18. F=green
Exemplo: colorao de mapas
variveis: A,B,C,D,E,Fdomnio: 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 BC
DE
F
Simulando passo a passo:
A B
DFE
C
12
Exemplo: colorao de mapasvariveis: A,B,C,D,E,Fdomnio: 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 B
C
D
E
F
Solucionar usando busca em profundidade limitada com l=6.
Nova ordem, novo resultado
13
A=redB=greenC=blueD=redE= ?? BacktrackingD=greenE=?? BacktrackingD=blueE=?? BacktrackingD= ?? BacktrackingC = greenD = greenE = blueF=red
Exemplo: colorao de mapas
A BC
DE
F
variveis: A,B,C,D,E,Fdomnio: 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
Mas poderia comear por red e fazer outra forma de seleo de valores no domnio ...
A BC
DE
FMais retrocessos!!
14
Backtracking no basta... Problema do backtracking:
no adianta mexer na 7a. rainha para poder posicionar a ltima.
O problema mais em cima... O backtracknormalmente tem que ser de mais de um passo
Solues: Verificao prvia (forward checking) Propagao de restries
15
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!
16
Exemplo: colorao de mapasvariveis: A,B,C,D,E,Fdomnio: 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 B
C
D
E
F
Solucionar usando busca em profundidade limitada com l=6 e verificao prvia.
17
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=?? backtracking6. E=?? Backtracking7. D=red E={b}, F={g,b}8. E= blue F={g}9. F=green
Exemplo: colorao de mapasvariveis: A,B,C,D,E,Fdomnio: 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
Simulando passo a passo:
A B
DF
E
C
18
Propagao de restries
Propagao de restries (constraintpropagation)
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
19
Exemplo: colorao de mapasvariveis: A,B,C,D,E,Fdomnio: 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 B
C
D
E
F
Solucionar usando busca em profundidade limitada com l=6 e verificao prvia combinada com propagao de restries
20
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= blue6. F=green
Sem retrocesso!
Exemplo: colorao de mapasvariveis: A,B,C,D,E,Fdomnio: 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
Simulando passo a passo:
A B
DF
E
C
21
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)
22
Varivel mais restritiva(varivel envolvida no maior nmero de restries)
variveis: A,B,C,D,E,Fdomnio: 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 BC
DE
F
A BC
DE
F
Candidatas1: E, F, ...restoE = green
Candidatas: F, ...restoF = red
Candidatas: A, B, C, DA= red
Candidatas: B, C, DB= blue
Candidatas: C, DC= blueD = green
SEM BACKTRACK!!
1 em ordem de prioridade (4, 4, 3, 3, 3, 1)
23
Colorao de mapas: varivel mais restringida(varivel que pode assumir menos valores)
variveis: A,B,C,D,E,Fdomnio: 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 BC
DE
F
A BC
DE
F
Candidatas: todasA = 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=greenD = red ou blue
SEM BACKTRACK!!
24
Colorao de mapas: valor menos restritivo(valor que deixa mais liberdade)
variveis: A,B,C,D,E,Fdomnio: Da=Db...=Df={green,red,blue}restries: A B; A C; A E; B E; B F;
C E; C F; D F; E F1. A = green B(br), C(br), D(grb), E(br), F(grb)2. B=r ou B=b poda liberdade igualmente faz escolha na ordemB = 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=rC= 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=rD = red E(b), F(gb)5. E= blue F(g)6. F=green
SEM BACKTRACK!!
A BC
DE
F
A BC
DE
F
25
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