Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porJosé Francisco Ortega Aranda Modificado hace 10 años
1
DOCTORADO Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 1 Modelos y Técnicas para Problemas de Satisfacción de Restricciones María Isabel Alfonso Galipienso Miguel Ángel Salido Gregorio
2
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
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={x 1, x 2,..., x n } Dominios de Interpretación ( D = ) para las variables: x i D i Un Conjunto de Restricciones entre las variables: C ={c 1, c 2,..., c m } Definición de CSP
4
4 Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 MODELACIÓN CSP Variables Dominios Restricciones(EXPRESIVIDAD) 1) RESOLUCIÓN CSP Técnicas Resolución CSP(EFICICIENCIA) 2) Modelización CSP
5
5 Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 s e n d + m o r e m 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, 10 3 (s+m) + 10 2 (e+o) + 10(n+r) + d + e= 10 4 m + 10 3 o + 10 2 n + 10e+y Especificación CSP Modelización 1
6
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: s e, s n, s d, s m, s o, s r, s y, e n, e d, e m,….. d+e = y+10c1 c 1 +n+r = e+10c 2 c 2 +e+o = n+10c 3 c 3 +s+m = 10m+o Modelización 2 s e n d + m o r e m o n e y
7
7 Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 Objetivos Consistencia Consistencia del problema (existe solución). soluciones Obtener una o todas las soluciones del problema. Obtener los dominios mínimos. optimiza La solución que optimiza una función objetivo o multi-objetivo.
8
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
9
DOCTORADO Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 9 Algoritmos basados en Backtracking Chronological Backtracking Backjumping
10
10 Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 Ejemplo: 4-reinas: Chronological Backtracking z1.................. 1 z2....... 1 c(z1,z2).... x c(z1,z2).... x 2 x 3 v z3........... 1 c(z1,z3)........ x c(z1,z3)........ x 2 v c(z2,z3)........... x c(z2,z3)........... x 3 v x 4 v x 4 v 1 x 2 v v z4......................... 1 2 3 4 c(z1,z4)...................... x v v x c(z1,z4)...................... x v v x c(z2,z4)........................ x v c(z2,z4)........................ x v c(z3,z4)........................... x c(z3,z4)........................... x
11
11 Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 z1.................. 2 z2....... 1 c(z1,z2).... v c(z1,z2).... v 2 v 3 v z3.... c(z2,z3).... c(z2,z3).... c(z1,z3).. c(z1,z3).. 4 x z4... c(z1,z4).. c(z1,z4).. c(z2,z4)... c(z2,z4)... c(z3,z4)............... c(z3,z4)............... 1x2vv3x4vx1x2vv3x4vx1x2vv3x4vv 1x2vx3x4x 1x2vvv3x4x1x2vx3x4x1x2vx3x4x Backjump Backjumping
12
DOCTORADO Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 12 Algoritmos híbridos Diferentes técnicas de relajación Nodo consistencia Forward checking Lookahead
13
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
14 Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 Variables: A, B, C y D Dominios: d A = d B = d C = d D = { 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
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 d C = { 1, 2, 3} d D = { 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
16 Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 La red de restricciones:AB DC B = A + 1 A C D BD B A D |B - C| 1 C D { 1, 2, 3, 4} { 1, 2, 3}{ 1, 3, 4}
17
DOCTORADO Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 17 Técnicas Híbridas Forward Checking Lookahead
18
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 AB DC B = A + 1 A C D BD 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
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 AB DC B = A + 1 A C D BD 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
20
DOCTORADO Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 20 Look ahead Un método de relajación más potente
21
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: AB DC B = A + 1 A C D BD B A D |B - C| 1 C D { 1, 2, 3, 4} { 1, 2, 3}{ 1, 3, 4} { 1, 2, 3, 4}
22
22 Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 Continuación del Ejemplo: AB DC B = A + 1 A C D BD 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
23 Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 Look ahead: resultado final: AB DC B = A + 1 A C D BD 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
24
DOCTORADO Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 24 Técnicas híbridas combinadas Combina el poder de backtracking con las técnicas anteriores
25
DOCTORADO Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 25 Forward checking Backtracking combinado con Forward Check
26
26 Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 Forward checking: Forward Checking: Execute Standard Backtracking After each assignment of a After each assignment of a value to a variable zi DO value to a variable zi DO Forward Check(zi) BUT
27
27 Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 1A Forward checking con BTB2 AB CD{1}{1,2,3,4}{1,2,3} {1,3,4} B=A+1 ADADADAD ACACACAC AB CD{1}{2}{2,3} {3,4} |B-C| 1 D BD BD BD B fallo AB CD{2}{1,2,3,4}{1,2,3} {1,3,4} B=A+1 ADADADAD ACACACAC 2 B3 AB CD{2}{3}{1,3} {1,3,4} D BD BD BD B C1 AB C D{4}{3}{1}{1} CDCDCDCD fallo AB CD{3}{1,2,3,4}{1,2,3} {1,3,4} B=A+1 ADADADAD ACACACAC 3 B4 AB CD{3}{4}{1,2} {1,4} D BD BD BD B AB C D{3}{4}{1}{1} CDCDCDCD AB C D{3}{4}{2}{1} CDCDCDCD 1C 2falloéxito
28
DOCTORADO Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 28 Lookahead checking Backtracking combinado con Look ahead
29
29 Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 Lookahead checking: Execute Standard Backtracking Look Ahead Check BUT Look Ahead Check ; Lookahead Checking: After each assignment of a After each assignment of a value to some variable DO value to some variable DO
30
30 Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 Lookahead checking at work AB C D{1,2,3,4}{1,2,3,4}{1,2,3}{1,3,4} B=A+1 ADADADAD ACACACAC D BD BD BD B |B-C| 1 CDCDCDCD AB CD{1}{3,4}{1,2} {1,3} B=A+1 fallo AB C D{2}{3,4}{1,2}{1,3} B=A+1 ADADADAD ACACACAC D BD BD BD B CDCDCDCD fallo AB C D{3}{3,4}{1,2}{1,3} B=A+1 ADADADAD ACACACAC D BD BD BD B CDCDCDCD AB C D{3}{4}{2}{1} D BD BD BD B CDCDCDCD AB C D{3}{4}{2}{1} CDCDCDCD 1A 2 3 B4 C2 éxito
31
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
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
33
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 Generalidades
34
34 Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 Ordenación de Variables n 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. n 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
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 Variables
36
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 Variables
37
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)
38
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 Variables
39
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 Valores
40
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 Valores
41
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 Valores
42
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 Restricciones
43
43 Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 Ordenación de Restricciones
44
44 Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 Ordenación de Restricciones
45
45 Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 Valor de la evaluación Ordenación de Restricciones
46
46 Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 Ordenación de Restricciones
47
47 Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 Generate & Test Three tasks: x 1, x 2, x 3 Three resources:1,2,3 d 1 :{1,2,3} d 2 :{1,2} d 3 :{1,2,3} Constraints: c 1 : x 1 ≠ x 2 c 2 : x 2 = x 3 Valid tuples: c 1 : (1,2,-),(2,1,-)(3,1,-)(3,2,-) c 2 : (-,1,1),(-,2,2) Natural orderOrdered tuplesc1c1 c2c2 c2c2 c1c1 (1,1,1)N-YN (1,1,2)N-N- (1,1,3)N-N- (1,2,1)YNN- (1,2,2)YYYY (1,2,3)YNN- (2,1,1)YYYY (2,1,2)YNN- (2,1,3)YNN- (2,2,1)N-N- (2,2,2)N-YN (2,2,3)N-N- (3,1,1)YYYY (3,1,2)YNN- (3,1,3)YNN- (3,2,1)YNN- (3,2,2)YYYY (3,2,3)YNN- (1,2,2) (2,1,1) (3,1,1) (3,2,2)
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.