Algoritmos para CSP1 1. Técnicas de Consistencia, o Inferenciales I. Inferencia, o consistencia completa Proceso que permite la síntesis de todas las restricciones de un problema en una única restricción global, las soluciones se obtienen directamente. El problema de la obtención de esa restricción global es que se trata de un problema exponencial. Una restricción C puede verse como una relación R (denotada por RA) sobre un conjunto de variables (o ámbito) A. Esta relación, RA, se compone de un conjunto de tuplas (t). una tupla t ∈ RA es una secuencia finita de valores, donde cada valor (o componente) corresponde a una variable de A. Operaciones sobre relaciones fundamentales: • • Proyección: dada una relación RA, su proyección sobre un conjunto de restricciones B (B ⊂ A), es una nueva relación πB(RA) formada por las tuplas de RA en donde se han eliminado las componentes de las variables en A-B. Join: Dadas dos relaciones RA y RB, su join RA |×| RB es una nueva relación con ámbito A ∪ B. Una tupla t pertenece a la nueva relación, si y sólo si, sus componentes corresponden a los de dos tuplas r ∈ RA y s ∈ RB, tales que r y s tienen los mismos componentes en las variables comunes A ∩ B. Ejemplo: algoritmo ADC (Adaptive Consistency): Algoritmo ADC 1 Descripción detallada de los algoritmos en: http://ltcs.uned.es:8080/aepia/downloadArticulo.do?id=78 II. Inferencia, o consistencia incompleta • Consistencia de nodos Algoritmo NC-1 • Consistencia de arcos Algoritmo AC-3 • Características básicas del algoritmo: o Redes de restricciones binarias o Complejidad temporal O(ed3) o Q: contiene todas las restricciones binarias del problema en ambos sentidos o Función revise(i,j): elimina los valores inconsistentes, entre las variables (xi,xj), del dominio Di • Consistencia de caminos (path consistency) Algoritmo PC-2 • Características básicas del algoritmo: o Redes de restricciones binarias o Complejidad temporal O(n3d5) o Q: se inicializa con todos los posibles triángulos (i,j,k) de variables en la red de restricciones o Función revise3(i,j,k): garantiza la consistencia en el nodo intermedio entre las variables i, j 2. Técnicas de Búsqueda I. Sistemática: Backtracking • • Características básicas del algoritmo: o Búsqueda en profundidad con retroceso o Cronológico Características básicas de la estrategia de búsqueda: o Completo, pero ineficiente o Estrategias inteligentes (look back, look ahead) Algoritmo genérico BT • • BT(i,Past): índice “i” de la siguiente variable a asignar (variable actual), “Past” conjunto de variables ya asignadas. El algoritmo no especifica: el orden de las variables a seleccionar/asignar, el orden de los valores asignables a una determinada variable II. Local • • • Diversos métodos: o Algoritmos genéticos o Simulated annealing o Tabu search… Características básicas del algoritmo: o Función objetivo, o función de coste o Vecindad: conjuntos accesibles en la sig. Iteración o Criterio selección: dada una vecindad y una f. de coste, cuál es el siguiente estado a seleccionar Características básicas de la estrategia de búsqueda: o Incompleta o Mínimos locales Algoritmo genérico de búsqueda local 3. Técnicas Híbridas (Inferencia + Búsqueda) I. Sistemática + Inferencia incompleta • BackJumping (BJ) • • Se trata de un algoritmo de tipo BT cronológico modificado: o Búsqueda en profundidad o Algoritmo de tipo look-back o Cuando se encuentra una situación sin salida (dead-end) para la variable xi, se salta a la variable más profunda, o cercana, es decir en lugar de seleccionar xi-1, se selecciona aquella variable xj que está en conflicto con la variable actual, donde j<i Forward Checking (FC) Algoritmo FC • Características básicas del algoritmo: o Búsqueda en profundidad o Algoritmo de tipo look-ahead o Comprobación de consistencia en cada arco (para las variables ya asignadas) o FC(i, Past, D): i variable actual, Past conjunto de variables pasadas (1..i-1), D = [Di,…,Dn] conjunto de dominios del resto de variables o Tras asignar una variable se eliminan (temporalmente) de los dominios futuros los valores incompatibles con el asignado. o La función: realiza el proceso de arco consistencia sobre el conjunto de restricciones Ccf o NewD: almacena los dominios futuros • MAC (Maintaining Arc Consistency) Algoritmo MAC • Características básicas del algoritmo: o Algoritmo de tipo look-ahead o MAC(i,D): i variable actual, D = [D1,…,Dn] conjunto de dominios o Inicialmente se copian los dominios recibidos en D’j o La función AC realiza la arco-consistencia para la variable actual (i), considerando a D = [D1,…,Di-1, D’i,…,D’n] como los dominios actuales de las variables o NewD: almacena los dominios futuros o Mantiene la arco-consistencia en cada subproblema o Asignar una variable es equivalente a reducir su dominio a un único valor II. Sistemática + Inferencia completa • VES (Variable elimination search) Algoritmo VES • Características básicas del algoritmo: o Se trata de un algoritmo exponencial (tanto espacial como temporal) o Orden estático de las variables o VES(S,k,P,F,E,D,C): S procedimiento de búsqueda, parámetro k (máx. anchura de la variable considerada), P variables pasadas, F variables futuras, E variables eliminadas, D conjunto de dominios actuales, C conjunto de restricciones actuales. Bibliografía [1] Javier Larrosa, Pedro Meseguer. Algoritmos para Satisfacción de Restricciones. Revista Iberoamericana de Inteligencia Artificial. Vol. 20, pp. 31- 42, 2003.