DOCTORADO Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 1 Modelos...

47
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

Transcript of DOCTORADO Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04 1 Modelos...

Page 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.

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

Page 2: 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.

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)

Page 3: 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.

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

Page 4: 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.

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

Page 5: 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.

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

Page 6: 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.

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

Page 7: 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.

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.

Page 8: 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.

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

Page 9: 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.

Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04

9

DOCTORADO

Algoritmos basados en Backtracking

Chronological Backtracking

Backjumping

Page 10: 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.

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

Page 11: 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.

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

Page 12: 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.

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

Page 13: 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.

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

Page 14: 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.

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:

Page 15: 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.

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:

Page 16: 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.

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}

Page 17: 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.

Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04

17

DOCTORADO

Técnicas Híbridas

Forward Checking

Lookahead

Page 18: 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.

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 :

Page 19: 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.

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

Page 20: 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.

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

Page 21: 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.

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}

Page 22: 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.

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:

Page 23: 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.

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

Page 24: 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.

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

Page 25: 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.

Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04

25

DOCTORADO

Forward checking

Backtracking combinado con Forward Check

Page 26: 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.

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

Page 27: 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.

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

Page 28: 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.

Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04

28

DOCTORADO

Lookahead checking

Backtracking combinado con Look ahead

Page 29: 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.

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

Page 30: 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.

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

Page 31: 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.

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.

Page 32: 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.

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

Page 33: 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.

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

Page 34: 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.

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.

Page 35: 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.

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

Page 36: 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.

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

Page 37: 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.

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)

Page 38: 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.

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

Page 39: 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.

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

Page 40: 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.

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

Page 41: 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.

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

Page 42: 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.

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

Page 43: 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.

43

Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04

Ordenación de RestriccionesOrdenación de Restricciones

Page 44: 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.

44

Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04

Ordenación de RestriccionesOrdenación de Restricciones

Page 45: 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.

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

Page 46: 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.

46

Departamento Ciencia de la Computación e Inteligencia Artificial. Curso 2003-04

Ordenación de RestriccionesOrdenación de Restricciones

Page 47: 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.

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)