Problemas de Satisfacción de Restricciones

Slides:



Advertisements
Presentaciones similares
SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR
Advertisements

FRACCIONES.
Los números del 0 al cero uno dos tres cuatro cinco 6 7 8
La mediana La mediana es el valor tal que el 50 % de las observaciones son menores y 50 % de ellas son mayores a dicho valor. En otra palabras, la mediana.
Universidad San Martín de Porres
1 LA UTILIZACION DE LAS TIC EN LAS MICROEMPRESAS GALLEGAS. AÑO mayo 2005.
1 LA UTILIZACION DE LAS TIC EN LAS PYMES GALLEGAS AÑO de Junio de 2005.
TEMA 2 MÚLTIPLOS Y DIVISORES
02- Plan Organización Docente v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
02- PLAN DOCENTE Febrero 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
01- OFERTA FORMATIVA v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
Programación entera En muchos problemas reales las variables sólo pueden tomar valores enteros Ejemplos: decisiones sobre inversiones, compras, arranques,
Programación entera En muchos problemas reales las variables sólo pueden tomar valores enteros Ejemplos: decisiones sobre inversiones, compras, arranques,
Aladdín-respuestas 1.Vivía 2.Era 3.Amaba 4.Quería 5.Gustaban 6.Se sentía 7.Salía 8.Tenía 9.Decidió 10.escapó 11. Se vistió 12. Conoció 13. Vio 14. Pensó
Respuestas Buscando a Nemo.
Inteligencia Artificial
Diseño y análisis de algoritmos
SIMULACIÓN DE MONTECARLO
ABECEDARIO FIGURAS GEOMÉTRICAS NÚMERO
Álgebra 2010 Clase N° 1 Conjuntos numéricos I
Objetivo: Los estudiantes van a usar vocabulario del desayuno para comprender un cuento. Práctica: 1. ¿Te gusta comer? 2. ¿Te gusta beber Mt. Dew.
Recursión y Relaciones de Recurrencia
Montículos Daniel González Pérez Cristina Sánchez Aragón
60 razones para seguir vivo
William Shakespeare ( greg.), fue un dramaturgo, poeta y actor inglés. Conocido en ocasiones como el Bardo de Avon (o.
Búsqueda con retroceso
1 Reporte Componente Impacto Por Orden Territorial Por Departamento No Disponible ND *Los indicadores para el año 2008 no fueron calculados.
UPC Tema: ESPACIO VECTORIAL Rn
8. Distribuciones continuas
TELEFONÍA IP.
Parte 3. Descripción del código de una función 1.
Vocabulario querer comerlo -paja por supuesto - madera
Sistemas de Ecuaciones
Tema 1.- Aritmética. 1.-Usar el algoritmo de Euclides para calcular el máximo común divisor de a y b y expresarlo en función de a y b para: a) a= 56,
UNIDAD 2: FUNCIONES.
FUNCIONES DE UNA VARIABLE REAL
1 PROYECTO DE PRESUPUESTO DE EGRESOS DE LA FEDERACION 2002 COORDINACIÓN DE POLITICA ECONOMICA GP-PRD.
Profr. Ricardo A. Castro Rico
Ecuaciones Cuadráticas
RAZONAMIENTO MATEMATICO Mg. CORNELIO GONZALES TORRES
La minimización de los costes
La elección óptima del consumidor
¡Primero mira fijo a la bruja!
Investigación Algorítmica
Introducción a las Señales Aleatorias ISAL
¿Qué es un conjunto? Un conjunto es una colección de objetos considerada como un todo. Los objetos de un conjunto son llamados elementos o miembros del.
CONSTRUCCIONES - 2 Construcciones, divisiones, transposiciones, ... con palillos, cerillas, monedas, triángulos, cuadrados, trapecios, polígonos, etc.
Ecuaciones de primer grado Similar al ejercicio 1 propuesto
Problemas de Satisfacción de Restricciones (CSP)
Programación dinámica (1)
CONSTRUCCIONES - 2 Construcciones, divisiones, transposiciones, ... con palillos, cerillas, monedas, triángulos, cuadrados, trapecios, polígonos, etc.
La transformada de Laplace
REGLAS DE LOS SIGNOS.

Introducción al lenguaje R Sesión 2: Objetos en R
SUCESIONES Y PROGRESIONES.
Sistemas de Ecuaciones lineales
Inteligencia Artificial Resolver problemas mediante búsqueda
SATISFACCION DE RESTRICCIONES Sección 1-3
Inteligencia Artificial Resolver problemas mediante búsqueda
Estructuras de control
Herramienta FRAX Expositor: Boris Inturias.
Diseño y análisis de algoritmos
(Organización y Manejo de Archivos)
Descomposición Factorial Unidad 5
Parte II. Algorítmica. 5. Backtracking. 1. Análisis de algoritmos.
Inteligencia Artificial
Diseño y análisis de algoritmos
PROBLEMAS DE SATISFACCIÓN DE RESTRICCIONES
Hernández Camacho Víctor Jesus Islas Sánchez Karla Vanessa
Transcripción de la presentación:

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

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

INTRODUCCION

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

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.

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.

PROBLEMA DE SATISFACCION DE RESTRICCIONES

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.

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.

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

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)

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.

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}

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

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

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.

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.

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.

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.

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.

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

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.

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.

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

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.

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

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.

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

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.

BUSQUEDA BACKTRACKING PARA CSP

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.

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.

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.

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

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.

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

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?

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.

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.

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.

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.

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.

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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

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.

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.

BUSQUEDA LOCAL PARA CSP

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.

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.

ESTRUCTURA DE LOS PROBLEMAS

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.

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.

La estructura de los problemas 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 número de variables.

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.

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

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.

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.

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.

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

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.

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.

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

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.

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.