Algoritmos para CSP 1 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 R A ) sobre un conjunto de variables (o ámbito) A. Esta relación, R A, se compone de un conjunto de tuplas (t). una tupla t R A 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 R A, su proyección sobre un conjunto de restricciones B (B A), es una nueva relación π B (R A ) formada por las tuplas de R A en donde se han eliminado las componentes de las variables en A-B. Join: Dadas dos relaciones R A y R B, su join R A R B 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 R A y s R B, 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 o Redes de restricciones binarias o Complejidad temporal O(ed 3 ) 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 o Redes de restricciones binarias o Complejidad temporal O(n 3 d 5 ) 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 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 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 x i, se salta a la variable más profunda, o cercana, es decir en lugar de seleccionar x i-1, se selecciona aquella variable x j que está en conflicto con la variable actual, donde j<i Forward Checking (FC) Algoritmo FC 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 = [D i,,d n ] 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 C cf o NewD: almacena los dominios futuros MAC (Maintaining Arc Consistency) Algoritmo MAC o Algoritmo de tipo look-ahead o MAC(i,D): i variable actual, D = [D 1,,D n ] 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 = [D 1,,D i-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 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.