DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
(ACH2044) Inteligência Artificial - Aula 07
1. Inteligência Artificial – ACH2016
Aula 07 – Problemas de Satisfação de
Restrições II
Norton Trevisan Roman
(norton@usp.br)
21 de março de 2019
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 1 / 43
2. Backtracking Search – Exemplo
Busca + forward checking + heurı́sticas
Vamos ver agora o algoritmo de busca retroativa
com forward checking, usando as heurı́sticas:
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 2 / 43
3. Backtracking Search – Exemplo
Busca + forward checking + heurı́sticas
Vamos ver agora o algoritmo de busca retroativa
com forward checking, usando as heurı́sticas:
Valores restantes mı́nimos
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 2 / 43
4. Backtracking Search – Exemplo
Busca + forward checking + heurı́sticas
Vamos ver agora o algoritmo de busca retroativa
com forward checking, usando as heurı́sticas:
Valores restantes mı́nimos
Grau
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 2 / 43
5. Backtracking Search – Exemplo
Busca + forward checking + heurı́sticas
Vamos ver agora o algoritmo de busca retroativa
com forward checking, usando as heurı́sticas:
Valores restantes mı́nimos
Grau
Valor Menos Restritivo
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 2 / 43
6. Backtracking Search – Exemplo
Busca + forward checking + heurı́sticas
Vamos ver agora o algoritmo de busca retroativa
com forward checking, usando as heurı́sticas:
Valores restantes mı́nimos
Grau
Valor Menos Restritivo Fonte: Slides de AIMA. Russell & Norvig.
Suponha que temos o mesmo problema de coloração
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 2 / 43
7. Backtracking Search – Exemplo
Busca + forward checking + heurı́sticas
Vamos ver agora o algoritmo de busca retroativa
com forward checking, usando as heurı́sticas:
Valores restantes mı́nimos
Grau
Valor Menos Restritivo Fonte: Slides de AIMA. Russell & Norvig.
Suponha que temos o mesmo problema de coloração
Mas com restrições adicionais:
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 2 / 43
8. Backtracking Search – Exemplo
Busca + forward checking + heurı́sticas
Vamos ver agora o algoritmo de busca retroativa
com forward checking, usando as heurı́sticas:
Valores restantes mı́nimos
Grau
Valor Menos Restritivo Fonte: Slides de AIMA. Russell & Norvig.
Suponha que temos o mesmo problema de coloração
Mas com restrições adicionais:
NT e SA não aceitam azul
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 2 / 43
9. Backtracking Search – Exemplo
Passo 1: Definir variável e seu valor
Quem pintar?
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 3 / 43
10. Backtracking Search – Exemplo
Passo 1: Definir variável e seu valor
Quem pintar?
VRM:
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 3 / 43
11. Backtracking Search – Exemplo
Passo 1: Definir variável e seu valor
Quem pintar?
VRM: NT ou SA
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 3 / 43
12. Backtracking Search – Exemplo
Passo 1: Definir variável e seu valor
Quem pintar?
VRM: NT ou SA
Grau:
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 3 / 43
13. Backtracking Search – Exemplo
Passo 1: Definir variável e seu valor
Quem pintar?
VRM: NT ou SA
Grau: SA
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 3 / 43
14. Backtracking Search – Exemplo
Passo 1: Definir variável e seu valor
Quem pintar?
VRM: NT ou SA
Grau: SA
De que cor?
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 3 / 43
15. Backtracking Search – Exemplo
Passo 1: Definir variável e seu valor
Quem pintar?
VRM: NT ou SA
Grau: SA
De que cor?
VMR:
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 3 / 43
16. Backtracking Search – Exemplo
Passo 1: Definir variável e seu valor
Quem pintar?
VRM: NT ou SA
Grau: SA
De que cor?
VMR: vm ou vd
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 3 / 43
17. Backtracking Search – Exemplo
Passo 1: Definir variável e seu valor
Quem pintar?
VRM: NT ou SA
Grau: SA
De que cor?
VMR: vm ou vd
Escolha:
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 3 / 43
18. Backtracking Search – Exemplo
Passo 1: Definir variável e seu valor
Quem pintar?
VRM: NT ou SA
Grau: SA
De que cor?
VMR: vm ou vd
Escolha:
SA = vm
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 3 / 43
19. Backtracking Search – Exemplo
Passo 2: Propagar
Propague essa escolha
para os vizinhos do nó
no grafo de restrição
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 4 / 43
20. Backtracking Search – Exemplo
Passo 2: Propagar
Propague essa escolha
para os vizinhos do nó
no grafo de restrição
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 4 / 43
21. Backtracking Search – Exemplo
Passo 2: Propagar
Propague essa escolha
para os vizinhos do nó
no grafo de restrição
Repita a operação
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 4 / 43
22. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 5 / 43
23. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM:
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 5 / 43
24. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: NT
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 5 / 43
25. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: NT
De que cor?
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 5 / 43
26. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: NT
De que cor?
vd (não há outra)
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 5 / 43
27. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: NT
De que cor?
vd (não há outra)
Escolha:
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 5 / 43
28. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: NT
De que cor?
vd (não há outra)
Escolha:
NT = vd
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 5 / 43
29. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: NT
De que cor?
vd (não há outra)
Escolha:
NT = vd
Propagar
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 5 / 43
30. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 6 / 43
31. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM:
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 6 / 43
32. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou Q
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 6 / 43
33. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou Q
Grau:
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 6 / 43
34. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou Q
Grau: Q (grau 1)
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 6 / 43
35. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou Q
Grau: Q (grau 1)
De que cor?
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 6 / 43
36. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou Q
Grau: Q (grau 1)
De que cor?
az (não há outra)
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 6 / 43
37. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou Q
Grau: Q (grau 1)
De que cor?
az (não há outra)
Escolha:
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 6 / 43
38. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou Q
Grau: Q (grau 1)
De que cor?
az (não há outra)
Escolha:
Q = az
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 6 / 43
39. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou Q
Grau: Q (grau 1)
De que cor?
az (não há outra)
Escolha:
Q = az
Propagar Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 6 / 43
40. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 7 / 43
41. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM:
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 7 / 43
42. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou NSW
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 7 / 43
43. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou NSW
Grau:
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 7 / 43
44. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou NSW
Grau: NSW (grau 1)
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 7 / 43
45. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou NSW
Grau: NSW (grau 1)
De que cor?
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 7 / 43
46. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou NSW
Grau: NSW (grau 1)
De que cor?
vd (não há outra)
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 7 / 43
47. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou NSW
Grau: NSW (grau 1)
De que cor?
vd (não há outra)
Escolha:
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 7 / 43
48. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou NSW
Grau: NSW (grau 1)
De que cor?
vd (não há outra)
Escolha:
NSW = vd
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 7 / 43
49. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou NSW
Grau: NSW (grau 1)
De que cor?
vd (não há outra)
Escolha:
NSW = vd
Propagar Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 7 / 43
50. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 8 / 43
51. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM:
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 8 / 43
52. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou V
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 8 / 43
53. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou V
Grau:
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 8 / 43
54. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou V
Grau: WA ou V → WA
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 8 / 43
55. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou V
Grau: WA ou V → WA
De que cor?
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 8 / 43
56. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou V
Grau: WA ou V → WA
De que cor?
az (não há outra)
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 8 / 43
57. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou V
Grau: WA ou V → WA
De que cor?
az (não há outra)
Escolha:
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 8 / 43
58. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou V
Grau: WA ou V → WA
De que cor?
az (não há outra)
Escolha:
WA = az
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 8 / 43
59. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: WA ou V
Grau: WA ou V → WA
De que cor?
az (não há outra)
Escolha:
WA = az
Propagar Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 8 / 43
60. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 9 / 43
61. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM:
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 9 / 43
62. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: V
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 9 / 43
63. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: V
De que cor?
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 9 / 43
64. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: V
De que cor?
az (não há outra)
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 9 / 43
65. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: V
De que cor?
az (não há outra)
Escolha:
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 9 / 43
66. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: V
De que cor?
az (não há outra)
Escolha:
V = az
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 9 / 43
67. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Quem pintar?
VRM: V
De que cor?
az (não há outra)
Escolha:
V = az
Propagar Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 9 / 43
68. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Por fim, sobra apenas
T
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 10 / 43
69. Backtracking Search – Exemplo
Definir variável e seu valor e propagar
Por fim, sobra apenas
T
Podemos dar qualquer
cor a ela...
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 10 / 43
71. Backtracking Search
Em suma...
O processo é repetido até:
Terminar o grafo, ou
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 11 / 43
72. Backtracking Search
Em suma...
O processo é repetido até:
Terminar o grafo, ou
Encontrar nó sem opções
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 11 / 43
73. Backtracking Search
Em suma...
O processo é repetido até:
Terminar o grafo, ou
Encontrar nó sem opções
Nesse último caso:
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 11 / 43
74. Backtracking Search
Em suma...
O processo é repetido até:
Terminar o grafo, ou
Encontrar nó sem opções
Nesse último caso:
Volta ao nó pai (backtracking)
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 11 / 43
75. Backtracking Search
Em suma...
O processo é repetido até:
Terminar o grafo, ou
Encontrar nó sem opções
Nesse último caso:
Volta ao nó pai (backtracking)
Escolhe outro valor para a variável problemática
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 11 / 43
76. Backtracking Search
Em suma...
O processo é repetido até:
Terminar o grafo, ou
Encontrar nó sem opções
Nesse último caso:
Volta ao nó pai (backtracking)
Escolhe outro valor para a variável problemática
Se não houver outro valor, volta ao pai e repete o
procedimento
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 11 / 43
77. Forward Checking
Vantagens
Reduz o número de valores considerados em cada
variável ainda sem valor
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 12 / 43
78. Forward Checking
Vantagens
Reduz o número de valores considerados em cada
variável ainda sem valor
Bastante eficiente se usada com a heurı́stica dos
valores restantes mı́nimos
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 12 / 43
79. Forward Checking
Vantagens
Reduz o número de valores considerados em cada
variável ainda sem valor
Bastante eficiente se usada com a heurı́stica dos
valores restantes mı́nimos
Desvantagem
Embora propague a informação das variáveis com
atribuição para as sem atribuição, forward checking
não consegue detectar todas as falhas de antemão
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 12 / 43
80. Forward Checking
Desvantagem – Exemplo
Considere a aplicação pura do forward checking,
conforme vista na aula passada
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 13 / 43
81. Forward Checking
Desvantagem – Exemplo
Considere a aplicação pura do forward checking,
conforme vista na aula passada
Ou seja, sua aplicação sem a ajuda das heurı́sticas vistas
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 13 / 43
82. Forward Checking
Desvantagem – Exemplo
Considere a aplicação pura do forward checking,
conforme vista na aula passada
Ou seja, sua aplicação sem a ajuda das heurı́sticas vistas
Fonte: Slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 13 / 43
83. Forward Checking
Desvantagem – Exemplo
Quando WA = vm e Q = vd, NT e SA são
forçados a serem azuis. Forward checking não olha
adiante o suficiente para ver essa inconsistência
Fonte: Slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 14 / 43
84. Forward Checking
Desvantagem – Exemplo
Solução:
Fonte: Slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 15 / 43
85. Forward Checking
Desvantagem – Exemplo
Solução:
Consistência de Arestas (Arc Consistency)
Fonte: Slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 15 / 43
86. Consistência de Arestas
Arestas Consistentes
Uma aresta X → Y será consistente se e somente
se, para todo valor x ∈ X, houver algum valor
y ∈ Y permitido
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 16 / 43
87. Consistência de Arestas
Arestas Consistentes
Uma aresta X → Y será consistente se e somente
se, para todo valor x ∈ X, houver algum valor
y ∈ Y permitido
Consistência de Arestas
A ideia da consistência de arestas é, a cada decisão,
tornar cada aresta do grafo consistente
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 16 / 43
88. Consistência de Arestas
Funcionamento – Exemplo
Se SA = az, há um valor consistente para NSW
(vermelho)
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 17 / 43
89. Consistência de Arestas
Funcionamento – Exemplo
Se SA = az, há um valor consistente para NSW
(vermelho)
SA → NSW é consistente
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 17 / 43
90. Consistência de Arestas
Funcionamento – Exemplo
Contudo, nem todo valor de NSW tem valor válido
em SA
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 18 / 43
91. Consistência de Arestas
Funcionamento – Exemplo
Contudo, nem todo valor de NSW tem valor válido
em SA
Se NSW = az, não há valor válido para SA
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 18 / 43
92. Consistência de Arestas
Funcionamento – Exemplo
Contudo, nem todo valor de NSW tem valor válido
em SA
Se NSW = az, não há valor válido para SA
NSW → SA não é consistente
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 18 / 43
93. Consistência de Arestas
Funcionamento – Exemplo
Podemos tornar a aresta NSW → SA consistente
removendo o valor azul do domı́nio de NSW
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 19 / 43
94. Consistência de Arestas
Funcionamento – Exemplo
Isso, no entanto, pode ter gerado inconsistências
com os vizinhos de NSW
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 20 / 43
95. Consistência de Arestas
Funcionamento – Exemplo
Isso, no entanto, pode ter gerado inconsistências
com os vizinhos de NSW
Não há valor válido em NSW para V = vm
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 20 / 43
96. Consistência de Arestas
Funcionamento – Exemplo
Isso, no entanto, pode ter gerado inconsistências
com os vizinhos de NSW
Não há valor válido em NSW para V = vm
Repetimos então o processo
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 20 / 43
97. Consistência de Arestas
Funcionamento – Exemplo
Continuando de outra aresta (no mesmo passo da
busca):
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 21 / 43
98. Consistência de Arestas
Funcionamento – Exemplo
Continuando de outra aresta (no mesmo passo da
busca):
Azul deve ser apagado ou de SA ou de NT → domı́nio vazio
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 21 / 43
99. Consistência de Arestas
Funcionamento – Exemplo
Continuando de outra aresta (no mesmo passo da
busca):
Azul deve ser apagado ou de SA ou de NT → domı́nio vazio
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 21 / 43
100. Consistência de Arestas
Funcionamento – Exemplo
Continuando de outra aresta (no mesmo passo da
busca):
Azul deve ser apagado ou de SA ou de NT → domı́nio vazio
Repetimos até tratarmos todas as possı́veis inconsistências
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 21 / 43
101. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Voltemos ao exemplo da aula passada
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 22 / 43
102. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Voltemos ao exemplo da aula passada
Definimos a cor da primeira variável
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 22 / 43
103. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Voltemos ao exemplo da aula passada
Definimos a cor da primeira variável
Verificamos as arestas, removendo cores que geram
inconsistências
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 22 / 43
104. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Voltemos ao exemplo da aula passada
Definimos a cor da primeira variável
Verificamos as arestas, removendo cores que geram
inconsistências
WA → NT ok
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 22 / 43
105. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Voltemos ao exemplo da aula passada
Definimos a cor da primeira variável
Verificamos as arestas, removendo cores que geram
inconsistências
NT → WA falhou
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 22 / 43
106. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Voltemos ao exemplo da aula passada
Definimos a cor da primeira variável
Verificamos as arestas, removendo cores que geram
inconsistências
Removemos a cor problemática
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 22 / 43
107. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Voltemos ao exemplo da aula passada
Definimos a cor da primeira variável
Verificamos as arestas, removendo cores que geram
inconsistências
WA → SA ok
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 22 / 43
108. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Voltemos ao exemplo da aula passada
Definimos a cor da primeira variável
Verificamos as arestas, removendo cores que geram
inconsistências
SA → WA falhou
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 22 / 43
109. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Voltemos ao exemplo da aula passada
Definimos a cor da primeira variável
Verificamos as arestas, removendo cores que geram
inconsistências
Removemos a cor problemática
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 22 / 43
110. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Voltemos ao exemplo da aula passada
Definimos a cor da primeira variável
Verificamos as arestas, removendo cores que geram
inconsistências
Como removemos valores de NT
e SA, verificamos seus vizinhos
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 22 / 43
111. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Voltemos ao exemplo da aula passada
Definimos a cor da primeira variável
Verificamos as arestas, removendo cores que geram
inconsistências
NT → Q ok
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 22 / 43
112. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Voltemos ao exemplo da aula passada
Definimos a cor da primeira variável
Verificamos as arestas, removendo cores que geram
inconsistências
Q → NT ok
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 22 / 43
113. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Voltemos ao exemplo da aula passada
Definimos a cor da primeira variável
Verificamos as arestas, removendo cores que geram
inconsistências
NT → SA ok
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 22 / 43
114. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Voltemos ao exemplo da aula passada
Definimos a cor da primeira variável
Verificamos as arestas, removendo cores que geram
inconsistências
SA → NT ok
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 22 / 43
115. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Voltemos ao exemplo da aula passada
Definimos a cor da primeira variável
Verificamos as arestas, removendo cores que geram
inconsistências
SA → Q ok
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 22 / 43
116. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Voltemos ao exemplo da aula passada
Definimos a cor da primeira variável
Verificamos as arestas, removendo cores que geram
inconsistências
Q → SA ok
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 22 / 43
117. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Voltemos ao exemplo da aula passada
Definimos a cor da primeira variável
Verificamos as arestas, removendo cores que geram
inconsistências
SA → NSW ok
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 22 / 43
118. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Voltemos ao exemplo da aula passada
Definimos a cor da primeira variável
Verificamos as arestas, removendo cores que geram
inconsistências
NSW → SA ok
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 22 / 43
119. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Voltemos ao exemplo da aula passada
Definimos a cor da primeira variável
Verificamos as arestas, removendo cores que geram
inconsistências
SA → V ok
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 22 / 43
120. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Voltemos ao exemplo da aula passada
Definimos a cor da primeira variável
Verificamos as arestas, removendo cores que geram
inconsistências
V → SA ok
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 22 / 43
121. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Voltemos ao exemplo da aula passada
Definimos a cor da primeira variável
Verificamos as arestas, removendo cores que geram
inconsistências
Arestas consistentes!
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 22 / 43
122. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Definimos a próxima variável e sua cor
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 23 / 43
123. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Definimos a próxima variável e sua cor
Q = vd
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 23 / 43
124. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Definimos a próxima variável e sua cor
Q = vd
Verificamos as arestas, removendo cores que geram
inconsistências
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 23 / 43
125. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Definimos a próxima variável e sua cor
Q = vd
Verificamos as arestas, removendo cores que geram
inconsistências
Q → NT ok
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 23 / 43
126. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Definimos a próxima variável e sua cor
Q = vd
Verificamos as arestas, removendo cores que geram
inconsistências
NT → Q falhou
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 23 / 43
127. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Definimos a próxima variável e sua cor
Q = vd
Verificamos as arestas, removendo cores que geram
inconsistências
Removemos a
cor problemática
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 23 / 43
128. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Definimos a próxima variável e sua cor
Q = vd
Verificamos as arestas, removendo cores que geram
inconsistências
Q → SA ok
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 23 / 43
129. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Definimos a próxima variável e sua cor
Q = vd
Verificamos as arestas, removendo cores que geram
inconsistências
SA → Q falhou
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 23 / 43
130. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Definimos a próxima variável e sua cor
Q = vd
Verificamos as arestas, removendo cores que geram
inconsistências
Removemos a
cor problemática
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 23 / 43
131. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Definimos a próxima variável e sua cor
Q = vd
Verificamos as arestas, removendo cores que geram
inconsistências
Q → NSW ok
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 23 / 43
132. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Definimos a próxima variável e sua cor
Q = vd
Verificamos as arestas, removendo cores que geram
inconsistências
NSW → Q falhou
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 23 / 43
133. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Definimos a próxima variável e sua cor
Q = vd
Verificamos as arestas, removendo cores que geram
inconsistências
Removemos a
cor problemática
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 23 / 43
134. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Definimos a próxima variável e sua cor
Q = vd
Verificamos as arestas, removendo cores que geram
inconsistências
Como removemos valores
de NT, SA e NSW ,
verificamos seus vizinhos
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 23 / 43
135. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Definimos a próxima variável e sua cor
Q = vd
Verificamos as arestas, removendo cores que geram
inconsistências
NT → SA falhou
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 23 / 43
136. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Definimos a próxima variável e sua cor
Q = vd
Verificamos as arestas, removendo cores que geram
inconsistências
Removemos a
cor problemática
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 23 / 43
137. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Definimos a próxima variável e sua cor
Q = vd
Verificamos as arestas, removendo cores que geram
inconsistências
Não temos mais como
atribuir cor a NT
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 23 / 43
138. B.S. com Consistência de Arestas
Exemplo (sem heurı́sticas)
Definimos a próxima variável e sua cor
Q = vd
Verificamos as arestas, removendo cores que geram
inconsistências
Teremos que voltar e
atribuir outra cor a Q
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 23 / 43
139. B.S. com Consistência de Arestas
Consistência × Forward Checking
Note que a inconsistência foi notada antes de
escolhermos uma nova variável
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 24 / 43
140. B.S. com Consistência de Arestas
Consistência × Forward Checking
Note que a inconsistência foi notada antes de
escolhermos uma nova variável
forward checking falha somente após escolhermos a próxima
variável (V = az)
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 24 / 43
141. Consistência de Arestas
Algoritmo AC-3 (Arc Consistency - 3)
Função AC-3(csp, Xi ): boolean
f ← fila das arestas ligadas a Xi
enquanto f não vazia faça
(Xi , Xj ) ← REMOVE PRIMEIRA(f )
se REVISAR(csp, Xi , Xj ) então
se DOMÍNIO(Xi ) = ∅ então
retorna F
para cada Xk em VIZINHOS(Xi ) − {Xj } faça
Adicione (Xk, Xi ) a f
retorna V
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 25 / 43
142. Consistência de Arestas
Algoritmo AC-3 (Arc Consistency - 3)
Grafo do problema
Função AC-3(csp, Xi ): boolean
f ← fila das arestas ligadas a Xi
enquanto f não vazia faça
(Xi , Xj ) ← REMOVE PRIMEIRA(f )
se REVISAR(csp, Xi , Xj ) então
se DOMÍNIO(Xi ) = ∅ então
retorna F
para cada Xk em VIZINHOS(Xi ) − {Xj } faça
Adicione (Xk, Xi ) a f
retorna V
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 25 / 43
143. Consistência de Arestas
Algoritmo AC-3 (Arc Consistency - 3)
Nó a partir do qual
iniciamos o algoritmo
Função AC-3(csp, Xi ): boolean
f ← fila das arestas ligadas a Xi
enquanto f não vazia faça
(Xi , Xj ) ← REMOVE PRIMEIRA(f )
se REVISAR(csp, Xi , Xj ) então
se DOMÍNIO(Xi ) = ∅ então
retorna F
para cada Xk em VIZINHOS(Xi ) − {Xj } faça
Adicione (Xk, Xi ) a f
retorna V
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 25 / 43
144. Consistência de Arestas
Algoritmo AC-3 (Arc Consistency - 3)
Retorna F se alguma
variável terminar sem
opção de valores (in-
consistência). Caso
contrário, retorna V
Função AC-3(csp, Xi ): boolean
f ← fila das arestas ligadas a Xi
enquanto f não vazia faça
(Xi , Xj ) ← REMOVE PRIMEIRA(f )
se REVISAR(csp, Xi , Xj ) então
se DOMÍNIO(Xi ) = ∅ então
retorna F
para cada Xk em VIZINHOS(Xi ) − {Xj } faça
Adicione (Xk, Xi ) a f
retorna V
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 25 / 43
145. Consistência de Arestas
Algoritmo AC-3 (Arc Consistency - 3)
Se o grafo for bidirecional,
isso significa as arestas
(Xi , Xj ) e (Xj , Xi ), para
todo Xj vizinho de Xi
Função AC-3(csp, Xi ): boolean
f ← fila das arestas ligadas a Xi
enquanto f não vazia faça
(Xi , Xj ) ← REMOVE PRIMEIRA(f )
se REVISAR(csp, Xi , Xj ) então
se DOMÍNIO(Xi ) = ∅ então
retorna F
para cada Xk em VIZINHOS(Xi ) − {Xj } faça
Adicione (Xk, Xi ) a f
retorna V
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 25 / 43
146. Consistência de Arestas
Algoritmo AC-3 (Arc Consistency - 3)
Indica se houve mudança
em alguma variável,
caso em que precisa-
mos revisar as arestas
Função AC-3(csp, Xi ): boolean
f ← fila das arestas ligadas a Xi
enquanto f não vazia faça
(Xi , Xj ) ← REMOVE PRIMEIRA(f )
se REVISAR(csp, Xi , Xj ) então
se DOMÍNIO(Xi ) = ∅ então
retorna F
para cada Xk em VIZINHOS(Xi ) − {Xj } faça
Adicione (Xk, Xi ) a f
retorna V
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 25 / 43
147. Consistência de Arestas
Algoritmo AC-3 (Arc Consistency - 3)
Função REVISAR(csp, Xi , Xj ): boolean
revisado ← F
para cada valor x em DOMÍNIO(Xi ) faça
se não houver valor y ∈ DOMÍNIO(Xj ) que satisfaça a
restrição entre Xi e Xj então
Apague x de DOMÍNIO(Xi )
revisado ← V
retorna revisado
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 26 / 43
148. Consistência de Arestas
Algoritmo AC-3 (Arc Consistency - 3)
Trata somente
da aresta (Xi , Xj )
Função REVISAR(csp, Xi , Xj ): boolean
revisado ← F
para cada valor x em DOMÍNIO(Xi ) faça
se não houver valor y ∈ DOMÍNIO(Xj ) que satisfaça a
restrição entre Xi e Xj então
Apague x de DOMÍNIO(Xi )
revisado ← V
retorna revisado
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 26 / 43
149. Consistência de Arestas
Algoritmo AC-3 (Arc Consistency - 3)
Retorna T somente
se precisarmos revi-
sar o domı́nio de Xi
Função REVISAR(csp, Xi , Xj ): boolean
revisado ← F
para cada valor x em DOMÍNIO(Xi ) faça
se não houver valor y ∈ DOMÍNIO(Xj ) que satisfaça a
restrição entre Xi e Xj então
Apague x de DOMÍNIO(Xi )
revisado ← V
retorna revisado
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 26 / 43
151. Consistência de Arestas
Onde utilizar
Como um pré-processador do grafo, antes da busca
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 27 / 43
152. Consistência de Arestas
Onde utilizar
Como um pré-processador do grafo, antes da busca
Nesse caso, f receberá todas as arestas do grafo,
inicialmente
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 27 / 43
153. Consistência de Arestas
Onde utilizar
Como um pré-processador do grafo, antes da busca
Nesse caso, f receberá todas as arestas do grafo,
inicialmente
A cada passo da busca
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 27 / 43
154. Consistência de Arestas
Onde utilizar
Como um pré-processador do grafo, antes da busca
Nesse caso, f receberá todas as arestas do grafo,
inicialmente
A cada passo da busca
Após atribuirmos um valor a uma variável, como fizemos
com o forward checking
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 27 / 43
155. Consistência de Arestas
Problema
Não necessariamente Consistência de Arestas
aponta de antemão todas as possı́veis
inconsistências
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 28 / 43
156. Consistência de Arestas
Problema
Não necessariamente Consistência de Arestas
aponta de antemão todas as possı́veis
inconsistências
Ex: considere a sequência de escolhas
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 28 / 43
157. Consistência de Arestas
Problema
Não necessariamente Consistência de Arestas
aponta de antemão todas as possı́veis
inconsistências
Ex: considere a sequência de escolhas
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 28 / 43
158. Consistência de Arestas
Problema
Não necessariamente Consistência de Arestas
aponta de antemão todas as possı́veis
inconsistências
Ex: considere a sequência de escolhas
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 28 / 43
159. Consistência de Arestas
Problema
Não necessariamente Consistência de Arestas
aponta de antemão todas as possı́veis
inconsistências
Ex: considere a sequência de escolhas
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 28 / 43
160. Consistência de Arestas
Problema
Não necessariamente Consistência de Arestas
aponta de antemão todas as possı́veis
inconsistências
Ex: considere a sequência de escolhas
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 28 / 43
161. Consistência de Arestas
Problema
Não necessariamente Consistência de Arestas
aponta de antemão todas as possı́veis
inconsistências
Ex: considere a sequência de escolhas
Inconsistência! E
não foi apontada
pelo algoritmo.
Fonte: Adaptado dos slides de AIMA. Russell & Norvig.
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 28 / 43
162. Consistência de Arestas
Forward Checking × Consistência de Arestas
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 29 / 43
163. Consistência de Arestas
Forward Checking × Consistência de Arestas
Forward checking:
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 29 / 43
164. Consistência de Arestas
Forward Checking × Consistência de Arestas
Forward checking:
Propaga as restrições apenas aos vizinhos de variáveis com
valor
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 29 / 43
165. Consistência de Arestas
Forward Checking × Consistência de Arestas
Forward checking:
Propaga as restrições apenas aos vizinhos de variáveis com
valor
Não é a técnica mais eficiente
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 29 / 43
166. Consistência de Arestas
Forward Checking × Consistência de Arestas
Forward checking:
Propaga as restrições apenas aos vizinhos de variáveis com
valor
Não é a técnica mais eficiente
Evita propagar as restrições no grafo todo
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 29 / 43
167. Consistência de Arestas
Forward Checking × Consistência de Arestas
Forward checking:
Propaga as restrições apenas aos vizinhos de variáveis com
valor
Não é a técnica mais eficiente
Evita propagar as restrições no grafo todo
Consistência de arestas:
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 29 / 43
168. Consistência de Arestas
Forward Checking × Consistência de Arestas
Forward checking:
Propaga as restrições apenas aos vizinhos de variáveis com
valor
Não é a técnica mais eficiente
Evita propagar as restrições no grafo todo
Consistência de arestas:
Propaga as restrições ao grafo como um todo
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 29 / 43
169. Consistência de Arestas
Forward Checking × Consistência de Arestas
Forward checking:
Propaga as restrições apenas aos vizinhos de variáveis com
valor
Não é a técnica mais eficiente
Evita propagar as restrições no grafo todo
Consistência de arestas:
Propaga as restrições ao grafo como um todo
Detecta falhas antes do forward checking
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 29 / 43
170. Consistência de Arestas
Forward Checking × Consistência de Arestas
Forward checking:
Propaga as restrições apenas aos vizinhos de variáveis com
valor
Não é a técnica mais eficiente
Evita propagar as restrições no grafo todo
Consistência de arestas:
Propaga as restrições ao grafo como um todo
Detecta falhas antes do forward checking
Não revela toda inconsistência possı́vel
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 29 / 43
171. Problemas de Solução de Restrições
Metodologia Geral
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 30 / 43
172. Problemas de Solução de Restrições
Metodologia Geral
Use busca retroativa para resolver o problema
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 30 / 43
173. Problemas de Solução de Restrições
Metodologia Geral
Use busca retroativa para resolver o problema
A cada passo da busca
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 30 / 43
174. Problemas de Solução de Restrições
Metodologia Geral
Use busca retroativa para resolver o problema
A cada passo da busca
Use um método de propagação de restrições para propagar
os efeitos de cada tentativa de associação de valor a uma
variável
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 30 / 43
175. Problemas de Solução de Restrições
Metodologia Geral
Use busca retroativa para resolver o problema
A cada passo da busca
Use um método de propagação de restrições para propagar
os efeitos de cada tentativa de associação de valor a uma
variável
Forward checking ou Consistência de arestas
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 30 / 43
178. Constraint Satisfaction Problems
Vantagens
Podem ser mais rápidos que uma busca tradicional
Reduzem o número de ramos considerados na árvore original
(com todas as possibilidades)
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 31 / 43
179. Constraint Satisfaction Problems
Vantagens
Podem ser mais rápidos que uma busca tradicional
Reduzem o número de ramos considerados na árvore original
(com todas as possibilidades)
Ao dar valor a uma variável, podemos eliminar várias outras
combinações que seriam tentadas por uma busca
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 31 / 43
180. Constraint Satisfaction Problems
Vantagens
Podem ser mais rápidos que uma busca tradicional
Reduzem o número de ramos considerados na árvore original
(com todas as possibilidades)
Ao dar valor a uma variável, podemos eliminar várias outras
combinações que seriam tentadas por uma busca
Uma vez que saibamos que uma associação parcial não é
uma solução, podemos descartar refinamentos posteriores
desta
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 31 / 43
182. Constraint Satisfaction Problems
Vantagens
Podemos ver por que uma associação parcial não é
uma solução
Podemos ver que variáveis violam quais restrições
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 32 / 43
183. Constraint Satisfaction Problems
Vantagens
Podemos ver por que uma associação parcial não é
uma solução
Podemos ver que variáveis violam quais restrições
E assim focar nossa atenção nas variáveis que importam
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 32 / 43
184. CSP – Busca Local
Formulação
Busca local (ex: Subida da encosta) pode ser usada
com CSPs
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 33 / 43
185. CSP – Busca Local
Formulação
Busca local (ex: Subida da encosta) pode ser usada
com CSPs
Nesse caso, usam uma formulação de estado
completo para o problema:
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 33 / 43
186. CSP – Busca Local
Formulação
Busca local (ex: Subida da encosta) pode ser usada
com CSPs
Nesse caso, usam uma formulação de estado
completo para o problema:
Cada nó é uma associação completa de variáveis
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 33 / 43
187. CSP – Busca Local
Formulação
Busca local (ex: Subida da encosta) pode ser usada
com CSPs
Nesse caso, usam uma formulação de estado
completo para o problema:
Cada nó é uma associação completa de variáveis
Não necessariamente uma solução (pode haver conflitos)
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 33 / 43
188. CSP – Busca Local
Formulação
Busca local (ex: Subida da encosta) pode ser usada
com CSPs
Nesse caso, usam uma formulação de estado
completo para o problema:
Cada nó é uma associação completa de variáveis
Não necessariamente uma solução (pode haver conflitos)
O estado inicial associa então um valor a cada variável
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 33 / 43
189. CSP – Busca Local
Formulação
Busca local (ex: Subida da encosta) pode ser usada
com CSPs
Nesse caso, usam uma formulação de estado
completo para o problema:
Cada nó é uma associação completa de variáveis
Não necessariamente uma solução (pode haver conflitos)
O estado inicial associa então um valor a cada variável
Tipicamente, violando várias restrições
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 33 / 43
190. CSP – Busca Local
Formulação
Busca local (ex: Subida da encosta) pode ser usada
com CSPs
Nesse caso, usam uma formulação de estado
completo para o problema:
Cada nó é uma associação completa de variáveis
Não necessariamente uma solução (pode haver conflitos)
O estado inicial associa então um valor a cada variável
Tipicamente, violando várias restrições
O objetivo da busca é eliminar as violações de restrições
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 33 / 43
191. CSP – Busca Local
Formulação
Para ir de um estado a outro, o algoritmo de busca
muda o valor de uma variável de cada vez:
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 34 / 43
192. CSP – Busca Local
Formulação
Para ir de um estado a outro, o algoritmo de busca
muda o valor de uma variável de cada vez:
Seleciona aleatoriamente uma variável com conflitos (seleção
de variável)
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 34 / 43
193. CSP – Busca Local
Formulação
Para ir de um estado a outro, o algoritmo de busca
muda o valor de uma variável de cada vez:
Seleciona aleatoriamente uma variável com conflitos (seleção
de variável)
Atribui novo valor a ela
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 34 / 43
194. CSP – Busca Local
Formulação
Para ir de um estado a outro, o algoritmo de busca
muda o valor de uma variável de cada vez:
Seleciona aleatoriamente uma variável com conflitos (seleção
de variável)
Atribui novo valor a ela
A questão então é: que valor escolher para uma
variável com conflitos?
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 34 / 43
195. CSP – Busca Local
Formulação
Para ir de um estado a outro, o algoritmo de busca
muda o valor de uma variável de cada vez:
Seleciona aleatoriamente uma variável com conflitos (seleção
de variável)
Atribui novo valor a ela
A questão então é: que valor escolher para uma
variável com conflitos?
Aquele que resultar no menor número de conflitos com
outras variáveis
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 34 / 43
196. CSP – Busca Local
Formulação
Para ir de um estado a outro, o algoritmo de busca
muda o valor de uma variável de cada vez:
Seleciona aleatoriamente uma variável com conflitos (seleção
de variável)
Atribui novo valor a ela
A questão então é: que valor escolher para uma
variável com conflitos?
Aquele que resultar no menor número de conflitos com
outras variáveis
Heurı́stica dos conflitos mı́nimos (Min-Conflicts)
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 34 / 43
197. CSP – Busca Local
Min-conflicts
Trata-se de uma subida da encosta
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 35 / 43
198. CSP – Busca Local
Min-conflicts
Trata-se de uma subida da encosta
Escolhe sempre o valor que viola o menor número de
restrições
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 35 / 43
199. CSP – Busca Local
Min-conflicts
Trata-se de uma subida da encosta
Escolhe sempre o valor que viola o menor número de
restrições
Se move em direção ao menor número de restrições violadas
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 35 / 43
200. CSP – Busca Local
Min-conflicts
Trata-se de uma subida da encosta
Escolhe sempre o valor que viola o menor número de
restrições
Se move em direção ao menor número de restrições violadas
Usada no Hubble para agendar uma semana de
observações
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 35 / 43
201. CSP – Busca Local
Min-conflicts
Trata-se de uma subida da encosta
Escolhe sempre o valor que viola o menor número de
restrições
Se move em direção ao menor número de restrições violadas
Usada no Hubble para agendar uma semana de
observações
Reduziu de 3 semanas para 10 minutos o tempo de
agendamento
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 35 / 43
202. CSP – Busca Local
Min-conflicts – Algoritmo
Função MIN-CONFLICTS(csp, max): solução
atual ← uma associação inicial completa para csp
para i=1 até max faça
se atual é solução para csp então
retorna atual
var ← escolha aleatoriamente uma variável com conflitos
valor ← escolha o valor para var que viola o menor número
de restrições com outras variáveis
Faça var ← valor em atual
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 36 / 43
203. CSP – Busca Local
Min-conflicts – Algoritmo
Número máximo de passos
antes de desistirmos
Função MIN-CONFLICTS(csp, max): solução
atual ← uma associação inicial completa para csp
para i=1 até max faça
se atual é solução para csp então
retorna atual
var ← escolha aleatoriamente uma variável com conflitos
valor ← escolha o valor para var que viola o menor número
de restrições com outras variáveis
Faça var ← valor em atual
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 36 / 43
204. CSP – Busca Local
Min-conflicts – Algoritmo
Queremos introduzir o
menor número de conflitos
Função MIN-CONFLICTS(csp, max): solução
atual ← uma associação inicial completa para csp
para i=1 até max faça
se atual é solução para csp então
retorna atual
var ← escolha aleatoriamente uma variável com conflitos
valor ← escolha o valor para var que viola o menor número
de restrições com outras variáveis
Faça var ← valor em atual
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 36 / 43
205. CSP – Busca Local
Min-conflicts – Algoritmo
Se ainda não tiver
uma associação válida,
tente uma nova variável
Função MIN-CONFLICTS(csp, max): solução
atual ← uma associação inicial completa para csp
para i=1 até max faça
se atual é solução para csp então
retorna atual
var ← escolha aleatoriamente uma variável com conflitos
valor ← escolha o valor para var que viola o menor número
de restrições com outras variáveis
Faça var ← valor em atual
retorna falha
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 36 / 43
206. CSP – Busca Local
Min-conflicts – Exemplo
WA NT Q NSW V SA T
WA
SA
NT
Q
NSW
V T
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 37 / 43
207. CSP – Busca Local
Min-conflicts – Exemplo
Geramos um valor aleatório para as variáveis
WA NT Q NSW V SA T
WA
SA
NT
Q
NSW
V T
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 37 / 43
208. CSP – Busca Local
Min-conflicts – Exemplo
Geramos um valor aleatório para as variáveis
Verificamos quais estão em conflito
WA NT Q NSW V SA T
WA
SA
NT
Q
NSW
V T
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 37 / 43
209. CSP – Busca Local
Min-conflicts – Exemplo
Geramos um valor aleatório para as variáveis
Verificamos quais estão em conflito
Escolhemos uma variável conflitante (WA) e
trocamos seu valor (pelo que gerar menos conflitos)
WA NT Q NSW V SA T
WA
SA
NT
Q
NSW
V T
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 37 / 43
210. CSP – Busca Local
Min-conflicts – Exemplo
Geramos um valor aleatório para as variáveis
Verificamos quais estão em conflito
Escolhemos uma variável conflitante (WA) e
trocamos seu valor (pelo que gerar menos conflitos)
WA NT Q NSW V SA T
WA
SA
NT
Q
NSW
V T
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 37 / 43
211. CSP – Busca Local
Min-conflicts – Exemplo
Verificamos novamente os conflitos
WA NT Q NSW V SA T
WA
SA
NT
Q
NSW
V T
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 38 / 43
212. CSP – Busca Local
Min-conflicts – Exemplo
Verificamos novamente os conflitos
Escolhemos uma variável conflitante (NSW) e
trocamos seu valor
WA NT Q NSW V SA T
WA
SA
NT
Q
NSW
V T
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 38 / 43
213. CSP – Busca Local
Min-conflicts – Exemplo
Verificamos novamente os conflitos
Escolhemos uma variável conflitante (NSW) e
trocamos seu valor
WA NT Q NSW V SA T
WA
SA
NT
Q
NSW
V T
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 38 / 43
214. CSP – Busca Local
Min-conflicts – Exemplo
Verificamos novamente os conflitos
WA NT Q NSW V SA T
WA
SA
NT
Q
NSW
V T
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 39 / 43
215. CSP – Busca Local
Min-conflicts – Exemplo
Verificamos novamente os conflitos
Escolhemos uma variável conflitante (Q) e trocamos
seu valor
WA NT Q NSW V SA T
WA
SA
NT
Q
NSW
V T
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 39 / 43
216. CSP – Busca Local
Min-conflicts – Exemplo
Verificamos novamente os conflitos
Escolhemos uma variável conflitante (Q) e trocamos
seu valor
WA NT Q NSW V SA T
WA
SA
NT
Q
NSW
V T
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 39 / 43
217. CSP – Busca Local
Min-conflicts – Exemplo
Verificamos novamente os conflitos
WA NT Q NSW V SA T
WA
SA
NT
Q
NSW
V T
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 40 / 43
218. CSP – Busca Local
Min-conflicts – Exemplo
Verificamos novamente os conflitos
Escolhemos uma variável conflitante (NT) e
trocamos seu valor
WA NT Q NSW V SA T
WA
SA
NT
Q
NSW
V T
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 40 / 43
219. CSP – Busca Local
Min-conflicts – Exemplo
Verificamos novamente os conflitos
Escolhemos uma variável conflitante (NT) e
trocamos seu valor
WA NT Q NSW V SA T
WA
SA
NT
Q
NSW
V T
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 40 / 43
220. CSP – Busca Local
Min-conflicts – Exemplo
Verificamos novamente os conflitos
WA NT Q NSW V SA T
WA
SA
NT
Q
NSW
V T
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 41 / 43
221. CSP – Busca Local
Min-conflicts – Exemplo
Verificamos novamente os conflitos
Escolhemos uma variável conflitante (WA) e
trocamos seu valor
WA NT Q NSW V SA T
WA
SA
NT
Q
NSW
V T
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 41 / 43
222. CSP – Busca Local
Min-conflicts – Exemplo
Verificamos novamente os conflitos
Escolhemos uma variável conflitante (WA) e
trocamos seu valor
WA NT Q NSW V SA T
WA
SA
NT
Q
NSW
V T
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 41 / 43
223. CSP – Busca Local
Min-conflicts – Exemplo
Verificamos novamente os conflitos
Escolhemos uma variável conflitante (WA) e
trocamos seu valor
Achamos uma resposta
WA NT Q NSW V SA T
WA
SA
NT
Q
NSW
V T
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 41 / 43
224. CSP – Busca Local
Vantagem
Pode ser usada em ambientes de tempo real para
problemas dinâmicos
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 42 / 43
225. CSP – Busca Local
Vantagem
Pode ser usada em ambientes de tempo real para
problemas dinâmicos
Ex: Agendamento de voos
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 42 / 43
226. CSP – Busca Local
Vantagem
Pode ser usada em ambientes de tempo real para
problemas dinâmicos
Ex: Agendamento de voos
Em uma semana, podemos ter que escalonar milhares de
voos e tripulantes
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 42 / 43
227. CSP – Busca Local
Vantagem
Pode ser usada em ambientes de tempo real para
problemas dinâmicos
Ex: Agendamento de voos
Em uma semana, podemos ter que escalonar milhares de
voos e tripulantes
Mas um mau tempo imprevisto pode alterar todo o problema
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 42 / 43
228. CSP – Busca Local
Vantagem
Pode ser usada em ambientes de tempo real para
problemas dinâmicos
Ex: Agendamento de voos
Em uma semana, podemos ter que escalonar milhares de
voos e tripulantes
Mas um mau tempo imprevisto pode alterar todo o problema
Teremos que consertar a agenda com o menor número
possı́vel de mudanças (min-conflicts)
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 42 / 43
229. CSP – Busca Local
Vantagem
Pode ser usada em ambientes de tempo real para
problemas dinâmicos
Ex: Agendamento de voos
Em uma semana, podemos ter que escalonar milhares de
voos e tripulantes
Mas um mau tempo imprevisto pode alterar todo o problema
Teremos que consertar a agenda com o menor número
possı́vel de mudanças (min-conflicts)
Basta rodarmos o algoritmo começando da agenda atual
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 42 / 43
230. Referências
Russell, S.; Norvig P. (2010): Artificial Intelligence: A Modern
Approach. Prentice Hall. 3a ed.
Slides do livro:
http://aima.eecs.berkeley.edu/slides-pdf/
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-
and-Computer-Science/6-034Spring-2005/
LectureNotes/index.htm
Norton Trevisan Roman(norton@usp.br) 21 de março de 2019 43 / 43