Sunteți pe pagina 1din 30

Definiciones

Consistencia
Bibliografı́a

Programación de Restricciones

Carlos Linares López

Grupo de Planificación y Aprendizaje (PLG)


Departamento de Informática
Escuela Politécnica Superior
Universidad Carlos III de Madrid

November 4, 2014

Carlos Linares López Programación de Restricciones


Definiciones
Consistencia
Bibliografı́a

Definiciones

Una red de restricciones R = (X , D, C ) consiste en un


conjunto finito de valores X = {xi }ni=1 definidas sobre
dominios D = {Di }ni=1 , que contienen los posibles valores de
(i (i (i
cada variable Di = {v1 , v2 , . . . , vk }, y un conjunto de
restricciones C = {Ci }ti=1
Una restricción Ci es una relación Ri definida sobre un
conjunto de variables Si , Si ⊆ X , que denota las asignaciones
legales simultáneas

Carlos Linares López Programación de Restricciones


Definiciones
Consistencia
Bibliografı́a

Ejemplo I

Problema de las N Reinas


Modelizar las restricciones del juego de las 4 Reinas, en el que
deben disponerse 4 reinas sobre un tablero de ajedrez 4 × 4 de
modo que ninguna está atacada por otra como se muestra, por
ejemplo, a continuación:

Carlos Linares López Programación de Restricciones


Definiciones
Consistencia
Bibliografı́a

Ejemplo II

Si la restricción Rij representa las posiciones legales que


pueden ocupar las reinas en las columnas i y j entonces:

R12 ={(1, 3), (1, 4), (2, 4), (3, 1), (4, 1), (4, 2)}
R13 ={(1, 2), (1, 4), (2, 1), (2, 3), (3, 2), (3, 4), (4, 1), (4, 3)}

El resto de restricciones (R14 , R23 , R24 , R34 ) se representan


análogamente —y en algunos casos resultan en las mismas
tuplas, por ejemplo R23 = R12

Carlos Linares López Programación de Restricciones


Definiciones
Consistencia
Bibliografı́a

Definiciones

Las restricciones pueden describirse también de manera


booleana o numérica.
Considera la siguiente representación alternativa del problema de
las N reinas:

Rij = {(v (i , v (j ), tal que v (i ∈ Di , v j ∈ Dj


v (i 6= v (j , |v (i − v (j | =
6 |i − j|

En general, la forma de representar restricciones importa y


puede haber formas sucintas de hacerlo.

Carlos Linares López Programación de Restricciones


Definiciones
Consistencia
Bibliografı́a

Definiciones

Una instanciación de un subconjunto de variables es una


asignación de valores de sus dominios a cada variable del
subconjunto
Una instanciación es parcial si afecta a un subconjunto Si
estricto de X
Definición 1
El objetivo de la satisfacción de restricciones consiste en encontrar
instanciaciones globales consistentes

Carlos Linares López Programación de Restricciones


Definiciones Grafo de restricciones
Consistencia Arco consistencia
Bibliografı́a Camino consistencia

Grafo de restricciones

Una red de restricciones R = (X , D, C ) puede representarse


con un grafo de restricciones donde cada nodo representa una
variable y los arcos conectan aquellos nodos cuyas variables
están en la restricción
R12
El grafo que se muestra a la
x1 x2 izquierda representa en los
R14 R23 vértices las variables xi (que
R13 R24 contienen la fila en la que se
coloca la reina en la columna
x3 x4 i-ésima) y en los arcos las
restricciones que las vinculan.
R34

Carlos Linares López Programación de Restricciones


Definiciones Grafo de restricciones
Consistencia Arco consistencia
Bibliografı́a Camino consistencia

Consistencia

¡No todas las instanciaciones parciales consistentes forman


parte de la solución! pero las que no lo sean pueden eliminarse
La segunda observación conduce a la arco consistencia
La primera se tiene en cuenta en la camino consistencia

Carlos Linares López Programación de Restricciones


Definiciones Grafo de restricciones
Consistencia Arco consistencia
Bibliografı́a Camino consistencia

Arco consistencia

Definición 2 Data una red de restricciones R = (X , D, C ), con


Rij ∈ C , xi es arco consistente con xj si y sólo si para cada valor
ai ∈ Di , existe un valor aj ∈ Dj tal que (ai , aj ) ∈ Rij
Si un valor no participa en la solución de una subred de dos
variables, entonces puede eliminarse

AC-REVISE (xi , xj )
FOR ai ∈ Di
IF @aj tal que (ai , aj ) ∈ Rij
THEN Di = Di − ai

Carlos Linares López Programación de Restricciones


Definiciones Grafo de restricciones
Consistencia Arco consistencia
Bibliografı́a Camino consistencia

Arco consistencia

AC-REVISE comprueba la arco consistencia de dos variables


Para forzarla en toda la red de restricciones R se usa AC-1:

AC-1 (R)
REPEAT
FOR (xi , xj ) tal que Rij 6= ∅
AC-REVISE (xi , xj )
AC-REVISE (xj , xi )
UNTIL los dominios no cambian

Carlos Linares López Programación de Restricciones


Definiciones Grafo de restricciones
Consistencia Arco consistencia
Bibliografı́a Camino consistencia

Ejemplo I

2-coloring con tres vértices


Calcular la arco-consistencia del etiquetado con sólo dos colores
(rojo y azul) de un grafo con tres vértices (X , Y y Z ) que están
conectados con el resto, de modo que dos vértices adyacentes no
están etiquetados con el mismo color

Carlos Linares López Programación de Restricciones


Definiciones Grafo de restricciones
Consistencia Arco consistencia
Bibliografı́a Camino consistencia

Ejemplo II

Las restricciones son:

Rxy ={(r , a), (a, r )}


Rxz ={(r , a), (a, r )}
Ryz ={(r , a), (a, r )}
donde r y a representan el color rojo y azul respectivamente

Carlos Linares López Programación de Restricciones


Definiciones Grafo de restricciones
Consistencia Arco consistencia
Bibliografı́a Camino consistencia

Ejemplo III

Como se puede ver en la


X figura, existe un coloreado
para cada vértice que
garantiza la arco consistencia.
Sin embargo, no existe
ninguna solución globalmente
consistente
Y Z La arco consistencia sirve sólo
para encontrar inconsistencias
entre nodos adyacentes

Carlos Linares López Programación de Restricciones


Definiciones Grafo de restricciones
Consistencia Arco consistencia
Bibliografı́a Camino consistencia

Camino consistencia

Definición 3 Una restricción Rij es camino consistente en


relación a la variable xk si y sólo si para cada par (ai , aj ) ∈ Rij ,
existe un valor ak ∈ Dk tal que (ai , ak ) ∈ Rik y (ak , aj ) ∈ Rkj

CC-REVISE (xi , xj , xk )
FOR (a, b) ∈ Rij
IF @c ∈ Dk tal que (a, c) ∈ Rik ∧ (b, c) ∈ Rjk
THEN Rij = Rij − (a, b)

Carlos Linares López Programación de Restricciones


Definiciones Grafo de restricciones
Consistencia Arco consistencia
Bibliografı́a Camino consistencia

Camino consistencia

El algoritmo CC-REVISE fuerza la arco consistencia de dos


variables respecto a una tercera
Para forzar la arco consistencia en toda la red de restricciones
R debe usarse CC-1:

CC-1 (R)
REPEAT
FOR k ←− 1, n
FOR i, j ←− 1, n
CC-REVISE (i, j, k)
UNTIL ninguna restricción Rij cambia

Carlos Linares López Programación de Restricciones


Definiciones Grafo de restricciones
Consistencia Arco consistencia
Bibliografı́a Camino consistencia

Ejemplo I

2-coloring con tres vértices


Aplicar la camino consistencia al problema de 2-coloring con tres
vértices discutido en el ejemplo anterior
¿Existe una instanciación globalmente consistente, o es infactible?

Carlos Linares López Programación de Restricciones


Definiciones Grafo de restricciones
Consistencia Arco consistencia
Bibliografı́a Camino consistencia

Ejemplo II
Considérese por ejemplo la restricción Rxy = {(r , a), (a, r )} con
respecto a la variable xz (Dz = {r , a}):
Rxy = (r , a) : xz = r es consistente con xy pero no con la
primera; análogamente xz = a es consistente con la
primera pero no con la segunda. Se elimina (r , a) de
Rxy puesto que no hay valores de xz camino
consistentes con élla.
Rxy = (a, r ) : xz = a es consistente con xy pero no con la
primera; análogamente xz = r es consistente con la
primera pero no con la segunda. Como antes, se
elimina (a, r ) de Rxy
y como Rxy = ∅ no existen valores legales simultáneos para los
nodos X e Y , detectando ası́ la infactibilidad

Carlos Linares López Programación de Restricciones


Definiciones Grafo de restricciones
Consistencia Arco consistencia
Bibliografı́a Camino consistencia

Ejemplo III

2-coloring con cuatro vértices


Calcular la camino consistencia del etiquetado con sólo dos colores
(rojo y azul) de un grafo con cuatro vértices (X , Y , Z y W )
dispuesto como se muestra, de modo que dos vértices adyacentes
no están etiquetados con el mismo color

Rxy
X Y

Rzx Ryw

Z W
Rwz

Carlos Linares López Programación de Restricciones


Definiciones Grafo de restricciones
Consistencia Arco consistencia
Bibliografı́a Camino consistencia

Ejemplo IV

Las restricciones son:

Rxy ={(r , a), (a, r )}


Ryw ={(r , a), (a, r )}
Rwz ={(r , a), (a, r )}
Rzx ={(r , a), (a, r )}
donde r y a representan el color rojo y azul respectivamente

Carlos Linares López Programación de Restricciones


Definiciones Grafo de restricciones
Consistencia Arco consistencia
Bibliografı́a Camino consistencia

Ejemplo V

Considerando la restricción Rxy = (r , a) con respecto a:


xz : xz = a es consistente con xx . Como Ryz no está
definida, se verifica la camino consistencia de
Rxy = (r , a) respecto de xz
xw : xw = r es consistente con xy . Como Rxw no está
definida, se verifica la camino consistencia de
Rxy = (r , a) respecto de xw
Análogamente se demuestra que Rxy = (a, r ) es también camino
consistente con respecto a xz y xw . Por lo tanto, Rxy queda
intacta.

Carlos Linares López Programación de Restricciones


Definiciones Grafo de restricciones
Consistencia Arco consistencia
Bibliografı́a Camino consistencia

Ejemplo VI

Tomando el primer caso, se tiene entonces que


xx = r , xy = a, xz = a es camino consistente. Examinando ahora
Ryw = (a, r ) (puesto que xy = a):
xz : xz = a es consistente con xw . Como Ryz no está
definida, se verifica la camino consistencia de
Ryw = (a, r ) respecto de xz
xx : xx = r es consistente con xy . Como Rxw no está
definida, se verifica la camino consistencia de
Ryw = (a, r ) respecto de xz

Carlos Linares López Programación de Restricciones


Definiciones Grafo de restricciones
Consistencia Arco consistencia
Bibliografı́a Camino consistencia

Ejemplo VII

Por lo tanto, como Ryw = (a, r ) es camino consistente con el resto


de variables, la asignación xw = r está permitida que, junto con las
asignaciones del paso anterior resultan en el siguiente coloreado:

Carlos Linares López Programación de Restricciones


Definiciones Grafo de restricciones
Consistencia Arco consistencia
Bibliografı́a Camino consistencia

Tipos de consistencia I

Definición 4 Nodo-consistencia ó 1-consistencia: La


consistencia local más simple de todas es la consistencia de nodo o
nodo-consistencia. Una variable xi es nodo-consistente si y solo si
todos los valores de su dominio Di son consistentes con las
restricciones unarias sobre la variable. Un CSP es nodo-consistente
si y solo si todas sus variables son nodo-consistentes:
∀xi ∈X, ∀ci ∈C, ∃Di : (a) ∈ci

Carlos Linares López Programación de Restricciones


Definiciones Grafo de restricciones
Consistencia Arco consistencia
Bibliografı́a Camino consistencia

Tipos de consistencia II

Los dos siguientes “niveles” de complejidad en el estudio de la


consistencia de un sistema de restricciones ya los hemos visto:

Arco-consistencia (ó 2-consistencia)

Camino-consistencia (ó 3-consistencia)

... Pero ¿es suficiente con demostrar que un sistema es


camino-consistente para asegurar la consistencia global del sistema
de restricciones?

Carlos Linares López Programación de Restricciones


Definiciones Grafo de restricciones
Consistencia Arco consistencia
Bibliografı́a Camino consistencia

Tipos de consistencia III

Como seguramente ya sospechabais: NO.

... pero el estudio de la 2-consistencia y 3-consistencia es un útil


para acotar los dominios y restricciones de la red, restringiendo con
ello el espacio de búsqueda.

¿Y si con la 3-consistencia no es suficiente?

Carlos Linares López Programación de Restricciones


Definiciones Grafo de restricciones
Consistencia Arco consistencia
Bibliografı́a Camino consistencia

Tipos de consistencia IV

Definición 5 En general, se dice que una red es k-consistente si


y solo si dada cualquier instanciación de k − 1 variables, que
satisfagan todas las restricciones entre ellas, existe al menos una
instanciación de una variable k, tal que se satisfacen las
restricciones entre las k variables.

En otras palabras, cualquier solución en una subred de tamaño


k − 1, puede ser extendida a una solución en una subred de
tamaño k, que contenga a la anterior y, en consecuencia, cada
subred de k variables es localmente consistente. Cuando una red es
i-consistente
∀i,i 6 k se dice que es fuertemente i-consistente.

Carlos Linares López Programación de Restricciones


Definiciones Grafo de restricciones
Consistencia Arco consistencia
Bibliografı́a Camino consistencia

Tipos de consistencia V

Definición 6 Un CSP es consistente si tiene al menos una


solución. Un CSP es globalmente consistente si es
i − consistente ∀i,i 6 n, es decir, cualquier instanciación
localmente consistente entre i variables (1 6 i 6 n), puede formar
parte de una solución global.

Carlos Linares López Programación de Restricciones


Definiciones Grafo de restricciones
Consistencia Arco consistencia
Bibliografı́a Camino consistencia

Tipos de consistencia VI
En general comprobar la consistencia global de una red requiere
representar de forma explı́cita restricciones para todas las variables
del problema, es decir, generar etiquetas (n − 1) − dimensionales
para un problema de tamaño n forzando la n − consistencia.

Esta tarea tiene una complejidad exponencial en el peor de los


casos, aunque existen algunos casos especiales en los que la
complejidad es polinómica:
La Arco-consistencia es equivalente a la consistencia global
cuando la red de restricciones es un árbol
La consistencia de caminos es equivalente a la consistencia
global cuando el CSP es convexo y binario, siendo un CSP
convexo aquel cuyas restricciones determinan un espacio de
soluciones convexo.

Carlos Linares López Programación de Restricciones


Definiciones Grafo de restricciones
Consistencia Arco consistencia
Bibliografı́a Camino consistencia

Tipos de consistencia VII

¿Y que es un espacio de soluciones convexo?


...os lo dejo como ejercicio de profundización en este tema

El problema para conocer si un CSP es consistente (tiene al menos


una solución) se denomina problema de satisfabilidad. Este
problema, ası́ como el problema equivalente de encontrar una
solución, es en general NP.

Carlos Linares López Programación de Restricciones


Definiciones
Consistencia
Bibliografı́a

Bibliografı́a

Dechter, Rina
Constraint Programming
Morgan Kaufmann, 2003

Carlos Linares López Programación de Restricciones

S-ar putea să vă placă și