2.3 Busqueda PSR

Post on 29-Mar-2016

234 views 1 download

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

“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

Problemas con satisfacción de restricciones

2

No somos pobres porque nos hayan explotado,

Somos pobres porque somos corruptos.

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.

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)

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

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

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

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

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

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

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 =

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

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

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.

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

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)

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

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.

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.

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

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

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.

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

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

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

• 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)

• 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)

• 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)

• 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)

• 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

• 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

• 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)

• 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)

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.

• 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?

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

•Tomado del

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