Está en la página 1de 56

Inteligencia Artificial

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

Objetivo: encontrar un estado (una asignacin


completa de valores a las variables) que
satisface las restricciones.
2

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, ROJO, VERDE

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.

Los algoritmos de bsqueda primero en


profundidad son populares para PSRs.
El camino que alcanza una solucin es irrelevante.
La clase ms simple de PSR implica variables
discretas y dominios finitos: problemas de
coloreo de mapas, de n-reinas
5

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

Existen algoritmos para restricciones lineales


7
sobre variables enteras.

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.

Los problemas de programacin lineal pueden


resolverse en tiempo polinomial en el nmero
de variables.
9

Algoritmos
Basados en bsqueda
complejidad:
tiempo: O(exp(n))
espacio: O(n)

Basados en programacin dinmica


complejidad:
tiempo: O(exp(w*+1))
espacio: O(exp(w*))

Donde n es el nmero de variables y w* es la


anchura inducida del grafo de restricciones
10
1
dado un orden.
0

Algoritmos basados en bsqueda


Formulacin incremental, como en un problema
de bsqueda estndar:
Estado inicial: la asignacin vaca { }, en que todas
las n variables no estn asignadas.
Funcin de sucesor: asignacin de un valor d a
cualquier variable no asignada, a condicin de que
no suponga conflicto con variables ya asignadas.
Test objetivo: la asignacin actual es completa.
Costo del camino: un costo constante (p.e., 1)
para cada paso.
11
1
1

Algoritmos basados en bsqueda


Formulacin completa de estados:
Cada estado es una asignacin completa que
satisface o no las restricciones.
Los mtodos de bsqueda local trabajan bien
para esta formulacin.

12
1
2

Algoritmos basados en bsqueda


Bsqueda heurstica
Bsqueda en profundidad con vuelta atrs cronolgica

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

Bsqueda con vuelta atrs para


PSR
Si los PSRs se formulan como problemas de
bsqueda, cualquiera de los algoritmos de
bsqueda vistos anteriormente los pueden
resolver.
Estado inicial: la asignacin vaca { }, en que todas las n variables no estn
asignadas.
Funcin de sucesor: asignacin de un valor d a cualquier variable no asignada,
a condicin de que no suponga conflicto con variables ya asignadas.

Si aplicamos la bsqueda primero en anchura,


notamos algo terrible:
El factor de ramificacin en el nivel superior es
1
de nd.
6

Bsqueda con vuelta atrs para


PSR
Por qu terrible?:
En el siguiente nivel, el factor de ramificacin es
(n-1)d, etctera para los n niveles.
Generamos un rbol con n!dn hojas, aunque
haya slo dn asignaciones completas!

La formulacin del problema, aparentemente


razonable pero ingenua, no ha considerado
una propiedad crucial comn en todos los
PSRs:
la conmutatividad
1
7

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, ROJO, VERDE

AZUL, VERDE

Estado inicial

1
9

Bsqueda con vuelta atrs


El trmino bsqueda con vuelta atrs se
utiliza para la bsqueda en profundidad que:
elige valores para una variable a la vez y
vuelve atrs cuando una variable no tiene
ningn valor legal para asignarle.

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

Bsqueda con vuelta atrs:


algoritmo

2
1

Bsqueda con vuelta atrs:


algoritmo
funcin BSQUEDA-CON-VUELTA-ATRS(psr) devuelve una solucin, o
fallo
devolver VUELTA-ATRS-RECURSIVA({}, psr)
funcin VUELTA-ATRS-RECURSIVA(asignacin, psr) devuelve una
solucin, o
un fallo
si asignacin es completa entonces devolver asignacin
var SELECCIONA-VARIABLE-NOASIGNADA(VARIABLES[psr],
asignacin, psr)
para cada valor en ORDEN-VALORES-DOMINIO(var, asignacin, psr)
hacer
si valor es consistente con asignacin de acuerdo a las
RESTRICCIONES[psr]
entonces
aadir {var = valor} a asignacin
resultado VUELTA-ATRS-RECURSIVA(asignacin, psr)

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

Propiedades sobre grafos de


restricciones
Se pueden definir propiedades sobre los grafos de
restricciones que permiten reducir el espacio de
bsqueda.
k-consistency: poda de valores que no sean posibles
para un grupo de k variables:
Arc consistency (2-consistency): Eliminamos valores
imposibles para parejas de variables.
Path consistency (3-consistency): Eliminamos valores
imposibles para ternas de variables.
...
Comenzar con un grafo k-consistent (2, 3...) reduce el
nmero de vueltas atrs.

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:

(Se vuelve a analizar la consistencia de arcos cuyo destino ha podido cambiar.)

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

Propagacin durante la bsqueda


(forward checking)
Modificacin del algoritmo de bsqueda en
profundidad con vuelta atrs cronolgica
Anticipacin: detectar cuanto antes caminos sin
solucin y podarlos.
Asignar un valor y consultar las restricciones sobre las
variables futuras con arco desde la actual
Se eliminan valores no compatibles de los dominios
correspondientes a dichas variables futuras

Equivale a hacer arco-consistente la variable actual


con las futuras en cada paso.
La eficiencia depender del problema.
Se incrementa el coste de cada iteracin.

Algoritmo forward checking

Ejemplo: 4-reinas mediante forward


checking

Ejemplo: 4-reinas mediante forward


checking
R1=1?
R2=3?

Propagamos: R2=3,4; R3=2,4; R4=2,3 R1=1

R2=4?
R3=2?

Propagamos: R3=2; R4=3 R2=4

Propagamos: R3=
Propagamos: R4=

Ningn otro valor para R3. Backtracking a R2


Ningn otro valor para R2. Backtracking a R1
R1=2?
R2=4?

Propagamos: R2=4; R3=1,3; R4=1,3,4 R1=2

R3=1?
R4=3?

Propagamos: R4=3 R3=1

Propagamos: R3=1; R4=1,3 R2=4


No hay propagaciones 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:

NT and SA cannot both be blue!


Constraint propagation repeatedly enforces constraints
51
5
locally.
1

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

If X loses a value, neighbors of X


need to be rechecked.

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

Arc consistency detects failure earlier than forward checking.


Can be run as a preprocessor or after each assignment.
55
5
5

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

La reordenacin de variables puede reducir el


tiempo de bsqueda varios ordenes de
magnitud en ciertos problemas.

También podría gustarte