Algoritmos para CSP

Anuncio
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.
Descargar