La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Problemas de Satisfacción de Restricciones

Presentaciones similares


Presentación del tema: "Problemas de Satisfacción de Restricciones"— Transcripción de la presentación:

1 Problemas de Satisfacción de Restricciones
INTELIGENCIA ARTIFICIAL Problemas de Satisfacción de Restricciones Mg. Samuel Oporto Díaz Lima, 11 de Junio 2005

2 Tabla de Contenido Introducción.
Problema de satisfacción de restricciones Búsqueda backtraking para CSP Búsqueda local para CSP Estructura de los problemas

3 INTRODUCCION

4 Introducción Anteriormente se vio que los problemas pueden resolverse buscando en un espacio de estados. Estos estados pueden evaluarse por heurísticas específicas para el dominio y probados para verificar si son estados meta. Desde el punto de vista del algoritmo de búsqueda, cada estado es una caja negra sin estructura interna discernible. Solo es accesada por las rutinas específicas del problema (la función de sucesor, la función heurística y la prueba de meta).

5 Introducción En los problemas de satisfacción de restricciones (PSR), los estados y la prueba de meta siguen a una representación estándar, estructurada y muy simple. Los algoritmos de búsqueda pueden ser definidos de tal manera que tomen ventaja de la estructura de los estados y usen heurísticas de propósito general en vez de específicas del problema, para permitir la solución de problemas grandes.

6 Introducción Tal vez lo más importante es que la representación estándar de la prueba de meta revela la estructura del problema mismo. Esto lleva a los métodos para descomposición de problemas y a un entendimiento de la conexión íntima entre la estructura del problema y la dificultad para resolverlo.

7 PROBLEMA DE SATISFACCION DE RESTRICCIONES

8 Problemas de Satisfacción de Restricciones
Un problema de satisfacción 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 vacío Di de posibles valores. Cada restricción Ci involucra algún subconjunto de las variables y especifica las combinaciones permisibles de valores de ese subconjunto.

9 Problemas de Satisfacción de Restricciones
Un estado del problema se define por una asignación de valores a alguna o todas las variables, {Xi = vi, Xj = vj, …}. Una asignación que no viola ninguna restricción es llamada consistente o legal. Una asignación completa es una en la cual cada variable es mencionada. Una solución a un PSR es una asignación completa que satisface todas las restricciones.

10 Problemas de Satisfacción 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 Queensland Australia del Oeste Australia del Sur Nueva Gales del Sur Victoria Tasmania

11 Problemas de Satisfacción de Restricciones
Formulación 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)

12 Problemas de Satisfacción de Restricciones
Formulación 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 restricción puede representarse como AO  TN.

13 Problemas de Satisfacción de Restricciones
Formulación como PSR: Solución: Hay muchas soluciones posibles, como {AO = rojo, TN = verde, Q = rojo, NGS = verde, V = rojo, AS = azul, T = rojo}

14 Problemas de Satisfacción 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

15 Problemas de Satisfacción 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

16 Problemas de Satisfacción de Restricciones
Tratar un problema como un PSR tiene importantes beneficios: La representación de estados en un PSR sigue un patrón estándar (un conjunto de variables con valores asignados), por lo que la función de sucesor y la prueba de meta pueden ser escritos de una manera genérica que se aplica a todos los PSR. Se pueden desarrollar heurísticas efectivas que no requieren experiencia adicional específica del dominio. La estructura del grafo de restricciones puede usarse para simplificar el proceso de solución en algunos casos, dando una reducción exponencial en complejidad.

17 Problemas de Satisfacción de Restricciones
A un PSR se le puede hacer una formulación incremental como un problema de búsqueda estándar de la siguiente manera: Estado inicial: La asignación vacía { }, en la cual todas las variables están sin asignar. Función 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 asignación actual está completa. Costo de ruta: Un costo constante (por ejemplo, 1) para cada paso.

18 Problemas de Satisfacción de Restricciones
Cada solución debe ser una asignación completa y por lo tanto tiene una profundidad n si hay n variables. Por esta razón, los algoritmos de búsqueda primero en profundidad son populares para los PSR. También ocurre que la ruta por la cual se alcanza una solución es irrelevante. Por lo tanto, también se puede usar una formulación de estado completo, en la cual cada estado es una asignación completa que puede satisfacer o no las restricciones. Los métodos de búsqueda local trabajan bien con esta formulación.

19 Problemas de Satisfacción de Restricciones
El tipo más 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.

20 Problemas de Satisfacción de Restricciones
Las variables discretas pueden también tener dominios infinitos, por ejemplo, el conjunto de los números enteros, o el conjunto de todas las cadenas de caracteres. Por ejemplo, cuando se requieren programar trabajos de construcción en el calendario, la fecha de inicio de cada trabajo es una variable, y sus valores posibles es el número de días enteros a partir de la fecha actual. Con dominios infinitos, ya no es posible describir las restricciones enumerando todas las combinaciones de valores permisibles.

21 Problemas de Satisfacción de Restricciones
Con dominios infinitos, se debe usar entonces un lenguaje de restricciones. Por ejemplo, si Trabajo1 toma 5 días, y debe preceder a Trabajo3, entonces necesitaríamos un lenguaje de restricciones de desigualdades algebraicas tal como InicioTrabajo1 + 5  InicioTrabajo3 Existen algoritmos de solución especiales para las restricciones lineales de variables enteras (restricciones como la anterior, en la que cada variable aparece sólo en forma lineal).

22 Problemas de Satisfacción 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 duración total de todos los trabajos a ser programados.

23 Problemas de Satisfacción de Restricciones
Los PSR con dominios continuos son muy comunes en el mundo real y son ampliamente estudiados en el campo de la investigación de operaciones. Por ejemplo, la programación de experimentos en el Telescopio Espacial Hubble, que requiere una medición muy precisa del tiempo para las observaciones, para el inicio y fin de cada observación, y el manejo de variables continuas que deben obedecer una variedad de restricciones astronómicas, de precedencia y de energía. La categoría mejor conocida de PSR de dominio continuo es la de los problemas de programación lineal, donde las restricciones deben ser desigualdades lineales formando una región convexa.

24 Problemas de Satisfacción de Restricciones
Los problemas de programación lineal pueden ser resueltos en tiempo polinomial en el número de variables. También se han estudiado otros problemas con diferentes tipos de restricciones y funciones objetivo (programación cuadrática, programación cónica de segundo orden, etc.)

25 Problemas de Satisfacción 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 restricción unaria puede eliminarse simplemente preprocesando el dominio de la variable correspondiente para eliminar cualquier valor que viole la restricción. 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 sólo restricciones binarias, y se puede representar con un grafo de restricciones.

26 Problemas de Satisfacción de Restricciones
Las restricciones de alto orden involucran tres o más variables. Un ejemplo familiar de esto lo representan los problemas de criptoaritmética. T W O + T W O F O U R

27 Problemas de Satisfacción de Restricciones
El hecho de que cada letra representa un dígito diferente se puede representar mediante una restricción de seis variables: TodasDif (F, T, U, W, R, O), o puede ser representado por la colección de restricciones binarias {F  T, F  U, …, R  O}. Las restricciones de adición de las cuatro columnas también 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 dígito (0 o 1) acarreado a la siguiente columna.

28 Problemas de Satisfacción de Restricciones
Las restricciones de alto orden se pueden representar en un hipergrafo de restricciones: F T U W R O X3 X2 X1

29 Problemas de Satisfacción de Restricciones
Cada restricción 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 sólo con restriccines binarias. Hasta ahora se han descrito sólo restricciones absolutas (cualquier asignación completa que viole alguna de ellas, se descarta como solución). 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.

30 BUSQUEDA BACKTRACKING PARA CSP

31 Búsqueda backtracking para los PSR
Usando la formulación antes mencionada para PSR, cualquier algoritmo de búsqueda visto anteriormente puede ser usado para resolverlos. Suponiendo que se usa búsqueda primero por amplitud, el factor de ramificación 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.

32 Búsqueda backtracking para los PSR
Sin embargo, todos los PSR tienen la propiedad de la conmutatividad. Un problema es conmutativo si el orden de aplicación de cualquier conjunto dado de accioens no tiene efecto en la salida. Por lo tanto, todos los algoritmos de búsqueda en PSR generan sucesores considerando las posibles asignaciones para sólo una variable en cada nodo del árbol de búsqueda.

33 Búsqueda backtracking para los PSR
La búsqueda backtracking es una búsqueda 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.

34 Búsqueda backtracking para los PSR
AO = rojo AO = verde AO = azul AO = rojo TN = verde AO = rojo TN = azul AO = rojo TN = verde Q = rojo AO = rojo TN = verde Q = rojo

35 Búsqueda backtracking para los PSR
La búsqueda backtracking simple es un algoritmo no informado, asi que no se espera que sea efectivo para problemas grandes.

36 Búsqueda backtracking para los PSR
Problema Back- Tracking BT+MVR Forward Checking FC+ MVR Conflictos Min. USA (>1,000K) 2K 60 64 n-Reinas (>40,000K) 13,500K 817K 4K Cebra 3,859K 1K 35K 0.5K Aleatorio 1 415K 3K 26K Aleatorio 2 942K 27K 77K 15K K = miles de chequeos de consistencia, ( ) = no halló solución

37 Búsqueda backtracking para los PSR
Los métodos de propósito general se hacen las siguientes preguntas: ¿Qué variable debe asignarse en seguida, y en que orden deben intentarse los valores? ¿Cuáles 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 búsqueda evitar repetir esta falla en rutas subsecuentes?

38 Búsqueda backtracking para los PSR
Orden de las variables y de los valores Por default, la siguiente variable a asignar se selecciona de una lista estática de variables que rara vez produce una búsqueda eficiente. La idea intuitiva de elegir la variable que tenga el mínimo de valores legales es llamada la heurística del mínimo de valores remanentes (MVR). También se le llama la de la “variable más restringida” o de “falla-primero”, porque selecciona la variable que probablemente pronto causará una falla, podando el árbol de búsqueda.

39 Búsqueda backtracking para los PSR
Orden de las variables y de los valores La heurística MVR no ayuda en absoluto para elegir la primera region a colorear del mapa de Australia, porque inicialmente cada región tiene tres colores legales. En este caso, la heurística de grado es utilizada. Intenta reducir el factor de ramificación para elecciones futuras seleccionando la variable que está involucrada en el mayor número de restricciones. AS tiene grado 5, las otras tiene 2 o 3, y T tiene 0. La heurística de MVR es una guía más poderosa, pero la heurística de grado puede ser muy útil para romper empates.

40 Búsqueda 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 heurística del valor menos restrictivo puede ser efectiva en algunos casos. Esta heurística 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 podíamos asignarle a AS. Por lo tanto, según la heurística 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.

41 Búsqueda backtracking para los PSR
Propagando información a través 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 búsqueda, o incluso antes de que la búsqueda comience, se puede reducir drásticamente el espacio de búsqueda.

42 Búsqueda backtracking para los PSR
Propagando información a través 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 restricción y borra del dominio de Y cualquier valor que sea inconsistente con el valor elegido para X.

43 Búsqueda backtracking para los PSR
Propagando información a través de las restricciones Forward checking AO TN Q NGS V AS T Dominios Iniciales RVA Después que AO=rojo R VA Después que Q=verde A R A Después que V=azul ---

44 Búsqueda backtracking para los PSR
Propagando información a través de las restricciones Propagación 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 más allá. La propagación de restricciones es el término general para propagar las implicaciones de una restricción sobre una variable en otras variables.

45 Búsqueda backtracking para los PSR
Propagando información a través de las restricciones Propagación de restricciones La idea de consistencia de arco proporciona un método rápido de propagación de restricciones que es sustancialmente más 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 algún valor y de NGS que sea consistente con x. En el renglón 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.

46 Búsqueda backtracking para los PSR
Propagando información a través de las restricciones Propagación de restricciones La verificación de consistencia de arco puede ser aplicada tanto como un paso de preprocesamiento antes de empezar la búsqueda, o como un paso de propagación (como FC) después de cada asignación durante la búsqueda. 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.

47 Búsqueda backtracking para los PSR
Propagando información a través de las restricciones Propagación de restricciones Formas más fuertes de propagación se pueden definir usando la notación llamada k-consistencia. Un PSR es k-consistente si, para cualquier conjunto de k-1 variables y para cualquier asignación 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 también 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.

48 Búsqueda backtracking para los PSR
Propagando información a través de las restricciones Propagación de restricciones Un grafo es fuertemente k-consistente si es k-consistente y además es también (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.

49 Búsqueda backtracking para los PSR
Propagando información a través de las restricciones Manejo de restricciones especiales Ejemplo, la restricción TodasDiferentes dice que todas las variables involucradas deben tener valores diferentes. Una forma simple de detectar la inconsistencia de esta restricción es: si hay m variables involucradas en la restricción, y si ellas tienen n posibles valores distintos cada una, y m > n, entonces la restricción no puede ser satisfecha.

50 Búsqueda backtracking para los PSR
Propagando información a través de las restricciones Manejo de restricciones especiales Tal vez la restricción de alto orden más importante es la restricción de recursos, algunas veces llamada restricción cuandomucho. Por ejemplo, sean PA1, …, PA4 las cantidades de personal asignado a cada una de 4 tareas. La restricción de que no se asignen más 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 mínimos de los dominios actuales. Por ejemplo, si cada variable tiene el dominio {3,4,5,6}, la restricción cuandomucho no puede ser satisfecha.

51 Búsqueda backtracking para los PSR
Propagando información a través de las restricciones Manejo de restricciones especiales Para problemas grandes limitados en recursos, como problemas de logística involucrando miles de personas o cientos de vehículos, usualmente no es posible representar el dominio de cada variable como un conjunto de enteros y reducirlo gradualmente con los métodos de verificación de consistencia. Lo que se hace en estos casos es representar los dominios por medio de límites superiores e inferiores, y manejarlos por propagación de límites.

52 Búsqueda backtracking para los PSR
Backtracking inteligente: mirando hacia atrás. Cuando una rama de la búsqueda falla, el algoritmo de BT regresa a la variable precedente e intenta un nuevo valor para ella. Esto es llamado Backtracking cronológico. ¿Qué pasaría si en el problema de Australia se hubiera elegido un orden de instanciación fijo Q, NGS, V, T, AS, AO, TN? Supón que ya se ha generado la asignación {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.

53 Búsqueda backtracking para los PSR
Backtracking inteligente: mirando hacia atrás. Un enfoque más 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 están conectadas a X por restricciones. El conjunto conflicto para AS es {Q,NGS,V}.

54 Búsqueda backtracking para los PSR
Backtracking inteligente: mirando hacia atrás. El método backjumping regresa a la variable más reciente en el conjunto conflicto. En este caso, BJ brincaría sobre Tasmania y buscaría un nuevo valor para V. El algoritmo FC puede crear el conjunto conflicto mientras realiza su búsqueda (simplemente almacena lo que elimina). BJ ocurre cuando cada valor en el dominio está en conflicto con la asignación actual; FC detecta esto antes y previene que la búsqueda llegue a un nodo así. Por lo tanto, cada rama podada por BJ es también podada por FC, así que son redundantes.

55 Búsqueda backtracking para los PSR
Backtracking inteligente: mirando hacia atrás. BJ nota la falla cuando el dominio de una cariable queda vacío, pero en muchos casos una rama está perdida mucho antes de que esto ocurra. Ejemplo, cuando se hace la asignación parcial {AO=rojo, NGS=rojo}. Si se intenta T=rojo, y luego se asignan TN, Q, V, AS, ninguna asignación funciona para estas últimas. ¿A dónde 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 noción más profunda del conjunto conflicto: si el conjunto de variables precedentes que causaron TN, junto con cualquier variable subsecuente, no tienen solución consistente. A este algoritmo se le llama backjumping dirigido por conflictos.

56 BUSQUEDA LOCAL PARA CSP

57 Búsqueda local para PSR
Los algoritmos de búsqueda local son efectivos para resolver muchos PSR. Usan una formulación de estado completo: el estado inicial asigna un valor a cada variable, y la función 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 permutación de las 8 columnas, y luego generar sucesores intercambiando dos reinas de columna.

58 Búsqueda local para PSR
Para elegir un nuevo valor para una variable, la heurística más obvia es seleccionar el valor que resulte en el número mínimo de conflictos con otras variables – la heurística de conflictos mínimos.

59 ESTRUCTURA DE LOS PROBLEMAS

60 La estructura de los problemas
La única manera en la que podemos esperar tratar con el mundo real es, posiblemente, descomponiéndolo 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 solución para el continente, combinada con cualquier solución para Tasmania, proporciona una solución para el mapa entero.

61 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 mayoría de los casos, los subproblemas de un CSP están conectados. El caso más simple es cuando el grafo de restricciones forma un árbol: cualquier par de variables está conectado a lo mucho por una ruta.

62 La estructura de los problemas
F Grafo de restricciones de un PSR estructurado como árbol

63 La estructura de los problemas
Cualquier PSR estructurado como árbol puede ser resuelto en un tiempo lineal en el número de variables.

64 La estructura de los problemas
El algoritmo es el siguiente: PASO 1: Elija cualquier variable como la raíz del árbol, y ordene las variables desde la raíz 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 raíz, tiene exactamente una variable padre.

65 La estructura de los problemas
F Un ordenamiento lineal de las variables consistente con el árbol con A como raíz

66 La estructura de los problemas
PASO 2: Variando los valores de j desde n hasta 2 (disminuyendo de 1 en 1), aplique verificación 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.

67 La estructura de los problemas
Ahora que se tiene un algoritmo eficiente para árboles, se puede considerar si grafos de restricciones más 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.

68 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 convertiría en un árbol.

69 La estructura de los problemas
TN TN Q Q AO AO AS NGS NGS V V T T Grafo de Restricciones Original Grafo de Restricciones después de quitar AS

70 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 solución para el PSR después 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.

71 La estructura de los problemas
El segundo enfoque está basado en la construcción de una descomposición 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-vencerás, éste trabaja bien si ningún subproblema es demasiado grande.

72 La estructura de los problemas
TN TN Q AO AS AS Q AS NGS Una descomposición en árbol del grafo del restricciones del problema del coloreo de Australia AS NGS V T

73 La estructura de los problemas
Una descomposición 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 están conectadas por una restricción en el problema original, deben aparecer juntas (con su restricción) 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.

74 La estructura de los problemas
Los problemas se resuelven independientemente. Si cualquiera de los subproblemas no tiene solución, entonces sabemos que el problema completo tampoco tiene solución. Si todos los subproblemas se pueden resolver, se intenta construir entonces una solución global al problema.


Descargar ppt "Problemas de Satisfacción de Restricciones"

Presentaciones similares


Anuncios Google