2.3 Busqueda PSR

Page 1

“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 No somos pobres porque nos hayan explotado, Somos pobres porque somos corruptos.

2


Problemas con Satisfacción de Restricciones(PSR)

Clase general de problemas: PSR Binarios

Arco constricción unitario

Variable V i con valores en el dominio Di

Este diagrama es llamado un grafo restringido

Arco constricción binario

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


N-reinas como un PSR Clásico problema de referencia

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

1 2 3 4

1 2

3 4

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


Calendarización como un PSR Escoger los períodos para las actividades ej. Observaciones en el telescopio Hubble, o períodos de clase asignados.

Actividades 5 4 3 2 1

tiempo

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 5


Coloraci贸n de mapas como un PSR 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

6


Problemas de satisfacciรณn booleana como un PSR โ ข Encuentre valores booleanos para las variables A,B, C... que satisfagan la fรณrmula.

(A o B o -C) y (-A o C o B)...

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 โ ข A.

VARIABLES Semestres?

B.

Asignatura de semestres?

DOMINIOS Combinaciรณn legal de por ejemplo 4 cursos (pero este es un inmenso conjunto de valores) 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

Mat 1

Mat 2

Un par de cursos que deben ser ordenados

Diferente para todo par de variables =

Limite del # de cursos

Evitando conflictos de tiempo

Usa semestre/asignat una sola vez Pares de cursos ofrecidos al mismo tiempo o tiempos traslapados

11


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 si Para toda x ε Di Existe y ε Di tal que (x,y) es permitido por la constricción del arco

A

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


Ejemplo de propagación de restricciones Coloreando gráficos

V1

Los dominios iniciales son los indicados

R,G,B

R,G Arco examinado

V1 – V 2

V1 – V3 V2 – V3 V1 –V2 V1 – V3 V2 – V3

Valor eliminado

ninguno ninguno

G

V3

V2 V1 B

ninguno

V1(G) V2(G) V1(R )

Restricciones color diferente

V2

R

G

V3

El grafo es un arco consistente. Si se tiene alguna variable vacía, el grafo no tiene una solución consistente. 14


Ejemplo de propagación V1

Línea 2)

R, B

V2

R, G

Línea 4)

V2

R

V1

Línea 3)

G

V3

V2

R, B R

G

V3

V1 B G

V3

15


Pero, la consistencia del arco no es suficiente Es un arco consistente pero no tiene la soluci贸n

R,G R,G B, G R,G Arco consistente con 1 soluci贸n

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

R,G B, G R,G

B, R no son permitidos

R,G

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

16


Búsqueda de soluciones – backtracking(BT) 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) R

Asignando a V1

Asignando a V2

R

G

17


Buscando la solución – backtracking (BT) 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.

R

Asignando a V1 Asignando a V2

Asignando a V3

R

G R

G R

G

B

R

G G

R R

G G

R

R,G,B R,G

V2

R,G

V3

G


Buscando la solución – backtracking (BT) 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.

R

Asignando a V1 Asignando a V2

Asignando a V3

X

R

G R

G R

G

B

R

G G V1

Inconsistencia con V1 = R

R,G

V2

R R

G G

R

R,G,B R,G

V3

G


Buscando la solución – backtracking (BT) Representando la asignación de valores a las variables como un árbol

R

Asignando a V1 Asignando a V2

Asignando a V3

X

R

G R

G R

G

X X

B

R

G G

R R

G

R

G

R,G,B

Inconsistencia con V1 = R Inconsistencia con V2=G

G

V2

R,G

R,G

V3


Buscando la solución – backtracking (BT) Representando la asignación de valores a las variables como un árbol

R

Asignando a V1 Asignando a V2

Asignando a V3

X

R

G R

G R

G

R

X X

B G G

X

X X

R R

X

G G

R

G

X

R,G,B

Consistentes R,G

V2

R,G

V3


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. Asignando a V1

R

Asignando a V2

Asignando a V3

V1 R,G,B

V2

R,G

R,G

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

Asignando a V1 Asignando a V2

G

V1 V2

G

R G

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

Asignando a V1 Asignando a V2

G

X V1

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

R

V2

G

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.

Asignando a V1

G

Asignando a V2

Asignando a V3

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.

V1

R,G,B

V2

R,G

R,G

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.

Asignando a V1

G

Asignando a V2

Asignando a V3

V1

G

V2

R

R

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.

G

Asignando a V1 Asignando a V2

R

Asignando a V3

V1

G

V2

R

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.

G

Asignando a V1 Asignando a V2

R

X

Asignando a V3

V1

G

V2

R

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.

B

Asignando a V1 Asignando a V2

V1 V2

R,G

V1

R,G,B R,G

V3

V2

R,G

B R,G

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.

B

Asignando a V1

R

Asignando a V2

Asignando a V3

V1 B

V2

R

G

R,G 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.

B

Asignando a V1

R

Asignando a V2

G

Asignando a V3

V1

Asignaciรณn consistente

B

V2

R

G

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.

B

Asignando a V1

G

Asignando a V2

Asignando a V3

R V1 R

B G

Generalmente se prefiere esto al BT puro.

V3


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 forwardchecking, 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, A

A = verde B = azul C = rojo

B

Verde ,azul

Rojo

A

E

D

C

F Rojo, azul

Qué país debemos colorear  Qué color debemos seleccionar para pintarlo? 

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


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.edu 6.034 Artificial Intelligence 2004 Archivo ch3-csp-games1


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.