Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Teoria
1. Inteligencia Artificial (2006)
´
Problemas de satisfaccion de restricciones (CSPs)
Cap´ıtulo 5
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 1
2. Aspectos a considerar
♦ Ejemplos de CSP
♦ B´squeda con Backtracking para CSPs
u
♦ B´squeda Local para CSPs
u
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 2
3. Problema de satisfacci´n de restricciones (CSP)
o
En problemas de b´squeda est´ndar:
u a
cada estado es una “caja negra”—una estructura de datos arbitraria
que soporta el test de objetivo, la funci´n heur´
o ıstica y la
funci´n sucesor (rutinas espec´
o ıficas del problema)
CSP:
un estado es definido por variables Xi con valores de un dominio Di
el test de objetivo es un conjunto de restricciones que especifican
combinaciones permitidas de valores para subconjuntos de variables
Ejemplo simple de un lenguaje de representaci´n formal
o
Permite utilizar algoritmos de prop´sito general con m´s poder
o a
que los algoritmos de b´squeda est´ndard
u a
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 3
4. Ejemplo: coloreado de mapa
Northern
Territory
Western Queensland
Australia
South
Australia
New South Wales
Victoria
Tasmania
Variables W A, N T , Q, N SW , V , SA, T
Dominios Di = {red, green, blue}
Restricciones: las regiones adyacentes deben tener colores diferentes
e.g., W A = N T (si el lenguaje lo permite), o
(W A, N T ) ∈ {(red, green), (red, blue), (green, red), (green, blue), . . .}
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 4
5. Ejemplo: coloreado de mapa (cont)
Northern
Territory
Western Queensland
Australia
South
Australia
New South Wales
Victoria
Tasmania
Las soluciones son asignaciones que satisfacen todas las restricciones, e.g.,
{W A = red, N T = green, Q = red, N SW = green, V = red, SA = blue, T = green}
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 5
6. Definici´n formal de un CSP
o
Clase especial de problema, caracterizado por:
1. Un conjunto de variables X1, X2, . . . , Xn.
2. Por cada variable Xi, un dominio Di que especifica los valores posibles
que la variable puede tomar.
3. Un conjunto de restricciones C1, C2, . . . , Cm, una funci´n de eva-
o
luaci´n (o ambas)
o
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 6
7. Definici´n formal de un CSP
o
Clase especial de problema, caracterizado por:
1. Un conjunto de variables X1, X2, . . . , Xn.
2. Por cada variable Xi, un dominio Di que especifica los valores posibles
que la variable puede tomar.
3. Un conjunto de restricciones C1, C2, . . . , Cm, una funci´n de eva-
o
luaci´n (o ambas)
o
Soluci´n de un CSP: asignaci´n completa que satisface todas las restric-
o o
ciones (consistente) y (opcionalmente) optimiza la funci´n de evaluaci´n
o o
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 7
8. Grafo de restricci´n
o
CSP binario: cada restricci´n relaciona a lo sumo dos variables
o
Grafo de restricci´n: nodos son variables, arcos muestran restricciones
o
NT
Q
WA
SA NSW
V
Victoria
T
Los algoritmos de CSP de prop´sito general usan la estructura del grafo
o
para acelerar la b´squeda. E.g., Tasmania es un subproblema independiente!
u
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 8
9. Tipos de CSPs
Variables discretas
dominios finitos; tama˜o d ⇒ O(dn) asignaciones completas
n
♦ e.g., CSPs Booleanos, incl. Satisfabilidad booleana (NP-completa)
dominios infinitos (integers, strings, etc.)
♦ e.g., job scheduling, variables son d´ de inicio/fin de cada job
ıas
♦ necesita un lenguaje de restricci´n, e.g., StartJob1+5 ≤ StartJob3
o
♦ restricciones lineales son resolubles, no lineal no es decidible
Variables continuas
♦ e.g., tiempos de inicio/fin para las observaciones del Telescopio Hubble
♦ restricciones lineales se resuelven en tiempo pol. con m´todos de PL.
e
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 9
10. Tipos de restricciones
Restricciones unarias involucran una unica variable,
´
e.g., SA = green
Restricciones binarias involucran pares de variables,
e.g., SA = W A
Restricciones de orden m´s alto involucran 3 o m´s variables,
a a
e.g., restricciones de columnas criptoaritm´ticas
e
Restricciones de preferencias (restricciones blandas), e.g., red es mejor que
green
a menudo representables por un costo para cada asignaci´n de variable
o
→ problemas de optimizaci´n restringido
o
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 10
11. Ejemplo: Criptoaritm´tica
e
T WO F T U W R O
+ T WO
F O U R
X3 X2 X1
Variables: F T U W R O X1 X2 X3
Dominios: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
Restricciones
alldiff(F, T, U, W, R, O)
O + O = R + 10 · X1, etc.
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 11
12. CSPs del mundo real
Problemas de asignaci´n
o
e.g., quien dicta que clase
Problemas de aulero
e.g., ¿donde y cuando es ofrecida determinada clase?
Configuraci´n de Hardware
o
Scheduling de Transporte
Scheduling en F´bricas
a
Muchos de estos problemas involucran variables con valores reales
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 12
13. Formulaci´n de b´ squeda est´ndard
o u a
Comenzamos con el enfoque directo (elemental), luego lo arreglamos
Los estados est´n definidos por los valores asignados hasta el momento
a
♦ Estado inicial: la asignaci´n vac´ { }
o ıa,
♦ Funci´n sucesor: asignar un valor a una variable no asignada
o
que no entra en conflicto con la asignaci´n actual.
o
⇒ falla si no existe una asignaci´n legal
o
♦ Test de objetivo: la asignaci´n actual es completa
o
1) Esto es igual para todos los CSPs!
2) Cada soluci´n aparece a profundidad n con n variables
o
⇒ usar depth-first search
3) El paso es irrelevante, ⇒ tambi´n se usa form. de estado completa
e
4) b = (n − )d a prof. , luego n!dn hojas y s´lo hay dn asig. completas!
o
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 13
14. Backtracking search
Las asignaciones de variables son conmutativas, i.e.,
[W A = red then N T = green] es lo mismo que [N T = green then
W A = red]
S´lo necesito considerar asignaciones a una unica variable en cada nodo
o ´
⇒ b = d y hay dn hojas
Depth-first search para CSPs con asignaciones consistentes de a una variable
es llamada backtracking search
Backtracking search es el algoritmo no informado b´sico para CSPs
a
Permite resolver n-reinas para n ≈ 25
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 14
15. Backtracking search
function Backtracking-Search(csp) returns solution/failure
return Recursive-Backtracking({ }, csp)
function Recursive-Backtracking(assignment, csp) returns soln/failure
if assignment is complete then return assignment
var ← Select-Unassigned-Variable(Variables[csp], assignment, csp)
for each value in Order-Domain-Values(var, assignment, csp) do
if value is consistent with assignment given Constraints[csp] then
add {var = value} to assignment
result ← Recursive-Backtracking(assignment, csp)
if result = failure then return result
remove {var = value} from assignment
return failure
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 15
20. Mejorando la eficiencia de backtracking search
Algunos m´todos de prop´sito general pueden producir enormes ganan-
e o
cias de velocidad:
1. ¿Cual deber´ ser la pr´xima variable a asignar?
ıa o
2. ¿En qu´ orden deber´ ser considerados sus valores?
e ıan
3. ¿Podemos detectar fallas inevitables m´s anticipadamente?
a
4. ¿Podemos sacar provecho de la estructura del problema? (no lo veremos)
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 20
21. Valores restantes m´
ınimos
Valores restantes m´ ınimos (MRV):
elige la variable con la menor cantidad de valores legales
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 21
22. Heur´
ıstica degree (del grado)
Permite desempatar entre variables MRV
Heur´ıstica degree:
elige la variable involucrada en el mayor n´mero de restricciones con otras
u
variables no asignadas
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 22
23. Valor menos restrictivo
Dada una variable, elegir el valor menos restrictivo:
aquel que excluye el menor n´mero de valores en las variables restantes
u
Allows 1 value for SA
Allows 0 values for SA
Combinando estas heur´
ısticas hace factible la resoluci´n del 1000 reinas
o
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 23
24. Forward checking
Idea: Registrar los valores legales restantes para las variables no asignadas
No insistir con un paso cuando alguna variable no tiene valores legales
WA NT Q NSW V SA T
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 24
25. Forward checking
Idea: Registrar los valores legales restantes para las variables no asignadas
No insistir con un paso cuando alguna variable no tiene valores legales
WA NT Q NSW V SA T
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 25
26. Forward checking
Idea: Registrar los valores legales restantes para las variables no asignadas
No insistir con un paso cuando alguna variable no tiene valores legales
WA NT Q NSW V SA T
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 26
27. Forward checking
Idea: Registrar los valores legales restantes para las variables no asignadas
No insistir con un paso cuando alguna variable no tiene valores legales
WA NT Q NSW V SA T
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 27
28. Propagaci´n de restricciones
o
Forward checking propaga informaci´n desde variables asignadas a no asig-
o
nadas, pero no provee una detecci´n temprana de todas las fallas:
o
WA NT Q NSW V SA T
N T y SA no pueden ser ambas azules!
Propagaci´n de restricciones fuerza restricciones localmente en forma repe-
o
tida
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 28
29. Consistencia de arco
La forma m´s simple de propagaci´n hace cada arco consistente
a o
X → Y es consistente sii
para cada valor x ∈ X existe alg´ n valor y ∈ Y permitido
u
WA NT Q NSW V SA T
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 29
30. Consistencia de arco
La forma m´s simple de propagaci´n hace cada arco consistente
a o
X → Y es consistente sii
para cada valor x ∈ X existe alg´ n valor y ∈ Y permitido
u
WA NT Q NSW V SA T
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 30
31. Consistencia de arco
La forma m´s simple de propagaci´n hace cada arco consistente
a o
X → Y es consistente sii
para cada valor x ∈ X existe alg´ n valor y ∈ Y permitido
u
WA NT Q NSW V SA T
Si X pierde un valor los vecinos de X se vuelven a controlar
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 31
32. Consistencia de arco
La forma m´s simple de propagaci´n hace cada arco consistente
a o
X → Y es consistente sii
para cada valor x ∈ X existe alg´ n valor y ∈ Y permitido
u
WA NT Q NSW V SA T
Si X pierde un valor los vecinos de X se vuelven a controlar
Consistencia de arco detecta las fallas m´s temprano que forward checking
a
Puede ejecutarse como preprocesamiento o despu´s de cada asignaci´n
e o
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 32
33. Algoritmo de consistencia de arco
function AC-3( csp) returns the CSP, possibly with reduced domains
inputs: csp, a binary CSP with variables {X1, X2, . . . , Xn}
local variables: queue, a queue of arcs, initially all the arcs in csp
while queue is not empty do
(Xi, Xj ) ← Remove-First(queue)
if Remove-Inconsistent-Values(Xi , Xj ) then
for each Xk in Neighbors[Xi] do
add (Xk , Xi) to queue
function Remove-Inconsistent-Values( Xi , Xj ) returns true iff succeeds
removed ← false
for each x in Domain[Xi] do
if no value y in Domain[Xj ] allows (x,y) to satisfy the constraint Xi ↔ Xj
then delete x from Domain[Xi ]; removed ← true
return removed
O(n2d3), puede ser reducida a O(n2d2) (pero detectar todas es NP-duro)
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 33
34. Algoritmos iterativos para CSPs
Hill-climbing y simulated annealing usualmente trabajan con
estados “completos”, i.e., todas las variables asignadas
Para aplicarlos a CSPs:
permitir estados con restricciones insatisfechas
los operadores reasignan los valores de las variables
Selecci´n de variable: elegir en forma random cualquier variable en conflicto
o
Selecci´n de valor mediante la heur´
o ıstica min-conflictos:
elegir valor que produce el menor n´mero de conflictos
u
i.e., hillclimb con h(n) = n´mero total de restricciones violadas
u
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 34
35. Ejemplo: 4-Reinas
Estados: 4 reinas en 4 columnas (44 = 256 estados)
Operadores: mover reina en una columna
Test de objetivo: no hay ataques
Evaluaci´n: h(n) = n´mero de ataques
o u
h=5 h=2 h=0
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 35
36. Performance de min-conflictos
Dado un estado inicial random, puede resolver n-reinas en tiempo casi cons-
tante para un n arbitrario con alta probabilidad (e.g., n = 10,000,000)
Lo mismo parece ser cierto para cualquier CSP generado aleatoriamente
excepto en un rango estrecho del radio
n´mero de restricciones
u
R=
n´mero de variables
u
CPU
time
R
critical
ratio
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 36
37. Resumen
CSPs son una clase especial de problemas:
estados definidos por valores de un conjunto fijo de variables
test objetivo definido por restricciones sobre valores de variables
Backtracking = depth-first search con una variable asignada por nodo
Heur´ısticas para el ordenamiento de variables y selecci´n de valor ayudan
o
significativamente
Forward checking previene asignaciones que garantizan una falla posterior
Propagaci´n de restricciones (e.g., consistencia de arco) realiza un trabajo
o
adicional para restingir valores y detectar inconsistencias
Min-conflictos es usualmente efectivo en la pr´ctica
a
Problemas de satisfacci´n de restricciones (CSPs) Cap´
o ıtulo 5 37