Está en la página 1de 68

Inteligencia Artificial

2.3 Problemas de Satisfaccin


de Restricciones
Introduccin
Anteriormente se vio que los problemas pueden
resolverse buscando en un espacio de estados.
Estos estados pueden evaluarse por heursticas
especficas para el dominio y probados para
verificar si son estados meta.
Desde el punto de vista del algoritmo de
bsqueda, cada estado es una caja negra sin
estructura interna discernible.
Solo es accesada por las rutinas especficas del
problema (la funcin de sucesor, la funcin
heurstica y la prueba de meta).
Introduccin
En los problemas de satisfaccin de
restricciones (PSR), los estados y la prueba de
meta siguen a una representacin estndar,
estructurada y muy simple.
Los algoritmos de bsqueda pueden ser
definidos de tal manera que tomen ventaja de la
estructura de los estados y usen heursticas de
propsito general en vez de especficas del
problema, para permitir la solucin de
problemas grandes.
Introduccin
Tal vez lo ms importante es que la
representacin estndar de la prueba de
meta revela la estructura del problema
mismo.
Esto lleva a los mtodos para
descomposicin de problemas y a un
entendimiento de la conexin ntima entre
la estructura del problema y la dificultad
para resolverlo.
Problemas de Satisfaccin de
Restricciones
Un problema de satisfaccin de restricciones
(o PSR) se define por un conjunto de variables,
X1, X2, , Xn, y un conjunto de restricciones,
C1, C2, , Cm.
Cada variable Xi tiene un dominio no vaco Di
de posibles valores.
Cada restriccin Ci involucra algn subconjunto
de las variables y especifica las combinaciones
permisibles de valores de ese subconjunto.
Problemas de Satisfaccin de
Restricciones
Un estado del problema se define por una
asignacin de valores a alguna o todas las
variables, {Xi = vi, Xj = vj, }.
Una asignacin que no viola ninguna restriccin
es llamada consistente o legal.
Una asignacin completa es una en la cual cada
variable es mencionada.
Una solucin a un PSR es una asignacin
completa que satisface todas las restricciones.
Problemas de Satisfaccin de
Restricciones
Problema: Colorear el
mapa de Australia,
usando los colores Territorio
del

rojo, verde o azul, de Australia


Norte Queensland

tal forma que dos del


Oeste Australia

regiones vecinas no del Sur


Nueva Gales
del Sur
tengan el mismo
color. Victoria

Tasmania
Problemas de Satisfaccin de
Restricciones
Formulacin como PSR:
Variables: las regiones de Australia
AO (Australia del Oeste)
TN (Territorio del Norte)
Q (Queensland)
NGS (Nueva Gales del Sur)
V (Victoria)
AS (Australia del Sur)
T (Tasmania)
Problemas de Satisfaccin de
Restricciones
Formulacin como PSR:
Dominios: El dominio de cada variable es el conjunto
{rojo, verde, azul}.
Restricciones: Las restricciones requieren que
regiones vecinas tengan distintos colores. Por
ejemplo, las combinaciones permisibles para AO y
TN son los pares:
{(rojo, verde), (rojo, azul), (verde, rojo), (verde, azul),
(azul, rojo), (azul, verde)}
Esta restriccin puede representarse como AO TN.
Problemas de Satisfaccin de
Restricciones
Formulacin como PSR:
Solucin: Hay muchas soluciones posibles,
como
{AO = rojo, TN = verde, Q = rojo, NGS = verde,
V = rojo, AS = azul, T = rojo}
Problemas de Satisfaccin de
Restricciones
Es til visualizar un
PSR como un grafo
de restricciones.
Los nodos del grafo TN
corresponden a las Q
variables del
AO
problema, y los arcos
AS
corresponden a las
NGS
restricciones.
V

T
Problemas de Satisfaccin de
Restricciones
Es til visualizar un TN
PSR como un grafo Q
de restricciones.
AO
Los nodos del grafo AS
corresponden a las
NGS
variables del
problema, y los arcos V
corresponden a las
restricciones.
T
Problemas de Satisfaccin de
Restricciones
Tratar un problema como un PSR tiene
importantes beneficios:
La representacin de estados en un PSR sigue un
patrn estndar (un conjunto de variables con valores
asignados), por lo que la funcin de sucesor y la
prueba de meta pueden ser escritos de una manera
genrica que se aplica a todos los PSR.
Se pueden desarrollar heursticas efectivas que no
requieren experiencia adicional especfica del dominio.
La estructura del grafo de restricciones puede usarse
para simplificar el proceso de solucin en algunos
casos, dando una reduccin exponencial en
complejidad.
Problemas de Satisfaccin de
Restricciones
A un PSR se le puede hacer una formulacin
incremental como un problema de bsqueda
estndar de la siguiente manera:
Estado inicial: La asignacin vaca { }, en la cual
todas las variables estn sin asignar.
Funcin de sucesor: Un valor puede ser asignado a
una variable sin asignar, siempre y cuando no entre
en conflicto con variables previamente asignadas.
Prueba de meta: La asignacin actual est completa.
Costo de ruta: Un costo constante (por ejemplo, 1)
para cada paso.
Problemas de Satisfaccin de
Restricciones
Cada solucin debe ser una asignacin completa y
por lo tanto tiene una profundidad n si hay n
variables.
Por esta razn, los algoritmos de bsqueda primero
en profundidad son populares para los PSR.
Tambin ocurre que la ruta por la cual se alcanza
una solucin es irrelevante. Por lo tanto, tambin se
puede usar una formulacin de estado completo,
en la cual cada estado es una asignacin completa
que puede satisfacer o no las restricciones. Los
mtodos de bsqueda local trabajan bien con esta
formulacin.
Problemas de Satisfaccin de
Restricciones
El tipo ms simple de PSR involucra variables que
son discretas y tienen dominios finitos.
Los problemas de coloreo de mapas son de este
tipo. Incluso el problema de las 8 reinas puede
plantearse como PSR:
Variables: Q1, , Q8 (Posiciones de cada reina en las
columnas 1, , 8).
Dominios: Cada variable tiene el dominio {1, 2, 3, 4, 5, 6,
7, 8}.
Los PSR de dominios finitos incluyen a los PSR
booleanos, cuyas variables son verdadero o falso.
Problemas de Satisfaccin de
Restricciones
Las variables discretas pueden tambin tener
dominios infinitos, por ejemplo, el conjunto de los
nmeros enteros, o el conjunto de todas las cadenas
de caracteres.
Por ejemplo, cuando se requieren programar
trabajos de construccin en el calendario, la fecha de
inicio de cada trabajo es una variable, y sus valores
posibles es el nmero de das enteros a partir de la
fecha actual.
Con dominios infinitos, ya no es posible describir las
restricciones enumerando todas las combinaciones
de valores permisibles.
Problemas de Satisfaccin de
Restricciones
Con dominios infinitos, se debe usar entonces un
lenguaje de restricciones.
Por ejemplo, si Trabajo1 toma 5 das, y debe preceder a
Trabajo3, entonces necesitaramos un lenguaje de
restricciones de desigualdades algebraicas tal como

InicioTrabajo1 + 5 InicioTrabajo3

Existen algoritmos de solucin especiales para las


restricciones lineales de variables enteras
(restricciones como la anterior, en la que cada variable
aparece slo en forma lineal).
Problemas de Satisfaccin de
Restricciones
Puede demostrarse que no existe un algoritmo para
resolver restricciones no lineales generales sobre
variables enteras.
En algunos casos, se puede reducir los problemas de
restricciones enteras a problemas de dominio finito
simplemente acotando los valores de todas las
variables. Ejemplo: poniendo una cota superior igual a
la de duracin total de todos los trabajos a ser
programados.
Problemas de Satisfaccin de
Restricciones
Los PSR con dominios continuos son muy comunes en
el mundo real y son ampliamente estudiados en el campo
de la investigacin de operaciones. Por ejemplo, la
programacin de experimentos en el Telescopio Espacial
Hubble, que requiere una medicin muy precisa del tiempo
para las observaciones, para el inicio y fin de cada
observacin, y el manejo de variables continuas que deben
obedecer una variedad de restricciones astronmicas, de
precedencia y de energa.
La categora mejor conocida de PSR de dominio continuo
es la de los problemas de programacin lineal, donde las
restricciones deben ser desigualdades lineales formando
una regin convexa.
Problemas de Satisfaccin de
Restricciones
Los problemas de programacin lineal pueden ser
resueltos en tiempo polinomial en el nmero de variables.
Tambin se han estudiado otros problemas con diferentes
tipos de restricciones y funciones objetivo (programacin
cuadrtica, programacin cnica de segundo orden, etc.)
Problemas de Satisfaccin de
Restricciones
Los tipos de restricciones que se pueden tener son:
Restricciones unarias: restringen el valor de una sola
variable.
Ejemplo: A la gente de Australia del Sur no le gusta el color
verde. AS verde
Cada restriccin unaria puede eliminarse simplemente
preprocesando el dominio de la variable correspondiente para
eliminar cualquier valor que viole la restriccin.
Restricciones binarias: relacionan dos variables.
Ejemplo: Australia del Sur y Nueva Gales del Sur no pueden
tener el mismo color. AS NGS
Un PSR binario es uno que tiene slo restricciones
binarias, y se puede representar con un grafo de
restricciones.
Problemas de Satisfaccin de
Restricciones
Las restricciones de alto orden involucran tres o ms
variables. Un ejemplo familiar de esto lo representan
los problemas de criptoaritmtica.

TWO
+TWO
FOUR
Problemas de Satisfaccin de
Restricciones
El hecho de que cada letra representa un dgito diferente se
puede representar mediante una restriccin de seis variables:
TodasDif (F, T, U, W, R, O), o puede ser representado por la
coleccin de restricciones binarias {F T, F U, , R O}.
Las restricciones de adicin de las cuatro columnas tambin
involucran varias variables:
O + O = R + 10 X1
X1 + W + W = U + 10 X2
X2 + T + T = O + 10 X3
X3 = F
X1, X2 y X3 son variables auxiliares que representan el dgito
(0 o 1) acarreado a la siguiente columna.
Problemas de Satisfaccin de
Restricciones
Las restricciones de alto orden se pueden representar en
un hipergrafo de restricciones:

F T U W R O

X3 X2 X1
Problemas de Satisfaccin de
Restricciones
Cada restriccin de alto orden, con dominio finito, puede
reducirse a un conjunto de restricciones binarias, si se
introducen las variables auxiliares suficientes. Es por eso
que se estudian preferentemente problemas slo con
restriccines binarias.
Hasta ahora se han descrito slo restricciones absolutas
(cualquier asignacin completa que viole alguna de ellas,
se descarta como solucin).
Muchos PSR del mundo real incluyen restricciones de
preferencia, indicando cuales soluciones son preferibles.
Estas restricciones pueden ser codificadas como costos
sobre las asignaciones de variables individuales.
Bsqueda backtracking para los
PSR
Usando la formulacin antes mencionada para
PSR, cualquier algoritmo de bsqueda visto
anteriormente puede ser usado para resolverlos.
Suponiendo que se usa bsqueda primero por
amplitud, el factor de ramificacin en el nivel
superior es nd, en el siguiente nivel es (n 1)d,
y as sucesivamente para los n niveles. Se
genera un rbol de n!dn hojas.
Bsqueda backtracking para los
PSR
Sin embargo, todos los PSR tienen la propiedad
de la conmutatividad.
Un problema es conmutativo si el orden de
aplicacin de cualquier conjunto dado de
acciones no tiene efecto en la salida.
Por lo tanto, todos los algoritmos de bsqueda
en PSR generan sucesores considerando las
posibles asignaciones para slo una variable en
cada nodo del rbol de bsqueda.
Bsqueda backtracking para los
PSR
La bsqueda backtracking es una
bsqueda primero en profundidad que
elige valores para una variable a la vez y
regresa (backtraks) cuando a una
variable no le quedan valores legales para
asignarle.
Bsqueda backtracking para los
PSR

AO = rojo AO = verde AO = azul

AO = rojo AO = rojo
TN = verde TN = azul

AO = rojo AO = rojo
TN = verde TN = verde
Q = rojo Q = rojo
Bsqueda backtracking para los
PSR
La bsqueda backtracking simple es un
algoritmo no informado, asi que no se
espera que sea efectivo para problemas
grandes.
Bsqueda backtracking para los
PSR
Problema Back- BT+MVR Forward FC+ Conflictos
Tracking Checking MVR Min.
USA (>1,000K) (>1,000K) 2K 60 64

n-Reinas (>40,000K) 13,500K (>40,000K 817K 4K


)
Cebra 3,859K 1K 35K 0.5K 2K

Aleatorio 415K 3K 26K 2K


1
Aleatorio 942K 27K 77K 15K
2

K = miles de chequeos de consistencia, ( ) = no hall solucin


Bsqueda backtracking para los
PSR
Los mtodos de propsito general se hacen las
siguientes preguntas:
Qu variable debe asignarse en seguida, y en que
orden deben intentarse los valores?
Cules son las implicaciones de las asignaciones
actuales de variables para las otras variables sin
asignar?
Cuando una ruta falla (es decir, un estado es
alcanzado en el cual una variable no tiene valores
legales) Puede la bsqueda evitar repetir esta falla
en rutas subsecuentes?
Bsqueda backtracking para los
PSR
Orden de las variables y de los valores
Por default, la siguiente variable a asignar se
selecciona de una lista esttica de variables que rara
vez produce una bsqueda eficiente.
La idea intuitiva de elegir la variable que tenga el
mnimo de valores legales es llamada la heurstica
del mnimo de valores remanentes (MVR).
Tambin se le llama la de la variable ms restringida
o de falla-primero, porque selecciona la variable que
probablemente pronto causar una falla, podando el
rbol de bsqueda.
Bsqueda backtracking para los
PSR
Orden de las variables y de los valores
La heurstica MVR no ayuda en absoluto para elegir
la primera region a colorear del mapa de Australia,
porque inicialmente cada regin tiene tres colores
legales.
En este caso, la heurstica de grado es utilizada.
Intenta reducir el factor de ramificacin para
elecciones futuras seleccionando la variable que est
involucrada en el mayor nmero de restricciones. AS
tiene grado 5, las otras tiene 2 o 3, y T tiene 0.
La heurstica de MVR es una gua ms poderosa,
pero la heurstica de grado puede ser muy til para
romper empates.
Bsqueda backtracking para los
PSR
Orden de las variables y de los valores
Una vez que una variable ha sido seleccionada, el algoritmo
debe decidir en qu orden examinar sus valores.
Para esto, la heurstica del valor menos restrictivo puede ser
efectiva en algunos casos.
Esta heurstica prefiere el valor que elimine la menor cantidad
de valores posibles de las variables vecinas en el grafo de
restricciones.
Por ejemplo, si se ha asignado AO=rojo, TN=verde, y se tiene
que elegir Q. Si se elige azul, esto elimina el ltimo valor legal
que podamos asignarle a AS. Por lo tanto, segn la heurstica
del valor menos restrictivo, se debe asignar Q=rojo.
La idea es contar siempre con la mayor flexibilidad posible para
las asignaciones de variables subsecuentes.
Bsqueda backtracking para los
PSR
Propagando informacin a travs de las
restricciones
Hasta ahora solo se han considerado las
restricciones sobre una variable solo cuando
la variable se elige para asignarle valor.
Observando algunas restricciones un poco
antes durante la bsqueda, o incluso antes de
que la bsqueda comience, se puede reducir
drsticamente el espacio de bsqueda.
Bsqueda backtracking para los
PSR
Propagando informacin a travs de las
restricciones
Forward checking
Cuando una variable X es asignada, el proceso FC
observa a cada variable sin asignar Y que est
conectada a X por una restriccin y borra del
dominio de Y cualquier valor que sea inconsistente
con el valor elegido para X.
Bsqueda backtracking para los
PSR
Propagando informacin a travs de las
restricciones
Forward checking
AO TN Q NGS V AS T
Dominios
Iniciales RVA RVA RVA RVA RVA RVA RVA
Despus
R
que VA RVA RVA RVA VA RVA
AO=rojo
Despus
que R A V R A RVA A RVA
Q=verde
Despus
que R A V R A --- RVA
V=azul
Bsqueda backtracking para los
PSR
Propagando informacin a travs de las
restricciones
Propagacin de restricciones
Aunque FC detecta muchas inconsistencias, no las detecta
todas.
En la tabla anterior, puede verse que cuando AO es rojo y Q
es verde, tanto TN como AS son forzados a ser azules. Sin
embargo, estos dos ltimos son adyacentes y por lo tanto,
no pueden tener el mismo color. FC no detecta esto como
una inconsistencia, porque no mira ms all.
La propagacin de restricciones es el trmino general
para propagar las implicaciones de una restriccin sobre una
variable en otras variables.
Bsqueda backtracking para los
PSR
Propagando informacin a travs de las
restricciones
Propagacin de restricciones
La idea de consistencia de arco proporciona un mtodo
rpido de propagacin de restricciones que es
sustancialmente ms fuerte que FC.
Arco se refiere al arco dirigido en el grafo de restricciones,
por ejemplo, el arco que va de AS a NGS.
Dados los dominios actuales de AS y NGS, el arco es
consistente si, para cada valor x de AS, hay algn valor y de
NGS que sea consistente con x.
En el rengln 3 de la tabla, se puede ver que el arco de AS a
NGS es consistente, pero el arco inverso de NGS a AS no lo
es. Este arco puede hacerse consistente borrando el valor
azul del dominio de NGS.
Bsqueda backtracking para los
PSR
Propagando informacin a travs de las
restricciones
Propagacin de restricciones
La verificacin de consistencia de arco puede ser aplicada
tanto como un paso de preprocesamiento antes de empezar
la bsqueda, o como un paso de propagacin (como FC)
despus de cada asignacin durante la bsqueda.
En cualquiera de los dos casos, el proceso debe ser
aplicado repetidamente hasta que no quede ninguna
inconsistencia, ya que la eliminacion de una de ellas puede
crear otras nuevas.
El algoritmo completo para consistencia de arco es llamado
AC-3.
Bsqueda backtracking para los
PSR
Propagando informacin a travs de las
restricciones
Propagacin de restricciones
Formas ms fuertes de propagacin se pueden definir usando
la notacin llamada k-consistencia.
Un PSR es k-consistente si, para cualquier conjunto de k-1
variables y para cualquier asignacin consistente a esas
variables, un valor consistente puede siempre ser asignado a
cualquier k-sima variable.
Por lo tanto, 1-consistencia significa que cada variable
individual es consistente por s misma; esto es tambin
llamado consistencia de nodo. 2-consistencia es lo mismo
que consistencia de arco. 3-consistencia significa que
cualquier par de variables adyacentes puede siempre ser
extendida a una tercera variable vecina, lo que se llama
consistencia de ruta.
Bsqueda backtracking para los
PSR
Propagando informacin a travs de las
restricciones
Propagacin de restricciones
Un grafo es fuertemente k-consistente si es k-consistente
y adems es tambin (k-1)-consistente, (k-2)-consistente,
y as hasta llegar a 1-consistente.
Si se tiene un problema con n nodos, y se hace fuertemente
n-consistente, entonces el problema se puede resolver sin
backtracking.
Sin embargo, cualquier algoritmo para establecer la n-
consistencia debe tomar tiempo exponencial en n en el peor
caso.
Bsqueda backtracking para los
PSR
Propagando informacin a travs de las
restricciones
Manejo de restricciones especiales
Ejemplo, la restriccin TodasDiferentes dice que
todas las variables involucradas deben tener
valores diferentes.
Una forma simple de detectar la inconsistencia de
esta restriccin es: si hay m variables involucradas
en la restriccin, y si ellas tienen n posibles
valores distintos cada una, y m > n, entonces la
restriccin no puede ser satisfecha.
Bsqueda backtracking para los
PSR
Propagando informacin a travs de las
restricciones
Manejo de restricciones especiales
Tal vez la restriccin de alto orden ms importante es la
restriccin de recursos, algunas veces llamada restriccin
cuandomucho.
Por ejemplo, sean PA1, , PA4 las cantidades de personal
asignado a cada una de 4 tareas. La restriccin de que no se
asignen ms de 10 personas en total se escribe como
cuandomucho(10, PA1, PA2 PA3, PA4).
Una inconsistencia puede detectarse simplemente checando
la suma de los valores mnimos de los dominios actuales. Por
ejemplo, si cada variable tiene el dominio {3,4,5,6}, la
restriccin cuandomucho no puede ser satisfecha.
Bsqueda backtracking para los
PSR
Propagando informacin a travs de las
restricciones
Manejo de restricciones especiales
Para problemas grandes limitados en recursos, como
problemas de logstica involucrando miles de personas o
cientos de vehculos, usualmente no es posible representar
el dominio de cada variable como un conjunto de enteros y
reducirlo gradualmente con los mtodos de verificacin de
consistencia.
Lo que se hace en estos casos es representar los dominios
por medio de lmites superiores e inferiores, y manejarlos por
propagacin de lmites.
Bsqueda backtracking para los
PSR
Backtracking inteligente: mirando hacia atrs.
Cuando una rama de la bsqueda falla, el algoritmo
de BT regresa a la variable precedente e intenta un
nuevo valor para ella.
Esto es llamado Backtracking cronolgico.
Qu pasara si en el problema de Australia se
hubiera elegido un orden de instanciacin fijo Q,
NGS, V, T, AS, AO, TN? Supn que ya se ha
generado la asignacin {Q=rojo, NGS=verde, V=azul,
T=rojo}. Cuando se intenta asignar la siguiente
variable, AS, todo falla. Regresar y cambiar el valor a
T no soluciona el problema.
Bsqueda backtracking para los
PSR
Backtracking inteligente: mirando hacia
atrs.
Un enfoque ms inteligente que el BT es
regresar hasta una de las variables del
conjunto que causaron la falla. Este conjunto
es llamado el conjunto conflicto.
El conjunto conflicto para la variable X es el
conjunto de variables previamente asignadas
que estn conectadas a X por restricciones.
El conjunto conflicto para AS es {Q,NGS,V}.
Bsqueda backtracking para los
PSR
Backtracking inteligente: mirando hacia atrs.
El mtodo backjumping regresa a la variable ms
reciente en el conjunto conflicto. En este caso, BJ
brincara sobre Tasmania y buscara un nuevo valor
para V.
El algoritmo FC puede crear el conjunto conflicto
mientras realiza su bsqueda (simplemente almacena
lo que elimina).
BJ ocurre cuando cada valor en el dominio est en
conflicto con la asignacin actual; FC detecta esto
antes y previene que la bsqueda llegue a un nodo
as. Por lo tanto, cada rama podada por BJ es
tambin podada por FC, as que son redundantes.
Bsqueda backtracking para los
PSR
Backtracking inteligente: mirando hacia atrs.
BJ nota la falla cuando el dominio de una cariable queda vaco,
pero en muchos casos una rama est perdida mucho antes de
que esto ocurra.
Ejemplo, cuando se hace la asignacin parcial { AO=rojo,
NGS=rojo}. Si se intenta T=rojo, y luego se asignan TN, Q, V,
AS, ninguna asignacin funciona para estas ltimas.
A dnde hacer backtrack? BJ no puede funcionar, porque TN
S tiene valores consistentes con las variables asignadas
precedentes. TN no tiene un conjunto conflicto completo.
Esto lleva a una nocin ms profunda del conjunto conflicto: si el
conjunto de variables precedentes que causaron TN, junto con
cualquier variable subsecuente, no tienen solucin consistente.
A este algoritmo se le llama backjumping dirigido por
conflictos.
Bsqueda local para PSR
Los algoritmos de bsqueda local son efectivos para
resolver muchos PSR.
Usan una formulacin de estado completo: el estado
inicial asigna un valor a cada variable, y la funcin
sucesor usualmente trabaja cambiando el valor de una
variable a la vez.
El problema de las 8 reinas puede plantearse de dos
formas:
Poner las 8 reinas en las 8 columnas al azar, y mover luego
cada reina a lo largo de su columna.
Poner las 8 reinas, una por columna en una permutacin de las
8 columnas, y luego generar sucesores intercambiando dos
reinas de columna.
Bsqueda local para PSR
Para elegir un nuevo valor para una
variable, la heurstica ms obvia es
seleccionar el valor que resulte en el
nmero mnimo de conflictos con otras
variables la heurstica de conflictos
mnimos.
La estructura de los problemas
La nica manera en la que podemos esperar tratar con
el mundo real es, posiblemente, descomponindolo en
muchos subproblemas.
Por ejemplo, analizando el problema de colorear
Australia para identificar su estructura, un hecho
sobresale: Tasmania no est conectado al continente.
Intuitivamente, es obvio que colorear Tasmania y
colorear el continente son subproblemas
independientes.
Cualquier solucin para el continente, combinada con
cualquier solucin para Tasmania, proporciona una
solucin para el mapa entero.
La estructura de los problemas
La independencia puede ser confirmada
simplemente observando los componentes
conectados del grafo de restricciones.
Los subproblemas completamente
independientes son muy deseables, pero raros.
En la mayora de los casos, los subproblemas
de un CSP estn conectados. El caso ms
simple es cuando el grafo de restricciones forma
un rbol: cualquier par de variables est
conectado a lo mucho por una ruta.
La estructura de los problemas

A E

B D

C F

Grafo de restricciones de un PSR estructurado como rbol


La estructura de los problemas
Cualquier PSR estructurado como rbol
puede ser resuelto en un tiempo lineal en
el nmero de variables.
La estructura de los problemas
El algoritmo es el siguiente:
PASO 1: Elija cualquier variable como la raz
del rbol, y ordene las variables desde la raz
hasta las hojas de tal forma que el padre de
cada nodo en el rbol lo preceda en el
ordenamiento. Etiquete las variables X1, ,
Xn en orden. Ahora, cada variable, excepto la
raz, tiene exactamente una variable padre.
La estructura de los problemas

A B C D E F

Un ordenamiento lineal de las variables consistente con el


rbol con A como raz
La estructura de los problemas
PASO 2: Variando los valores de j desde n
hasta 2 (disminuyendo de 1 en 1), aplique
verificacin de consistencia de arco al arco
(Xi, Xj), donde Xi es el padre de Xj, removiendo
valores del DOMINIO[Xi] conforme sea
necesario.
PASO 3: Variando los valores de j desde 1
hasta n (aumentando de 1 en 1), asigne
cualquier valor para Xj consistente con el valor
asignado para Xi, donde Xi es el padre de Xj.
La estructura de los problemas
Ahora que se tiene un algoritmo eficiente
para rboles, se puede considerar si
grafos de restricciones ms generales
pueden reducirse a rboles de alguna
manera.
Hay dos maneras principales de hacer
esto, una basada en remover nodos y otra
basada en colapsar varios nodos juntos
en uno.
La estructura de los problemas
El primer enfoque involucra asignar
valores a algunas variables de tal manera
que las variables restantes formen un
rbol.
Considera el grafo de restricciones para
Australia. Si se pudiera eliminar Australia
del Sur, el grafo se convertira en un rbol.
La estructura de los problemas
TN TN
Q Q

AO AO
AS
NGS NGS

V V

T T

Grafo de Restricciones Grafo de Restricciones


Original despus de quitar AS
La estructura de los problemas
Afortunadamente, esto se puede hacer fijando
un valor para AS y borrando de los dominios de
las otras variables cualquier valor que sea
inconsistente con el valor elegido para AS.
Ahora, cualquier solucin para el PSR despus
de que AS y sus restricciones fueron removidas
ser consistente con el valor elegido para AS.
El rbol restante puede se resuelto con el
algoritmo para rboles ya mencionado.
La estructura de los problemas
El segundo enfoque est basado en la
construccin de una descomposicin en rbol
del grafo de restricciones en un conjunto de
subproblemas conectados.
Cada subproblema se resuelve
independientemente, y las soluciones
resultantes son combinada.
Como cualquier algoritmo del tipo divide-y-
vencers, ste trabaja bien si ningn
subproblema es demasiado grande.
La estructura de los problemas
TN
TN Q
AO
AS
AS
Q

AS NGS

Una descomposicin
en rbol del grafo del
restricciones del AS NGS
problema del coloreo
V
de Australia T
La estructura de los problemas
Una descomposicin en rbol debe satisfacer
los siguientes tres requerimientos:
Cada variable en el problema original aparece en por
lo menos uno de los subproblemas.
Si dos variables estn conectadas por una restriccin
en el problema original, deben aparecer juntas (con
su restriccin) en por lo menos uno de los
subproblemas.
Si una variable aparece en dos subproblemas en el
rbol que se est creando, debe aparecer en cada
subproblema que forme parte de la ruta que conecta
a los dos primeros subproblemas.
La estructura de los problemas
Los problemas se resuelven
independientemente. Si cualquiera de los
subproblemas no tiene solucin, entonces
sabemos que el problema completo
tampoco tiene solucin.
Si todos los subproblemas se pueden
resolver, se intenta construir entonces una
solucin global al problema.

También podría gustarte