DOCTORADO Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 1 Modelos...
-
Upload
jose-francisco-ortega-aranda -
Category
Documents
-
view
216 -
download
0
Transcript of DOCTORADO Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 1 Modelos...
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
1
DOCTORADO
Modelos y Técnicas para Problemas de Satisfacción de Restricciones
María Isabel Alfonso Galipienso
Miguel Ángel Salido Gregorio
2
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
3. Técnicas híbridas y de preproceso – Algoritmos híbridos:
forward checking Look ahead
– Técnicas heurísticas de preproceso: Ordenación de valores Ordenación de variables Ordenación de restricciones
Sesiones teóricas (I)
3
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Un Problema de Satisfacción de Restricciones (CSP)
se puede representar como:
• Un Conjunto de Variables: X={x1, x2, ..., xn}
• Dominios de Interpretación (D = <D1,…,Dn> ) para las
variables: xiDi
• Un Conjunto de Restricciones entre las variables:
C ={c1, c2, ..., cm}
Definición de CSP
4
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
MODELACIÓNCSP
VariablesDominios
Restricciones
(EXPRESIVIDAD)(EXPRESIVIDAD)
1)
RESOLUCIÓNCSP
Técnicas ResoluciónCSP
(EFICICIENCIA)(EFICICIENCIA)2)
Modelización CSP
5
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
s e n d+ m o r em o n e y
• Variables: s,e,n,d,m,o,r,y
• Dominios: s,e,n,d,m,o,r,y:{0,…,9}
• Restricciones
• Variables: s, e, n, d, m, o, r, y• Dominios: s, e, n, d, m, o, r ,y : {0,…,9}• Restricciones:
• Todas Diferentes, • 103(s+m) + 102(e+o) + 10(n+r) + d + e= 104m + 103o + 102n + 10e+y
Especificación CSP
Modelización 1
6
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
• Variables: s, e, n, d, m, o, r, y• Dominios: s, e, n, d, m, o, r ,y : {0,…,9}• Restricciones:
• se, sn, sd, sm, so, sr, sy, en, ed, em,….. • d+e = y+10c1
• c1+n+r = e+10c2
• c2+e+o = n+10c3
• c3+s+m = 10m+o
Modelización 2
s e n d+ m o r e m o n e y
7
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Objetivos
ConsistenciaConsistencia del problema (existe solución).
Obtener una o todas las solucionessoluciones del problema.
Obtener los dominios mínimos.
La solución que optimizaoptimiza una función objetivo o multi-objetivo.
8
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Objetivo de un CSP:
• Tiene solución? Consistencia.
• Obtener una solución. Obtener todas las soluciones.
• Obtener una solución óptima, o al menos una buena solución, medida por alguna función objetivo.
Algoritmos para CSP:
• Técnicas de Búsqueda (Algoritmos CSP): Obtienen una solución, guiados por heurísticas.
• Técnicas Inferenciales (Algoritmos de propagación): Obtienen las consecuencias de las restricciones explícitamente conocidas del problema.
Objetivos
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
9
DOCTORADO
Algoritmos basados en Backtracking
Chronological Backtracking
Backjumping
10
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
EjemploEjemplo: 4-reinas:: 4-reinas:
Chronological Backtracking
z1z1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1
z2z2 . . . . . . . . . . . . . . 11 c(c(z1z1,,z2z2)) . . . . x. . . . x
22xx
33vv
z3z3 . . . . . . . . . . . . . . . . 1. . . . . . 1 c(c(z1z1,,z3z3)) . . . . . . . . x. . . . . . . . x
22vv
c(c(z2z2,,z3z3)) . . . . . . . . . . . x. . . . . . . . . . . x
33vvxx
44vvxx
44vv
11xx
22vvvv
z4z4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 3 4. . . . . . . . . . . . . . . . . . . . 1 2 3 4 c(c(z1z1,,z4z4)) . . . . . . . . . . . . . . . . . . . . . . x v v x. . . . . . . . . . . . . . . . . . . . . . x v v x c(c(z2z2,,z4z4)) . . . . . . . . . . . . . . . . . . . . . . . . x v . . . . . . . . . . . . . . . . . . . . . . . . x v c(c(z3z3,,z4z4)) . . . . . . . . . . . . . . . . . . . . . . . . . . . x. . . . . . . . . . . . . . . . . . . . . . . . . . . x
11
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
z1z1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2
z2z2 . . . . . . . . . . . . . . 11 c(c(z1z1,,z2z2)) . . . . v. . . . v
22vv
33vv
z3z3 . . . . . . . .
c(c(z2z2,,z3z3)) . . . . . . . . c(c(z1z1,,z3z3)) . . . .
44xx
z4z4 . . . . . . c(c(z1z1,,z4z4)) . . . . c(c(z2z2,,z4z4)) . . . . . .
c(c(z3z3,,z4z4)) . . . . . . . . . . . . . . .. . . . . . . . . . . . . . .
11xx
22vvvv
33xx
44vvxx
11xx
22vvvv
33xx
44vvxx
11xx
22vvvv
33xx
44vvvv
11xx
22vvxx
33xx
44xx
11xx
22vvvvvv
33xx
44xx
11xx
22vvxx
33xx
44xx
11xx
22vvxx
33xx
44xx
BackjumpBackjump
Backjumping
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
12
DOCTORADO
Algoritmos híbridos
Diferentes técnicas de relajación
Nodo consistencia
Forward checking
Lookahead
13
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Ejemplo de estudio
4 familias A, B, C y D viven en casas próximas cuyos números son: 1, 2, 3 y 4.– D vive en una casa con nemor número que B,
– B vive junto a A en una casa con mayor número,
– Hay al menos una casa entre B y C,
– D no vive en una casa cuyo número es 2,
– C no vive en una casa cuyo número es 4.
Qué familia vive en cada casa?
El puzzle de las 4 casas
14
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Variables: A, B, C y D Dominios: dA = dB = dC = dD = { 1, 2, 3, 4}
Restricciones:– unarias: c(C) = C 4 c(D) = D 2
– binarias: c(A,B) = B = A + 1
c(B,D) = D B
c(B,C) = |B - C| 1
c(A,C) = A C
c(A,D) = A D
c(C,D) = C D
D vive en una casa con nemor número que B,
B vive junto a A en una casa con mayor número,
Hay al menos una casa entre B y C,
D no vive en una casa cuyo número es 2,
C no vive en una casa cuyo número es 4.
Representación:
15
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Las restricciones uniarias se eliminan reduciendo los dominios de las variables:
1-consistencia– (solamente hay involucrada 1 variable)
c(C) = C 4
c(D) = D 2
dC = { 1, 2, 3}
dD = { 1, 3, 4}
D vive en una casa con nemor número que B,
B vive junto a A en una casa con mayor número,
Hay al menos una casa entre B y C,
D no vive en una casa cuyo número es 2,
C no vive en una casa cuyo número es 4.
Nodo-consistencia:
16
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
La red de restricciones:
AA BB
DDCC
B = A + 1
A C D B
A D
|B - C| 1
C D
{ 1, 2, 3, 4} { 1, 2, 3, 4}
{ 1, 2, 3} { 1, 3, 4}
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
17
DOCTORADO
Técnicas Híbridas
Forward Checking
Lookahead
18
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Forward Checking: Asumimos que fijamos el valor para 1 variable zi: zi = a
Forward Checking(zi) = – activa cada restricción c(zi, zj) o c(zj, zi) una vez para
eliminar los valores inconsistentes para zi = a
AA BB
DDCC
B = A + 1
A C D B
A D
|B - C| 1
C D
{2} { 1, 2, 3, 4}
{ 1, 2, 3} { 1, 3, 4}
En nuestro ejemplo: asumimos A = 2 :
19
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Forward checking: consistencia débil
Requiere que una variable ya esté instanciada– se sugiere usar en combinación con backtracking
AA BB
DDCC
B = A + 1
A C D B
A D
|B - C| 1
C D
{2} { 1, 2, 3, 4}
{ 1, 2, 3} { 1, 3, 4}
No produce un estado consistente – no se produce la relajación completa
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
20
DOCTORADO
Look ahead
Un método de relajación más potente
21
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Look ahead:
Look Ahead = – activa cada restricción c(zi, zj) exactamente una vez
para eliminar los valores inconsistentes de los dominios Di y Dj.
En nuestro ejemplo:
AA BB
DDCC
B = A + 1
A C D B
A D
|B - C| 1
C D
{ 1, 2, 3, 4}
{ 1, 2, 3} { 1, 3, 4}
{ 1, 2, 3, 4}
22
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Continuación del Ejemplo:
AA BB
DDCC
B = A + 1
A C D B
A D
|B - C| 1
C D
{ 2, 3, 4}
{ 1, 2, 3} { 1, 3, 4}
{ 1, 2, 3}
Las otras tres restricciones:
23
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Look ahead: resultado final:
AA BB
DDCC
B = A + 1
A C D B
A D
|B - C| 1
C D
{ 3, 4}
{ 1, 2} { 1, 3}
{ 1, 2, 3}
Todavia no produce un estado consistente – no se lleva a cabo toda la relajación
El resultado puede depender del orden en el que se han tratado las restricciones. – Eliminar algunos valores antes, puede permitir encontrar otras inconsistencias
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
24
DOCTORADO
Técnicas híbridas combinadas
Combina el poder de backtracking con las técnicas anteriores
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
25
DOCTORADO
Forward checking
Backtracking combinado con Forward Check
26
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Forward checking:
Forward Checking:Forward Checking:
ExecuteExecute Standard BacktrackingStandard Backtracking
AfterAfter each assignment of a each assignment of a value to a variable value to a variable zizi DODO
Forward Check(Forward Check(zizi))
BUTBUT
27
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
11AA
Forward checking con BT
BB
22
AA BB
CC DD
{1}{1} {1,2,3,4}{1,2,3,4}
{1,2,3}{1,2,3} {1,3,4}{1,3,4}
B=A+1B=A+1
AADDAACC
AA BB
CC DD
{1}{1} {2}{2}
{2,3}{2,3} {3,4}{3,4}
|B-C||B-C|11
DD B B
fallofallo
AA BB
CC DD
{2}{2} {1,2,3,4}{1,2,3,4}
{1,2,3}{1,2,3} {1,3,4}{1,3,4}
B=A+1B=A+1
AADDAACC
22
BB33
AA BB
CC DD
{2}{2} {3}{3}
{1,3}{1,3} {1,3,4}{1,3,4}
|B-C||B-C|11
DD B B
CC11
AA BB
CC DD
{4}{4} {3}{3}
{1}{1} {1}{1}CCDD
fallofallo
AA BB
CC DD
{3}{3} {1,2,3,4}{1,2,3,4}
{1,2,3}{1,2,3} {1,3,4}{1,3,4}
B=A+1B=A+1
AADDAACC
33
BB44
AA BB
CC DD
{3}{3} {4}{4}
{1,2}{1,2} {1,4}{1,4}
|B-C||B-C|11
DD B B
AA BB
CC DD
{3}{3} {4}{4}
{1}{1} {1}{1}CCDD
AA BB
CC DD
{3}{3} {4}{4}
{2}{2} {1}{1}CCDD
11 CC 22
fallofallo éxitoéxito
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
28
DOCTORADO
Lookahead checking
Backtracking combinado con Look ahead
29
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Lookahead checking:
ExecuteExecute Standard BacktrackingStandard Backtracking
Look Ahead CheckLook Ahead Check
BUTBUT
Look Ahead Check Look Ahead Check ;;
Lookahead Checking:Lookahead Checking:
AfterAfter each assignment of a each assignment of a value to some variable value to some variable DODO
30
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Lookahead checking at work
AA BB
CC DD
{1,2,3,4}{1,2,3,4} {1,2,3,4}{1,2,3,4}
{1,2,3}{1,2,3} {1,3,4}{1,3,4}
B=A+1B=A+1
AADDAACC DD B B|B-C||B-C|11CCDD
AA BB
CC DD
{1}{1} {3,4}{3,4}
{1,2}{1,2} {1,3}{1,3}
B=A+1B=A+1
fallofallo
AA BB
CC DD
{2}{2} {3,4}{3,4}
{1,2}{1,2} {1,3}{1,3}
B=A+1B=A+1
AADDAACC DD B B|B-C||B-C|11CCDD
fallofallo
AA BB
CC DD
{3}{3} {3,4}{3,4}
{1,2}{1,2} {1,3}{1,3}
B=A+1B=A+1
AADDAACC DD B B|B-C||B-C|11CCDD
AA BB
CC DD
{3}{3} {4}{4}
{2}{2} {1}{1}
DD B B|B-C||B-C|11
CCDD
AA BB
CC DD
{3}{3} {4}{4}
{2}{2} {1}{1}CCDD
11 AA
22
33
BB 44
CC22
éxitoéxito
31
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
¿Cual es mejor? Forward checking:
– lleva a cabo menos chequeos de consistencia– tiene mas remificación
más próximo a backtracking
Lookahead checking:– gasta mas tiempo en la consistencia– trata menos valores alternativos
Generalmente: forward checking is más útil Para problemas altamente restringidos:
– Lookahead es necesario para podar mas ramas.
32
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
–Técnicas heurísticas de preproceso:
Ordenación de valores Ordenación de variables Ordenación de restricciones
ÍndiceÍndice
33
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Ordenación de Variables (importante)
– Qué variable será la próxima a ramificar Ordenación de Valores (todavía no tan importante)
– Seleccionada una variable, en qué orden asignar sus valores
Ordenación de restricciones (no tan importante)
– En qué orden propagar las restricciones– La más probable que falle o la de propagación más
barata
GeGeneralidadesneralidades
34
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Ordenación de VariablesOrdenación de Variables
La idea de la ordenación de variables es clasificar las variables de la más restringida a la menos restringida. En general, las variables deberían ser instanciadas en orden creciente a la talla de los dominios.
Esta ordenación se puede realizar estáticamente al inicio de la búsqueda o dinámicamente reordenando las variables restantes cada vez que una variable es asignada.
35
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Experimentos y análisis de varios investigadores han demostrado que el orden en el cual se eligen las variables para la instanciación pueden suponer un impacto sustancial en la complejidad de la búsqueda.
Existen dos tipos de ordenación de variables• Ordenación estática, en la cual el orden de las variables se especifica al
principio de la búsqueda y este no cambia.• Ordenación dinámica, en el cual la elección de la próxima variable a ser
instanciada depende del estado actual de la búsqueda.
La ordenación dinámica no es siempre posible en todos los algoritmos. Por ejemplo, con el backtracking cronológico no hay información extra disponible durante la búsqueda que se pueda utilizar para tomar una elección diferente a de la ordenación inicial.
Ordenación de VariablesOrdenación de Variables
36
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Con forward checking, el estado actual incluye los dominios de las variables, ya que han sido podados por las instanciaciónes realizadas anteriormente y por lo tanto es posible llevar a cabo una ordenación para seleccionar la próxima variable a instanciar.
Se han analizado varias heurísticas de ordenación de variables. La más común se basa en el principio "first-fail" que se puede explicar como:
“Para tener éxito, probar primero donde es más probable que falle."
Ordenación de VariablesOrdenación de Variables
37
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
La variables con menos alternativas posibles es seleccionada para la instanciación.
El orden de la instanciación de las variables es distinto para las distintas ramas del árbol de búsqueda y se determina de forma dinámica
El principio FF puede parecer desencaminado, porque nuestro objetivo no es fallar. La razón es que si la solución parcial no nos lleva a una solución completa, entonces cuanto antes lo descubramos mejor.
Sin embargo, si la solución parcial nos lleva a una solución completa, entonces las variables restantes deben ser instanciadas y aquella con el dominio más pequeño es más difícil encontrarle un valor, ya que instanciar las otras variables hace que se reduzca aun más su dominio y nos lleve a la inconsistencia. Así el principio anterior se puede modificar como:
“Tratar con los casos mas difíciles primero: ellos se harán cada vez más difíciles si los aplazamos”
Ordenación de Variables (ff)Ordenación de Variables (ff)
38
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Otra heuristica que se aplica cuando todas las variables tienen el mismo número de valores es elegir la variable que participa en más restricciones (en la ausencia de información más específica sobre qué restricciones son más difíciles de satisfacer, por ejemplo). Esta heuristica sigue tambien el principio de tratar con los casos más duros primero.
Existe otra heuristica para la ordenación estática de variables que es apropiada para el backtracking cronológico. Esta heuristica dice: seleccionar la variable que tenga el mayor número de restricciones con las variables pasadas.
Ordenación de VariablesOrdenación de Variables
39
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Una vez que se ha tomado la decisión de instanciar una variable, hay que asignarle uno de los posibles valores. De nuevo el orden en el cual se consideran estos valores tiene un impacto substancial en tiempo para encontrar la primera solución.
Sin embargo si se requiere encontrar todas las soluciones del problema, entonces la ordenación de valores es indiferente.
Una ordenación de valores diferente reestructurará las ramas que emanan de cada nodo del árbol de la búsqueda. Esto es una ventaja si nos asegura que la rama que nos lleva a una solución se explora antes que otras ramas que nos llevan a situaciones sin salida. Por ejemplo si el CSP tiene una solución y se selecciona un valor correcto para cada variable, entonces se puede encontrar una solución sin necesidad de backtracking.
Ordenación de ValoresOrdenación de Valores
40
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Supongamos que hemos seleccionado una variable para instanciar: cómo deberiamos seleccionar el valor de dicha variable?
Puede que ningún valor sea posible, en ese caso, cada valor de la variable actual tendrá que ser considerado y el order no importa.
Por el contrario, si podemos encontrar una solución completa basada en las instanciaciones pasadas, nosotros queremos seleccionar un valor, el cual sea más probable de tener éxito y menos probable de generar un conflicto
Por lo tanto se aplica el principio de “primero el exitioso"
Ordenación de ValoresOrdenación de Valores
41
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Otra heurística es preferir el valor (de los disponibles) que nos permita resolver de una forma más fácil el CSP.– Esto requiere estimar la dificultad de resolver el CSP.
Una posible heurística es preferir aquellos valores que maximizan el número de opciones disponibles. – Sin embargo esto requiere un coste adicional.
Ordenación de ValoresOrdenación de Valores
42
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Poco trabajo se ha realizado sobre ordenación de restricciones.
La idea se basa en ordenar las restricciones desde la más restrictiva a la menos restrictiva de forma que podemos lo antes posible las ramas del árbol de búsqueda.
La más común se basa en el principio "first-fail“:
“Para tener éxito, probar primero donde es más probable que falle."
Ordenación de RestriccionesOrdenación de Restricciones
43
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Ordenación de RestriccionesOrdenación de Restricciones
44
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Ordenación de RestriccionesOrdenación de Restricciones
45
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
c1
: : : : : : : : : :Ck
v1
:Vk
T1 T2 T3 ... ... ... ... ... Ts(n)
p1 p3p2 ps(n)
Valor de la evaluación
Ordenación de RestriccionesOrdenación de Restricciones
46
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Ordenación de RestriccionesOrdenación de Restricciones
47
Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04
Generate & Test
Three tasks:x1, x2, x3
Three resources:1,2,3
d1:{1,2,3}d2:{1,2}d3:{1,2,3}
Constraints:c1: x1 ≠ x2
c2: x2 = x3
Valid tuples:c1: (1,2,-),(2,1,-)(3,1,-)(3,2,-)c2: (-,1,1),(-,2,2)
Natural order Ordered
tuples c1 c2 c2 c1
(1,1,1) N - Y N
(1,1,2) N - N -
(1,1,3) N - N -
(1,2,1) Y N N -
(1,2,2) Y Y Y Y
(1,2,3) Y N N -
(2,1,1) Y Y Y Y
(2,1,2) Y N N -
(2,1,3) Y N N -
(2,2,1) N - N -
(2,2,2) N - Y N
(2,2,3) N - N -
(3,1,1) Y Y Y Y
(3,1,2) Y N N -
(3,1,3) Y N N -
(3,2,1) Y N N -
(3,2,2) Y Y Y Y
(3,2,3) Y N N -
(1,2,2)
(2,1,1)
(3,1,1)
(3,2,2)