Está en la página 1de 74

INTELIGENCIA ARTIFICIAL Problemas de Satisfaccin de Restricciones

Mg. Samuel Oporto Daz

Lima, 11 de Junio 2005

Tabla de Contenido
Introduccin. Problema de satisfaccin de restricciones Bsqueda backtraking para CSP Bsqueda local para CSP Estructura de los problemas

2 /42

INTRODUCCION

3 /42

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).
4 /42

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.

5 /42

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.

6 /42

PROBLEMA DE SATISFACCION DE RESTRICCIONES

7 /42

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.

8 /42

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.

9 /42

Problemas de Satisfaccin de Restricciones


Problema: Colorear el mapa de Australia, usando los colores rojo, verde o azul, de tal forma que dos regiones vecinas no tengan el mismo color.

Territorio del Norte Australia del Oeste

Queensland

Australia del Sur

Nueva Gales del Sur Victoria

Tasmania

10 /42

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)

11 /42

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.

12 /42

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}

13 /42

Problemas de Satisfaccin de Restricciones


Es til visualizar un PSR como un grafo de restricciones. Los nodos del grafo corresponden a las variables del problema, y los arcos corresponden a las restricciones.

TN Q AO AS NGS V T
14 /42

Problemas de Satisfaccin de Restricciones


Es til visualizar un PSR como un grafo de restricciones. Los nodos del grafo corresponden a las variables del problema, y los arcos corresponden a las restricciones.
TN Q AO AS NGS V

15 /42

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.

16 /42

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.

17 /42

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.

18 /42

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.

19 /42

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.

20 /42

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).
21 /42

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.

22 /42

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.

23 /42

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.)

24 /42

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.
25 /42

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


26 /42

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.

27 /42

Problemas de Satisfaccin de Restricciones


Las restricciones de alto orden se pueden representar en un hipergrafo de restricciones:

X3

X2

X1
28 /42

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.
29 /42

BUSQUEDA BACKTRACKING PARA CSP

30 /42

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.

31 /42

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 accioens 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.

32 /42

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.

33 /42

Bsqueda backtracking para los PSR

AO = rojo

AO = verde

AO = azul

AO = rojo TN = verde AO = rojo TN = verde Q = rojo

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


34 /42

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.

35 /42

Bsqueda backtracking para los PSR


Problema BackTracking (>1,000K) BT+MVR Forward Checking 2K FC+ MVR 60 Conflictos Min.

USA

(>1,000K)

64

n-Reinas

(>40,000K)

13,500K

(>40,000K)

817K

4K

Cebra

3,859K

1K

35K

0.5K

2K

Aleatorio 1

415K

3K

26K

2K

Aleatorio 2

942K

27K

77K

15K

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

36 /42

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?

37 /42

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.

38 /42

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.

39 /42

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.

40 /42

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.

41 /42

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.

42 /42

Bsqueda backtracking para los PSR


Propagando informacin a travs de las restricciones
Forward checking

AO
Dominios Iniciales Despus que AO=rojo

TN
RVA VA

Q
RVA RVA

NGS
RVA RVA

V
RVA RVA

AS
RVA VA

T
RVA RVA

RVA R

Despus que Q=verde

R A

RVA

RVA

Despus que V=azul

---

RVA
43 /42

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.

44 /42

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.

45 /42

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.

46 /42

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 ksima 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. 3consistencia significa que cualquier par de variables adyacentes puede siempre ser extendida a una tercera variable vecina, lo que se llama consistencia de ruta.

47 /42

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 nconsistente, 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.

48 /42

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.

49 /42

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.

50 /42

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.

51 /42

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.

52 /42

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}.

53 /42

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.

54 /42

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.

55 /42

BUSQUEDA LOCAL PARA CSP

56 /42

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.
57 /42

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.

58 /42

ESTRUCTURA DE LOS PROBLEMAS

59 /42

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.

60 /42

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.

61 /42

La estructura de los problemas


A E

Grafo de restricciones de un PSR estructurado como rbol


62 /42

La estructura de los problemas


Cualquier PSR estructurado como rbol puede ser resuelto en un tiempo lineal en el nmero de variables.

63 /42

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.

64 /42

La estructura de los problemas

Un ordenamiento lineal de las variables consistente con el rbol con A como raz

65 /42

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.

66 /42

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.

67 /42

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.

68 /42

La estructura de los problemas


TN Q AO AS NGS V V NGS AO TN Q

Grafo de Restricciones Original

Grafo de Restricciones despus de quitar AS


69 /42

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.

70 /42

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.

71 /42

La estructura de los problemas


TN AO AS TN AS Q AS
NGS

Una descomposicin en rbol del grafo del restricciones del problema del coloreo de Australia

AS V

NGS

72 /42

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.

73 /42

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.

74 /42