teoria
TRANSCRIPT
Inteligencia Artificial (2006)
Problemas de satisfaccion de restricciones (CSPs)Capıtulo 5
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 1
Aspectos a considerar
♦ Ejemplos de CSP
♦ Busqueda con Backtracking para CSPs
♦ Busqueda Local para CSPs
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 2
Problema de satisfaccion de restricciones (CSP)
En problemas de busqueda estandar:cada estado es una “caja negra”—una estructura de datos arbitraria
que soporta el test de objetivo, la funcion heurıstica y lafuncion sucesor (rutinas especı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 especificancombinaciones permitidas de valores para subconjuntos de variables
Ejemplo simple de un lenguaje de representacion formal
Permite utilizar algoritmos de proposito general con mas poderque los algoritmos de busqueda estandard
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 3
Ejemplo: coloreado de mapa
WesternAustralia
NorthernTerritory
SouthAustralia
Queensland
New South Wales
Victoria
TasmaniaVariables WA, NT , Q, NSW , V , SA, T
Dominios Di = {red, green, blue}Restricciones: las regiones adyacentes deben tener colores diferentes
e.g., WA 6= NT (si el lenguaje lo permite), o(WA, NT ) ∈ {(red, green), (red, blue), (green, red), (green, blue), . . .}
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 4
Ejemplo: coloreado de mapa (cont)
WesternAustralia
NorthernTerritory
SouthAustralia
Queensland
New South Wales
Victoria
Tasmania
Las soluciones son asignaciones que satisfacen todas las restricciones, e.g.,{WA = red,NT = green,Q = red,NSW = green, V = red, SA = blue, T = green}
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 5
Definicion formal de un CSP
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 posiblesque la variable puede tomar.
3. Un conjunto de restricciones C1, C2, . . . , Cm, una funcion de eva-
luacion (o ambas)
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 6
Definicion formal de un CSP
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 posiblesque la variable puede tomar.
3. Un conjunto de restricciones C1, C2, . . . , Cm, una funcion de eva-
luacion (o ambas)
Solucion de un CSP: asignacion completa que satisface todas las restric-ciones (consistente) y (opcionalmente) optimiza la funcion de evaluacion
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 7
Grafo de restriccion
CSP binario: cada restriccion relaciona a lo sumo dos variables
Grafo de restriccion: nodos son variables, arcos muestran restricciones
Victoria
WA
NT
SA
Q
NSW
V
T
Los algoritmos de CSP de proposito general usan la estructura del grafopara acelerar la busqueda. E.g., Tasmania es un subproblema independiente!
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 8
Tipos de CSPs
Variables discretasdominios finitos; tamano d ⇒ O(dn) asignaciones completas♦ e.g., CSPs Booleanos, incl. Satisfabilidad booleana (NP-completa)
dominios infinitos (integers, strings, etc.)♦ e.g., job scheduling, variables son dıas de inicio/fin de cada job♦ necesita un lenguaje de restriccion, e.g., StartJob1+5 ≤ StartJob3
♦ 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 metodos de PL.
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 9
Tipos de restricciones
Restricciones unarias involucran una unica variable,e.g., SA 6= green
Restricciones binarias involucran pares de variables,e.g., SA 6= WA
Restricciones de orden mas alto involucran 3 o mas variables,e.g., restricciones de columnas criptoaritmeticas
Restricciones de preferencias (restricciones blandas), e.g., red es mejor quegreen
a menudo representables por un costo para cada asignacion de variable→ problemas de optimizacion restringido
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 10
Ejemplo: Criptoaritmetica
OWTF U R
+OWTOWT
F O U R
X2 X1X3
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 satisfaccion de restricciones (CSPs) Capıtulo 5 11
CSPs del mundo real
Problemas de asignacione.g., quien dicta que clase
Problemas de auleroe.g., ¿donde y cuando es ofrecida determinada clase?
Configuracion de Hardware
Scheduling de Transporte
Scheduling en Fabricas
Muchos de estos problemas involucran variables con valores reales
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 12
Formulacion de busqueda estandard
Comenzamos con el enfoque directo (elemental), luego lo arreglamos
Los estados estan definidos por los valores asignados hasta el momento
♦ Estado inicial: la asignacion vacıa, { }
♦ Funcion sucesor: asignar un valor a una variable no asignadaque no entra en conflicto con la asignacion actual.⇒ falla si no existe una asignacion legal
♦ Test de objetivo: la asignacion actual es completa
1) Esto es igual para todos los CSPs!2) Cada solucion aparece a profundidad n con n variables
⇒ usar depth-first search3) El paso es irrelevante, ⇒ tambien se usa form. de estado completa4) b = (n− `)d a prof. `, luego n!dn hojas y solo hay dn asig. completas!
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 13
Backtracking search
Las asignaciones de variables son conmutativas, i.e.,[WA = red then NT = green] es lo mismo que [NT = green then
WA = red]
Solo necesito considerar asignaciones a una unica variable en cada nodo⇒ b = d y hay dn hojas
Depth-first search para CSPs con asignaciones consistentes de a una variablees llamada backtracking search
Backtracking search es el algoritmo no informado basico para CSPs
Permite resolver n-reinas para n ≈ 25
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 14
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 6= failure then return result
remove {var = value} from assignment
return failure
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 15
Ejemplo de backtracking
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 16
Ejemplo de backtracking
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 17
Ejemplo de backtracking
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 18
Ejemplo de backtracking
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 19
Mejorando la eficiencia de backtracking search
Algunos metodos de proposito general pueden producir enormes ganan-cias de velocidad:
1. ¿Cual deberıa ser la proxima variable a asignar?
2. ¿En que orden deberıan ser considerados sus valores?
3. ¿Podemos detectar fallas inevitables mas anticipadamente?
4. ¿Podemos sacar provecho de la estructura del problema? (no lo veremos)
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 20
Valores restantes mınimos
Valores restantes mınimos (MRV):elige la variable con la menor cantidad de valores legales
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 21
Heurıstica degree (del grado)
Permite desempatar entre variables MRV
Heurıstica degree:elige la variable involucrada en el mayor numero de restricciones con otras
variables no asignadas
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 22
Valor menos restrictivo
Dada una variable, elegir el valor menos restrictivo:aquel que excluye el menor numero de valores en las variables restantes
Allows 1 value for SA
Allows 0 values for SA
Combinando estas heurısticas hace factible la resolucion del 1000 reinas
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 23
Forward checking
Idea: Registrar los valores legales restantes para las variables no asignadasNo insistir con un paso cuando alguna variable no tiene valores legales
WA NT Q NSW V SA T
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 24
Forward checking
Idea: Registrar los valores legales restantes para las variables no asignadasNo insistir con un paso cuando alguna variable no tiene valores legales
WA NT Q NSW V SA T
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 25
Forward checking
Idea: Registrar los valores legales restantes para las variables no asignadasNo insistir con un paso cuando alguna variable no tiene valores legales
WA NT Q NSW V SA T
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 26
Forward checking
Idea: Registrar los valores legales restantes para las variables no asignadasNo insistir con un paso cuando alguna variable no tiene valores legales
WA NT Q NSW V SA T
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 27
Propagacion de restricciones
Forward checking propaga informacion desde variables asignadas a no asig-nadas, pero no provee una deteccion temprana de todas las fallas:
WA NT Q NSW V SA T
NT y SA no pueden ser ambas azules!
Propagacion de restricciones fuerza restricciones localmente en forma repe-tida
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 28
Consistencia de arco
La forma mas simple de propagacion hace cada arco consistente
X → Y es consistente siipara cada valor x ∈ X existe algun valor y ∈ Y permitido
WA NT Q NSW V SA T
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 29
Consistencia de arco
La forma mas simple de propagacion hace cada arco consistente
X → Y es consistente siipara cada valor x ∈ X existe algun valor y ∈ Y permitido
WA NT Q NSW V SA T
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 30
Consistencia de arco
La forma mas simple de propagacion hace cada arco consistente
X → Y es consistente siipara cada valor x ∈ X existe algun valor y ∈ Y permitido
WA NT Q NSW V SA T
Si X pierde un valor los vecinos de X se vuelven a controlar
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 31
Consistencia de arco
La forma mas simple de propagacion hace cada arco consistente
X → Y es consistente siipara cada valor x ∈ X existe algun valor y ∈ Y permitido
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 mas temprano que forward checking
Puede ejecutarse como preprocesamiento o despues de cada asignacion
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 32
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 satisfaccion de restricciones (CSPs) Capıtulo 5 33
Algoritmos iterativos para CSPs
Hill-climbing y simulated annealing usualmente trabajan conestados “completos”, i.e., todas las variables asignadas
Para aplicarlos a CSPs:permitir estados con restricciones insatisfechaslos operadores reasignan los valores de las variables
Seleccion de variable: elegir en forma random cualquier variable en conflicto
Seleccion de valor mediante la heurıstica min-conflictos:elegir valor que produce el menor numero de conflictosi.e., hillclimb con h(n) = numero total de restricciones violadas
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 34
Ejemplo: 4-Reinas
Estados: 4 reinas en 4 columnas (44 = 256 estados)
Operadores: mover reina en una columna
Test de objetivo: no hay ataques
Evaluacion: h(n) = numero de ataques
h = 5 h = 2 h = 0
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 35
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 aleatoriamenteexcepto en un rango estrecho del radio
R =numero de restricciones
numero de variables
R
CPUtime
critical ratio
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 36
Resumen
CSPs son una clase especial de problemas:estados definidos por valores de un conjunto fijo de variablestest 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 seleccion de valor ayudansignificativamente
Forward checking previene asignaciones que garantizan una falla posterior
Propagacion de restricciones (e.g., consistencia de arco) realiza un trabajoadicional para restingir valores y detectar inconsistencias
Min-conflictos es usualmente efectivo en la practica
Problemas de satisfaccion de restricciones (CSPs) Capıtulo 5 37