Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2e Problemas de Satisfaccion de Restricciones (Es)
2e Problemas de Satisfaccion de Restricciones (Es)
Problemas de satisfaccin de
restricciones
Primavera 2009
profesor: Luigi Ceccaroni
Problemas de satisfaccin de
restricciones (PSRs)
Componentes del estado = grafo de
restricciones:
Variables
Dominios (valores posibles para las variables)
Restricciones (binarias) entre las variables
Problemas de satisfaccin de
restricciones (PSRs)
Ejemplos:
colorear mapas
crucigramas
n-reinas
asignacin/distribucin/ubicacin de recursos:
distribucin de tareas de fabricacin
ubicacin de gasolineras
ubicacin de antenas de telefona
Representacin
Problema: colorear mapa
Ejemplo de estado:
Variables (n) = etiquetas de nodos
Dominios = contenido de nodos
Restricciones = arcos dirigidos y etiquetados entre
nodos
AZUL, ROJO
C2
AZUL
C3
C1
C2
C4
C1
C3
C4
AZUL, VERDE
Estado inicial
4
Representacin
A cada paso hay una asignacin de variable.
Las soluciones deben ser asignaciones completas
y por lo tanto, en el rbol de bsqueda, aparecen a
profundidad n.
El rbol se extiende slo a profundidad n.
Dominios finitos
Si el tamao mximo del dominio de cualquier variable
es d, entonces el nmero de posibles asignaciones
completas es O(dn), exponencial en el nmero de
variables.
Los PSRs con dominio finito incluyen a los PSRs
booleanos, cuyas variables pueden ser verdaderas o
falsas.
En el caso peor, no se pueden resolver los PSRs con
dominios finitos en menos de un tiempo exponencial.
Evidentemente, los algoritmos para PSR resuelven
problemas rdenes de magnitud ms grandes que los
resolubles con algoritmos de bsqueda no informada.
6
Dominios infinitos
Las variables discretas pueden tener dominios
infinitos (p.e., el conjunto de nmeros enteros
o de cadenas).
Con dominios infinitos, no es posible describir
restricciones enumerando todas las
combinaciones permitidas de valores.
Se debe usar un lenguaje de restriccin:
Comienzo-Trabajo1 + 5 Comienzo-Trabajo3
Dominios infinitos
No existe un algoritmo general para
restricciones no lineales sobre variables
enteras.
En algunos casos, se pueden reducir los
problemas de dominio infinito a dominio finito
simplemente acotando los valores de todas las
variables, p.e.:
fijando lmites temporales para el comienzo de
los trabajos.
8
Dominios continuos
Los PSRs con dominios continuos son muy
comunes en el mundo real.
La categora ms conocida son los problemas
de programacin lineal:
las restricciones deben ser desigualdades
lineales que forman una regin convexa.
Algoritmos
Basados en bsqueda
complejidad:
tiempo: O(exp(n))
espacio: O(n)
12
1
2
Propagacin de restricciones
Antes de la bsqueda
Durante la bsqueda
13
1
3
Restricciones
El tipo ms simple es la restriccin unaria, que
restringe los valores de una sola variable.
Una restriccin binaria relaciona dos variables.
Las restricciones de orden alto implican tres o
ms variables. Un ejemplo son los puzzles criptoaritmticos.
14
1
4
Puzzles cripto-aritmticos
Variables: F T U W R O X1 X2 X3
Dominio: {0,1,2,3,4,5,6,7,8,9}
Restricciones:
TodasDif (F,T,U,W,R,O)
O + O = R + 10 X1
X1 + W + W = U + 10 X2
X2 + T + T = O + 10 X3
X3 = F, T 0, F 0
15
1
5
Conmutatividad
Un problema es conmutativo si el orden de
aplicacin de las acciones no tiene ningn
efecto sobre el resultado.
ste es el caso de los PSRs, donde las
acciones son asignaciones de valores a
variables.
Por lo tanto, todos los algoritmos de bsqueda
para PSR generan los sucesores considerando
asignaciones posibles para slo una variable
en cada nodo del rbol de bsqueda.
1
8
Conmutatividad
Por ejemplo, en el nodo raz de un rbol de bsqueda
para colorear este mapa:
podramos tener una opcin entre C3 = azul, C3 =
rojo y C3 = verde
pero nunca elegiramos entre C3 = rojo y
C1 =
azul.
Con esta restriccin, el nmero de hojas es de dn.,
AZUL, ROJO
C1
como era de esperar.
C2
AZUL
C3
C1
C2
C4
C3
C4
AZUL, VERDE
Estado inicial
1
9
El algoritmo
genera los sucesores incrementalmente, uno a
la vez
extiende la asignacin actual para generar un
sucesor, ms que volver a copiarlo
2
0
2
1
2
2
Ejemplo: 4-reinas
Colocar 4 reinas, una en cada fila de un
tablero 4x4, sin que se maten.
Variables: R1, ... , R4 (reinas)
Dominios: [1 .. 4] para cada Ri (columna)
Restricciones: Ri no-mata Rj
Grafo:
Ri
No-mata
[1 .. 4]
[1 .. 4]
Rj
23
2
3
Ejemplo: 4-reinas
2
4
Propagacin de restricciones
Un conjunto de restricciones puede inducir otras (que estaban implcitas).
La propagacin de restricciones (PR) es el proceso de hacerlas explcitas.
X2
azul
azul,rojo
X1
azul,rojo,verde
X3
azul,verde
X4
rojo
azul
El papel de la PR es disminuir el
espacio de bsqueda. Se puede realizar
la propagacin:
1) como pre-proceso: eliminar zonas del espacio
donde no hay soluciones (arc consistency);
2) durante el proceso:
podar el espacio a medida que la bsqueda
progresa (forward checking).
rojo
verde
25
2
5
Propagacin de restricciones
Cada ciclo tiene dos partes:
1. Se propagan las restricciones:
Posible utilizacin de reglas de inferencia
Las restricciones no tienen por qu ser
independientes:
Restricciones que implican a varias variables
Variables que participan en varias restricciones
2. Se analiza el resultado:
a) Solucin encontrada
b) Solucin imposible
c) Seguir buscando
26
2
6
Preproceso
Un PSR es arco-consistente si para cada par
de variables (Xi, Xj) y para cualquier valor vk de
Di existe un valor vl de Dj tal que se satisfacen
las restricciones.
Se pretende que todas las variables sean arco
consistentes para todos los arcos que inciden
en ellas.
Los dominios actuales de cada variable tienen que
ser consistentes con todas las restricciones.
Preproceso
Si un PSR no es arco-consistente se le puede
convertir mediante el siguiente algoritmo:
Ejemplo de arco-consistencia:
colorear mapa
3
0
Ejemplo de arco-consistencia:
colorear mapa
3
1
Ejemplo de arco-consistencia:
colorear mapa
3
2
Ejemplo de arco-consistencia:
colorear mapa
3
3
Ejemplo de arco-consistencia:
colorear mapa
3
4
Ejemplo de arco-consistencia:
colorear mapa
3
5
Ejemplo de arco-consistencia:
colorear mapa
3
6
Ejemplo de arco-consistencia:
colorear mapa
3
7
Ejemplo de arco-consistencia:
colorear mapa
3
8
Ejemplo de arco-consistencia:
colorear mapa
3
9
R2=4?
R3=2?
Propagamos: R3=
Propagamos: R4=
R3=1?
R4=3?
PSR: ejemplo
4
4
PSR: ejemplo
4
5
PSR: ejemplo
4
6
Forward checking
Idea:
Keep track of remaining legal values for unassigned variables
Terminate search when any variable has no legal values
47
4
7
Forward checking
Idea:
Keep track of remaining legal values for unassigned variables
Terminate search when any variable has no legal values
48
4
8
Forward checking
Idea:
Keep track of remaining legal values for unassigned variables
Terminate search when any variable has no legal values
49
4
9
Forward checking
Idea:
Keep track of remaining legal values for unassigned variables
Terminate search when any variable has no legal values
50
5
0
Forward checking
Forward checking propagates information from
assigned to unassigned variables, but doesn't provide
early detection for all failures:
Arc consistency
Simplest form of propagation makes each arc
consistent .
(X Y) is consistent iff:
for every value x of X there is some allowed y
52
5
2
Arc consistency
Simplest form of propagation makes each arc
consistent .
(X Y) is consistent iff:
for every value x of X there is some allowed y
53
5
3
Arc consistency
Simplest form of propagation makes each arc
consistent .
(X Y) is consistent iff:
for every value x of X there is some allowed y
54
5
4
Arc consistency
Simplest form of propagation makes each arc
consistent .
(X Y) is consistent iff:
for every value x of X there is some allowed y
Heursticas adicionales
La bsqueda con vuelta atrs puede mejorarse
reordenando las variables:
Antes de la bsqueda (primero las mas restrictivas)
Durante la bsqueda:
Variable con mas restricciones
Variable con menos valores