2.3 Busqueda PSR

37
“Porque del corazón salen los malos pensamientos, los homicidios, los adulterios, las fornicaciones, los hurtos, los falsos testimonios, las blasfemias. Estas cosas son las que corrompen al hombre” Jesucristo 1

description

“Porque del corazón salen los malos pensamientos, los homicidios, los adulterios, las fornicaciones, los hurtos, los falsos testimonios, las blasfemias. Estas cosas son las que corrompen al hombre” 1 No somos pobres porque nos hayan explotado, Somos pobres porque somos corruptos. 2 Este diagrama es llamado un grafo restringido Clase general de problemas: PSR Binarios Arco constricción binario Arco constricción unitario Variable V i con valores en el dominio Di 3

Transcript of 2.3 Busqueda PSR

Page 1: 2.3 Busqueda PSR

“Porque del corazón salen los malos pensamientos, los homicidios, los adulterios, las fornicaciones, los

hurtos, los falsos testimonios, las blasfemias.

Estas cosas son las que corrompen al hombre”

Jesucristo

1

Page 2: 2.3 Busqueda PSR

Problemas con satisfacción de restricciones

2

No somos pobres porque nos hayan explotado,

Somos pobres porque somos corruptos.

Page 3: 2.3 Busqueda PSR

Problemas con Satisfacción de Restricciones(PSR)

3

Clase general de problemas: PSR Binarios

Variable V i con valores en el dominio Di

Arco constricción unitario

Arco constricción

binario

Este diagrama es llamado un grafo restringido

Problema básico: Encontrar un di є Di para cada Vi ajustándose a todas las restricciones.

Page 4: 2.3 Busqueda PSR

N-reinas como un PSRClásico problema de referencia

• Ubique N reinas en un tablero NxN de forma que ninguna pueda atacar a la otra

4

1 2 3 4

1234

Variables: las posiciones del tablero N x N en el ajedrezDominio: reina o sin-reina (blanco)Restricción: no pueden estar dos reinas en la misma línea (vertical, horizontal, diagonal)

Page 5: 2.3 Busqueda PSR

Calendarización como un PSRActividades

5

54321

tiempo

Escoger los períodos para las actividades ej. Observaciones en el telescopio Hubble, o períodos de clase asignados.

Variables: son las actividades

Dominio: conjunto horarios (o “pedazos” de tiempo)

Restricciones:

1.- Las actividades que usan los mismos recursos no pueden traslaparse en el tiempo.

2.- Las pre condiciones estén satisfechas

Page 6: 2.3 Busqueda PSR

Coloración de mapas como un PSR

6

Usar un pequeño conjunto de colores para pintar las regiones del mapa evitando que dos regiones adyacentes tengan el mismo color.

Variables: regiones

Dominios : colores permitidos

Restricciones: regiones adyacentes deben tener colores diferentes

Page 7: 2.3 Busqueda PSR

Problemas de satisfacción booleana como un PSR

• Encuentre valores booleanos (A o B o -C) y (-A o C o B)... para las variables A,B, C... que satisfagan la fórmula.

Variables: cláusulas

Dominios: variable booleana asignada que hace la cláusula verdadera.

Restricciones: cláusula con variable booleana compartida debe estar de acuerdo con el valor de la variable.

7

Page 8: 2.3 Busqueda PSR

Buenas noticias / malas noticias

• Buenas noticias – muy general y la clase de problemas prácticos e interesantes.

• Malas noticias - incluye problemas NP – duros (intratables)

• Asi, buen comportamiento esta en función del dominio(su estructura) no de la formulación como PSR.

8

Page 9: 2.3 Busqueda PSR

Ejemplo PSR

• Dado 40 cursos (8.01, 8.02, ..., 6.842) y 10 semestres . Encuentre una Calendarización adecuada.

• Restricciones: » Pre-requisitos» Cursos ofrecidos en semestres dados» Numero limite de cursos por semestre» Evitar conflictos de tiempo

• Observe, que los PSR NO son para expresar preferencias , por ej. minimizar dificultades, balancear áreas de asignaturas,etc.

9

Page 10: 2.3 Busqueda PSR

Selección de variables y valores• VARIABLES DOMINIOSA. Semestres? Combinación legal de por ejemplo 4

cursos (pero este es un inmenso conjunto de valores)

B. Asignatura de semestres? cursos ofrecidos durante ese semestre

ej. 4 de ellos(sem 1, 1) (sem 1,3)(sem 1, 2) (sem 1,4)

C. Clases o asignaturas? Semestres

10

Page 11: 2.3 Busqueda PSR

Restricciones• Usando los asignaturas como variables y los semestres/asignatura como

valores.

• Prerrequisitos

• Limite del # de cursos Usa semestre/asignat una sola vez

• Evitando conflictos de tiempo Pares de cursos ofrecidos al mismo tiempo

o tiempos traslapados

11

Un par de cursos que deben ser ordenados

Mat 1 Mat 2

Diferente para todo par de variables =

Page 12: 2.3 Busqueda PSR

Resolviendo PSR

• La solución de problemas PSR requiere cierta combinación de:

– 1. Propagación de restricciones, para eliminar valores que podrían NO se parte de alguna solución.

– 2. Buscar, para explorar asignaciones válidas.

12

Page 13: 2.3 Busqueda PSR

Propagación de restricciones(consistencia del arco)

• La consistencia de un arco elimina valores del domino de la variable que nunca pueden llegar a ser parte de una solución consistente.

Vi Vj

Un arco dirigido (Vi, Vj) es un arco consistente siPara toda x ε Di Existe y ε Di tal que (x,y) es permitido por la constricción del arco

• Podemos alcanzar la consistencia del arco con la eliminación de valores de Di (dominio de la variable ubicado en la cola del arco restricción) que hace fallar esta condición.

• Si cambia Di, tenemos que revisar que el o los otros arcos que llegan a Di son aun consistentes. A este fenómeno se le llama “propagación de restricciones”

13

A

Page 14: 2.3 Busqueda PSR

Ejemplo de propagación de restricciones

14

Coloreando gráficosLos dominios iniciales son los indicados

Arco examinado

Valor eliminado

V1 – V 2

ningunoV1 – V3 V1(G)V2 – V3 V2(G)V1 –V2 V1(R )V1 – V3 ningunoV2 – V3 ninguno

Restricciones color diferenteV1

V2V3

V1

R,G,B

R,G G

V2V3

B

R G

El grafo es un arco consistente.

Si se tiene alguna variable vacía, el grafo no tiene una solución consistente.

Page 15: 2.3 Busqueda PSR

Ejemplo de propagación

15

V2V3

R, B

R, G G V2V3

R, B

R G

V2V3

B

R G

Línea 2)

Línea 4)

Línea 3)V1 V1

V1

Page 16: 2.3 Busqueda PSR

Pero, la consistencia del arco no es suficiente

16

R,G

R,G R,G

Es un arco consistente pero no tiene la solución

Es un arco consistente pero tiene 2 soluciones: B,R,G; B,G,R

B, G

R,G R,G

B, G

R,G R,G

B, R no son permitidos

Arco consistente con 1 solución

Necesitamos buscar para encontrar la solución ( si la hay)

Page 17: 2.3 Busqueda PSR

Búsqueda de soluciones – backtracking(BT)

17

R

GR

Cuando se tienen muchas variables en el dominio, la consistencia del arco no es suficiente, es necesario realizar una búsqueda. Cualquier técnica podría servir.La técnica mas sencilla es el backtracking (búsqueda primero en profundidad)

Asignando a V1

Asignando a V2

Page 18: 2.3 Busqueda PSR

Buscando la solución – backtracking (BT)

GR

R BGR G R G

R R R RG G GG

Asignando a V2

Asignando a V3

Asignando a V1

V2V3

R,G,B

R,G R,G

R,G,B

R,G

Representando la asignación de valores a las variables como un árbol

Estos problemas de búsqueda son diferentes a las realizadas anteriormente, aquí sí importa el camino.

Page 19: 2.3 Busqueda PSR

Buscando la solución – backtracking (BT)

Inconsistencia con V1 = R

V2

V1

GR

R BGR G R G

R R R RG G GG

Asignando a V2

Asignando a V3

Asignando a V1

V2V3

R,G,B

R,G R,G

R,G,B

R,G

X

Representando la asignación de valores a las variables como un árbol.

Antes de cualquier asignación, se tiene que revisar toda restricción, incluyendo las asignaciones previas.

Page 20: 2.3 Busqueda PSR

Buscando la solución – backtracking (BT)

Inconsistencia con V1 = R

GR

R BGR G R G

R R R RG G GG

Asignando a V2

Asignando a V3

Asignando a V1

V2V3

R,G,B

R,G R,G

R,G,B

R,G

XX X

Inconsistencia con V2=G

Representando la asignación de valores a las variables como un árbol

Page 21: 2.3 Busqueda PSR

Buscando la solución – backtracking (BT)

GR

R BGR G R G

R R R RG G GG

Asignando a V2

Asignando a V3

Asignando a V1

V2 V3

R,G,B

R,G R,G

R,G,B

R,G

XX X X

X

XX X

Consistentes

Representando la asignación de valores a las variables como un árbol

Page 22: 2.3 Busqueda PSR

Combinando backtracking y propagación de restricciones

• Un nodo en un árbol BT es una asignación parcial en el cual el dominio de cada variable a sido ajustado (tentativamente) a un conjunto único.

• Usamos propagación de restricciones (arco consistencia) para propagar los efectos de esta asignación tentativa, es decir, eliminar valores inconsistentes con valores actuales.

• Pregunta: Cuanta propagación hay que hacer?• Respuesta: No mucha, solamente la propagación a los vecinos

inmediatos. A esto se le llama forward checking(FC). • FC: sacar de consideración cualquier valor para

variables futuras que son inconsistentes con los valores asignados a variables pasadas.

Page 23: 2.3 Busqueda PSR

Backtracking con Forward Checking (BT-FC)

• Cuando examinamos la asignación Vi=di, borramos todo valor inconsistente con esa asignación del domino del vecino en el grafo restringido.

V3

R,G,B

R,G R,G

R,G,B

R,G

RAsignando a V1

Asignando a V2

Asignando a V3

V1

V2

Page 24: 2.3 Busqueda PSR

Backtracking con Forward Checking (BT-FC)

• Cuando examinamos asignación Vi=di, borramos todo valor inconsistente con esa asignación del domino del vecino en el grafo restringido.

R

G

Asignando a V1

Asignando a V2

V1

V2

V3

R

G G

Page 25: 2.3 Busqueda PSR

• Cuando examinamos asignación Vi=di, borramos todo valor inconsistente con esa asignación del domino del vecino en el grafo restringido.

R

Backtracking con Forward Checking (BT-FC)

R

XG

V3

R

G

V1

V2

Asignando a V1

Asignando a V2

Se tiene una inconsistencia siempre que un dominio se encuentre vacio.

Page 26: 2.3 Busqueda PSR

• Falló y regresa. • Cuando examinamos asignación Vi=di, borramos todo valor inconsistente con esa

asignación del domino del vecino en el grafo restringido.

G

V3

R,G,B

R,G R,G

V2

V1

Asignando a V1

Cuando se regresa es necesario restaurar los valores en los dominios, debido a que las eliminaciones fueron hechas para alcanzar la consistencia con asignaciones tentativas consideradas durante la búsqueda.

Asignando a V2

Asignando a V3

Backtracking con Forward Checking (BT-FC)

Page 27: 2.3 Busqueda PSR

• Falló y regresa. • Cuando examinamos asignación Vi=di, borramos todo valor inconsistente con esa

asignación del domino del vecino en el grafo restringido.

G

V3

G

R R

V2

V1

Asignando a V1

Asignando a V2

Asignando a V3

Backtracking con Forward Checking (BT-FC)

Page 28: 2.3 Busqueda PSR

• Cuando examinamos asignación Vi=di, borramos todo valor inconsistente con esa asignación del domino del vecino en el grafo restringido.

R

GAsignando a V1

Asignando a V2

Asignando a V3

V3

G

R

V2

V1

Backtracking con Forward Checking (BT-FC)

Page 29: 2.3 Busqueda PSR

• Cuando examinamos asignación Vi=di, borramos todo valor inconsistente con esa asignación del domino del vecino en el grafo restringido.

R

GAsignando a V1

Asignando a V2

Asignando a V3

V3

G

R

V2

V1

X

Backtracking con Forward Checking (BT-FC)

Page 30: 2.3 Busqueda PSR

• Cuando examinamos asignación Vi=di, borramos todo valor inconsistente con esa asignación del domino del vecino en el grafo restringido.

BAsignando a V1

Asignando a V2

V3

R,G,B

R,G R,G

R,G,B

R,GV2

V1

Backtracking con Forward Checking (BT-FC)

V3

B

R,G R,G

B

R,GV2

V1

Page 31: 2.3 Busqueda PSR

• Cuando examinamos asignación Vi=di, borramos todo valor inconsistente con esa asignación del domino del vecino en el grafo restringido.

V3

B

R G

R

B

R,G

V1

V2

Asignando a V1

Asignando a V2

Backtracking con Forward Checking (BT-FC)

Asignando a V3

Page 32: 2.3 Busqueda PSR

• Cuando examinamos asignación Vi=di, borramos todo valor inconsistente con esa asignación del domino del vecino en el grafo restringido.

R

B

G V3

B

R

G

V1

V2

Asignación consistente

Asignando a V1

Asignando a V2

Asignando a V3

Backtracking con Forward Checking (BT-FC)

Page 33: 2.3 Busqueda PSR

• Cuando examinamos asignación Vi=di, borramos todo valor inconsistente con esa asignación del domino del vecino en el grafo restringido.

R

B

V3

B

R G

G

V1

Generalmente se prefiere esto al BT puro.

Asignando a V1

Asignando a V2

Asignando a V3

Backtracking con Forward Checking (BT-FC)

Page 34: 2.3 Busqueda PSR

BT-FC con ordenación dinámica• El backtracking tradicional usa ordenación fija de

variables y valores ejem.: ubicar primero la variable con más restricciones.

• Se puede mejorar, al ordenar dinámicamente como en el proceso de búsqueda.

• Variable más restringida: Cuando hacemos forward-checking, tomamos la variable con menos valores (minimizando el factor de ramificación)

• Valores con menos restricción: Seleccionamos el valor que elimina menos valores en los dominios de los vecinos.

• Ejemplo: FC resuelve el problema de las n-reinas hasta n=30, con el procedimiento FC y ordenación puede resolverlo con n=1000.

Page 35: 2.3 Busqueda PSR

• Colores: R, V, AA = verdeB = azulC = rojo

E es la variable más restringida (dominio es mas pequeño)

ROJO es el valor con menor restricción. (elimina menos valores en los dominios de los vecinos).

A

B

CE D

F

RojoVerde,azul

Rojo, azul

Qué país debemos colorear

Qué color debemos seleccionar para pintarlo?

Page 36: 2.3 Busqueda PSR

Para terminar…

• Todos los métodos para resolver PSR estudiados son sistemáticos (búsquedas garantizadas).

• Recientemente investigadores han tenido éxitos sorpresivos en búsquedas no sistemáticas sino que son randómicas.

• Versiones de estas estrategias pueden resolver el problema del millón-de-reinas en minutos, se decidió que N-reinas ya no es interesante...

• JUEGOS..

Page 37: 2.3 Busqueda PSR

•Tomado del

• Instituto Tecnológico de Massachusetts www.ocw.mit.edu6.034 Artificial Intelligence 2004Archivo ch3-csp-games1