PSR

Page 1

Inteligencia Artificial I

Curso 2010–2011

Tema 5: Problemas de satisfacci´ on de restricciones Jos´ e Antonio Alonso Jim´ enez Francisco Jes´ us Mart´ın Mateos Jos´ e L. Ruiz Reina

Dpto. de Ciencias de la Computaci´ on e Inteligencia Artificial

Universidad de Sevilla

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.1


Problema de Satisfacci´ on de Restricciones x

Un problema de satisfacci´ on de restricciones (PSR) viene definido por los siguientes elementos: u

Un conjunto finito de variables X1, . . . , Xn

u

Un conjunto finito de dominios Di asociados a cada variable Xi, especificando los posibles valores que puede tomar

u

Un conjunto finito de restricciones C1, . . . , Cm, que definen una serie de propiedades que deben verificar los valores asignados a las variables

x

Una soluci´ on al problema es una asignaci´ on de valores a las variables {X1 = v1, . . . , Xn = vn} tal que vi ∈ Di y se verifican las restricciones

x

Esta formulaci´ on permite una representaci´ on simple del problema, y el uso de heur´ısticas de prop´ osito general, independientes del problema

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.2


Tipos de Problemas de Satisfacci´ on de Restricciones x

x

x

Clasificaci´ on seg´ un el tipo de restricciones: u

Restricciones de obligaci´ on (hard constraints).

u

Restricciones de preferencia (soft constraints).

Clasificaci´ on seg´ un los dominios: u

Dominios discretos (finitos o infinitos).

u

Dominios continuos.

Clasificaci´ on seg´ un el n´ umero de variables implicadas en las restricciones: u

Restricciones binarias.

u

Restricciones m´ ultiples.

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.3


Ejemplo: N reinas x

Situar N reinas en un tablero de ajedrez de tama˜ no N × N de forma que no se den jaque mutuamente.

x

Variables: V1, . . . , VN

x

Dominios: Di = {1, . . . , N }

x

x

R R

Restricciones: u

Jaque horizontal: Vi 6= Vj

u

Jaque diagonal: |Vi − Vj | 6= |i − j|

V1 = 1, V2 = 3

Problema con dominios finitos y restricciones binarias (de obligaci´ on).

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.4


Ejemplo: coloreado de mapas x

Usando tres colores (rojo,azul,verde) colorear el mapa de Andaluc´ıa: CO

JA

SE HU GR AL MA

CA

x

Variables: Huelva, Granada, Almeria

x

Dominios: {rojo, azul, verde}

x

Restricciones: P 6= Q, para cada par de provincias vecinas P y Q

x

Problema con dominios finitos y restricciones binarias (de obligaci´ on).

IA-I 2010–2011

Cadiz,

Cc Ia

Sevilla,

Cordoba,

M alaga,

Jaen,

Problemas de satisfacci´ on de restricciones

5.5


Ejemplo: satisfacibilidad proposicional x

Problema SAT (para cl´ ausulas): u

Dado un conjunto de variables proposicionales L = {p1, . . . , pn} y un conjunto de cl´ ausulas proposicionales {C1, . . . , Cm} formadas con los s´ımbolos de L, determinar si existe una asignaci´ on de valores de verdad a los s´ımbolos de L de manera que se satisfagan todan las cl´ ausulas

x

Variables: {p1, . . . , pn}

x

Dominios: {T, F } (booleanos)

x

Restricciones: {C1, . . . , Cm}

x

Problema con dominios finitos y restricciones m´ ultiples (de obligaci´ on).

x

Problema NP-completo u

Por tanto, en el peor caso, no es posible resolver PSRs con dominios finitos en tiempo polinomial (si P 6= N P ).

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.6


Ejemplo: criptoaritm´ etica x

Asignar valores distintos del 1 al 8 a cada letra para que la ecuaci´ on indicada sea cierta:

x

Variables: I, D, E, A, M, N, T, C1, C2, C3

x

Dominios: {1, . . . , 8} para I, D, E, A, M, N, T y {0, 1} para C1, C2, C3

x

Restricciones: u

x

Primera suma: 2 ∗ A = (10 ∗ C3) + E

u

Segunda suma: (2 ∗ E) + C3 = (10 ∗ C2) + T

u

Tercera suma: (2 ∗ D) + C2 = (10 ∗ C1) + N

u

Cuarta suma: (2 ∗ I) + C1 = (10 ∗ M ) + E

(C1 C2 C3)

I D E A + I D E A M E N T E

Problema con dominios finitos y restricciones m´ ultiples (de obligaci´ on).

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.7


Ejemplo: asignaci´ on de tareas x

Asignar tareas a empleados de acuerdo con su capacidad para desarrollarlas:

x

Variables: Ei

x

Dominios: Di = {T1, . . . , Tn}

x

Restricciones: u

x

Obtener la mejor

x

Pn

i=1 Ci

Tabla de capacidades (Ci): E1 E2 E3

T1 1 3 2

T2 3 2 3

T3 2 1 1

Problema con dominios finitos y restricciones m´ ultiples (de preferencia).

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.8


Ejemplo: planificaci´ on de corte x

Encontrar la manera de situar patrones de corte en una pieza de cart´ on.

x

Variables: P1, P2, P3, P4

x

Dominios: Coordenadas en el plano.

x

Restricciones: u

x

Las piezas no deben superponerse.

Problema con dominios continuos y restricciones binarias (de obligaci´ on).

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.9


Problemas de Satisfacci´ on de Restricciones x

En este tema, trataremos PSRs: u

Con dominios finitos

u

Con restricciones binarias de obligaci´ on

x

Todo problema con restricciones m´ ultiples se puede reducir a uno equivalente con restricciones binarias

x

Representaci´ on en forma de grafo de un PSR: SE=CO

HU=SE

HU

CO

CO=JA

JA

CO=GR

SE

JA=GR SE=MA

CA=SE

CO=MA

MA

MA=GR

GR

GR=AL

AL

HU=CA

CA

IA-I 2010–2011

Cc Ia

CA=MA

Problemas de satisfacci´ on de restricciones

5.10


Implementaci´ on de la representaci´ on de un PSR x

Variables: estructura con nombre + dominio u

Funciones de acceso: psr-var-nombre y psr-var-dominio

x

La variable global *variables* contiene a todas las variables del PSR

x

Restricciones: estructura con los nombres de las variables involucradas + funci´ on u

x

Funciones de acceso: psr-restr-variables y psr-restr-funcion

La variable global *restricciones* contiene todas las restricciones del PSR

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.11


PSR como problema de espacio de estados x

x

x

Estados: u

Asignaciones parciales (y consistentes con las restricciones) de valores a variables: {Xi1 = vi1 , . . . , Xik = vik }

u

Estado inicial: {}

u

Estados finales: asignaciones completas

Operadores: u

Asignar un valor (de su dominio) a una variable no asignada en el estado

u

Aplicabilidad: la asignaci´ on resultante tiene que ser consistente

Soluciones mediante b´ usqueda en profundidad u

Puesto que las soluciones est´ an a una profundidad fija (igual al n´ umero de variables), profundidad es preferible a anchura

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.12


Simplificaciones en la b´ usqueda x

El orden en el que se aplican los operadores es irrelevante para la soluci´ on final (conmutatividad) u

x

x

Por tanto, los operadores puden reducirse a considerar las posibles asignaciones a una u ´nica variable no asignada

El camino no es importante u

No necesitamos la estructura de nodo

u

No necesitamos una representaci´ on expl´ıcita para los operadores

No es posible repetir un estado durante la b´ usqueda: u

No es necesario realizar comprobaciones para evitar repeticiones

u

La lista de CERRADOS es superflua

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.13


B´ usqueda en profundidad para PSR: implementaci´ on x

Estados: representados como listas de asociaci´ on

x

Funci´ on que elige la nueva variable a asignar (de entre las no asignadas): u

x

Funci´ on que ordena los valores a asignar: u

x

SELECCIONA-VARIABLE(ESTADO) ORDENA-VALORES(DOMINIO)

Funci´ on que calcula los sucesores: FUNCION PSR-SUCESORES(ESTADO) 1. Hacer VARIABLE igual a SELECCIONA-VARIABLE(ESTADO) Hacer DOMINIO-ORD igual ORDENA-VALORES(PSR-VAR-DOMINIO(VARIABLE)) Hacer SUCESORES igual a vac´ ıo 2. Para cada VALOR en DOMINIO-ORD, Hacer NUEVO-ESTADO igual a la asignaci´ on obtenida ampliando ESTADO con VARIABLE=VALOR Si NUEVO-ESTADO es consistente con *RESTRICCIONES*, a~ nadir NUEVO-ESTADO a SUCESORES 3. Devolver SUCESORES

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.14


B´ usqueda en profundidad para PSR: implementaci´ on FUNCION PSR-BUSQUEDA-EN-PROFUNDIDAD() 1. Hacer ABIERTOS igual a la lista formada por la asignaci´ on vac´ ıa 2. Mientras que ABIERTOS no est´ e vac´ ıa, 2.1 Hacer ACTUAL el primer estado de ABIERTOS 2.2 Hacer ABIERTOS el resto de ABIERTOS 2.3 Si ACTUAL es una asignaci´ on completa 2.4.1 devolver ACTUAL y terminar. 2.4.2 en caso contrario, 2.4.2.1 Hacer NUEVOS-SUCESORES igual a PSR-SUCESORES(ACTUAL) 2.4.2.2 Hacer ABIERTOS igual al resultado de incluir NUEVOS-SUCESORES al principio de ABIERTOS 3. Devolver FALLO.

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.15


B´ usqueda en profundidad para PSR: ejemplos x

8 reinas: > > > > >

x

(load "psr-alg-comun.lsp") (load "psr-busqueda-en-profundidad") (load "psr-n-reinas") (n-reinas 8) (psr-busqueda-en-profundidad) ((8 . 4) (7 . 2) (6 . 7) (5 . 3) (4 . 6) (3 . 8) (2 . 5) (1 . 1))

Coloreado del mapa: > (load "psr-mapa-andalucia") > (psr-busqueda-en-profundidad) ((ALMERIA . AZUL) (GRANADA . ROJO) (JAEN . AZUL) (CORDOBA . VERDE) (MALAGA . AZUL) (CADIZ . VERDE) (SEVILLA . ROJO) (HUELVA . AZUL))

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.16


Algoritmo de backtracking x

El algoritmo de b´ usqueda en profundidad anterior se suele llamar algoritmo de backtracking u

Usualmente, se presenta de manera recursiva:

FUNCION PSR-BACKTRACKING() Devolver PSR-BACKTRACKING-REC({}) FUNCION PSR-BACKTRACKING-REC(ESTADO) 1. Si ESTADO es una asignaci´ on completa, devolver ESTADO y terminar 2. Hacer VARIABLE igual a SELECCIONA-VARIABLE(ESTADO) Hacer DOMINIO-ORD igual ORDENA-VALORES(PSR-VAR-DOMINIO(VARIABLE)) 3. Para cada VALOR en DOMINIO-ORD, 3.1 Hacer NUEVO-ESTADO igual a la asignaci´ on obtenida ampliando ESTADO con VARIABLE=VALOR 3.2 Si NUEVO-ESTADO es consistente con *RESTRICCIONES*, hacer: 3.2.1 RESULTADO igual PSR-BACKTRACKING-REC(NUEVO-ESTADO) 3.2.2 Si RESULTADO no es FALLO, devolver RESULTADO y terminar 3. Devolver FALLO IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.17


Heur´ısticas en el algoritmo de backtracking x

En principio, el algoritmo de backtracking realiza una b´ usqueda ciega u

x

x

B´ usqueda no informada, ineficiente en la pr´ actica

Sin embargo, es posible dotar al algoritmo de cierta heur´ıstica que mejora considerablemente su rendimiento u

Estas heur´ısticas son de prop´ osito general

u

Independientes del problema

u

Sacan partido de la estructura especial de los PSR

Posibles mejoras heur´ısticas u

Selecci´ on de nueva variable a asignar

u

Orden de asignaci´ on de valores a la variable elegida

u

Propagaci´ on de informaci´ on a trav´ es de las restricciones

u

Vuelta atr´ as “inteligente” en caso de fallo

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.18


Selecci´ on de variables y ordenaci´ on de valores x

Definici´ on adecuada de la funci´ on SELECCIONA-VARIABLE(ESTADO) u

x

Estrategia poco eficiente (no informada): tomar la primera variable no asignada

Heur´ıstica MRV: seleccionar la variable con el menor n´ umero de valores en su dominio consistente con la asignaci´ on parcial actual u Ejemplo: u

Con la asignaci´ on (parcial) {Huelva=Rojo, Sevilla=Azul, Malaga=Rojo}, la siguiente variable a asignar ser´ ıa Cadiz o Cordoba (en ambos casos s´ olo hay un valor en sus dominios consistente con la asignaci´ on) x

Otra heur´ıstica: mayor n´ umero de restricciones para la variable (grado) u

x

Usada para desempatar MRV

Ordenaci´ on de valores a asignar (funci´ on ORDENA-VALORES(DOMINIO)) u

Considerar antes los que eliminen menos posibles valores de las variables por asignar

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.19


Comprobaci´ on hacia adelante (forward checking) x

Para cada estado, mantener cierta informaci´ on sobre los posibles valores para las variables que quedan por asignar: u

x

Cada vez que se asigna un nuevo valor a una variable, quitar del dominio de las variables por asignar, aquellos valores que no sean consistentes con el nuevo valor asignado

Ejemplo (seleccionando variables en orden alfab´ etico): {AL=R} {AL=R,CA=R} {AL=R,CA=R,CO=A} {AL=R,CA=R,CO=A,GR=V}

--> --> --> -->

eliminar eliminar eliminar eliminar

R R A V

del dominio de GR de los dominios de HU, SE y MA de los dominios de MA, SE y JA de los dominios de JA y MA

En este momento, MA no tiene ning´ un valor posible. Por tanto, no es necesario seguir explorando en el ´ arbol. u

Se ha detectado inconsistencia sin necesidad de asignar valores a Huelva y Jaen, y para cualquier extensi´ on de la asignaci´ on parcial construida hasta el momento

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.20


R

R R

Cc Ia

R

R

R

R

R

R

R

R

R

R

R

R

R

R

R

Problemas de satisfacci´ on de restricciones

R

R

Backtracking+forward checking en 4-reinas

IA-I 2010–2011

x

Ejemplo: N-reinas

5.21


Propagaci´ on de restricciones x

x

x

Cuestiones t´ ecnicas sobre la comprobaci´ on hacia adelante: u

Cada nodo del ´ arbol debe contener el estado junto la lista de valores posibles en las variables por asignar

u

Muy f´ acil de usar en conjunci´ on con la heur´ıstica MRV

La comprobaci´ on hacia adelante es un caso particular de propagaci´ on de restricciones: u

Propagar las implicaciones de las restricciones sobre una variable sobre otras variables

u

existen t´ ecnicas m´ as completas para propagar restricciones que la comprobaci´ on hacia adelante

u

la propagaci´ on debe ser r´ apida: completitud vs rapidez

La consistencia de arcos proporciona un m´ etodo con un buen compromiso entre eficiencia y completitud

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.22


Consistencia de arcos x

x

En un PSR, por arco entendemos un arco dirigido en el grafo que lo representa u

Equivalentemente, un arco es una restricci´ on en la que hay una variable distinguida

u

Notaci´ on: B > E, CO 6= SE, |Vi − Vj | 6= |i − j|

Arco consistente respecto a un conjunto de dominios asociados a un conjunto de variables: u

Para cualquier valor del dominio asociado a la variable distinguida del arco, existen valores en los dominios de las restantes variables que satisfacen la restricci´ on del arco

u

Ejemplo: si SE y CO tienen ambas asignadas como dominio {rojo, verde}, el arco CO 6= SE es consistente

u

Ejemplo: si SE tiene como dominio {rojo} y CO tiene como dominio {rojo, verde}, el arco CO 6= SE no es consistente

u

En este u ´ ltimo caso, el arco puede hacerse consistente eliminando rojo del dominio de CO

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.23


Algoritmo de consistencia de arcos AC-3 (idea intuitiva) x

x

Objetivo: u

a partir de los dominios iniciales de las variables

u

devolver un conjunto de dominios actualizado tal que todos los arcos del problema sean consistentes

Actualizaci´ on de dominios: u

x

Revisi´ on de arcos: u

x

Si un arco es inconsistente, podemos hacerlo consistente eliminando del dominio de la variable distinguida aquellos valores para los que no existen valores en los dominios de las restantes variables que satisfagan la restricci´ on si el dominio de una variable se actualiza, es necesario revisar la consistencia de los arcos en los que aparece la variable como variable no distinguida

Criterio de parada: u

Todos los arcos son consistentes respecto a los dominios de las variables

u

O alg´ un dominio queda vac´ıo (inconsistencia)

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.24


Consistencia de arcos (ejemplo) x

Planificaci´ on de las acciones de un robot (Poole, pag. 149): Un robot necesita planificar cinco actividades (A, B, C, D y E), donde cada actividad ha de comenzar en un momento en el tiempo (1, 2, 3, o 4) y dura exactamente una u ´ nidad de tiempo. Restricciones: u

La actividad B no puede realizarse en el momento n´ umero 3.

u

La actividad C no puede realizarse en el momento n´ umero 2.

u

Las actividades A y B no pueden realizarse simult´ aneamente.

u

Las actividades B y C no pueden realizarse simult´ aneamente.

u

La actividad C ha de realizarse antes de la D.

u

Las actividades B y D no pueden realizarse simult´ aneamente.

u

Las actividades A y D han de realizarse simult´ aneamente.

u

La actividad E ha de ser la primera.

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.25


Consistencia de arcos (ejemplo) x

Representaci´ on como grafo: A

A=B

B

1 2 3 4

A=D

1 2 4

B=D B=C

D

C

1 2 3 4

C<D E<D E

E<A

IA-I 2010–2011

Cc Ia

1 3 4

E<C 1 2 3 4

E<B

Problemas de satisfacci´ on de restricciones

5.26


Consistencia de arcos (ejemplo) x

Seguimiento del ejemplo: Variables y dominios Arcos pendientes de revisar (A 1 2 3 4) (B 1 2 4) (C 1 3 4) A 6= B, A 6= B, B 6= C, B 6= C, C < D, C < D, B 6= D, B 6= D, (D 1 2 3 4) (E 1 2 3 4) A = D, A = D, A > E, A > E, B > E, B > E, C > E, C > E, D > E, D > E (A 1 2 3 4) (B 1 2 4) (C 1 3) C < D, B 6= D, B 6= D, A = D, A = D, A > E, A > E, B > E, (D 1 2 3 4) (E 1 2 3 4) B > E, C > E, C > E, D > E, D > E, B 6= C (A 1 2 3 4) (B 1 2 4) (C 1 3) B 6= D, B 6= D, A = D, A = D, A > E, A > E, B > E, B > E, (D 2 3 4) (E 1 2 3 4) C > E, C > E, D > E, D > E, B 6= C, C < D (A 2 3 4) (B 1 2 4) (C 1 3) A = D, A > E, A > E, B > E, B > E, C > E, C > E, D > E, (D 2 3 4) (E 1 2 3 4) D > E, B 6= C, C < D, A 6= B (A 2 3 4) (B 1 2 4) (C 1 3) B > E, B > E, C > E, C > E, D > E, D > E, B 6= C, C < D, (D 2 3 4) (E 1 2 3) A 6= B, A > E (A 2 3 4) (B 2 4) (C 1 3) B > E, C > E, C > E, D > E, D > E, B 6= C, C < D, A 6= B, (D 2 3 4) (E 1 2 3) A > E, A 6= B, B 6= C, B 6= D (A 2 3 4) (B 2 4) (C 3) C > E, D > E, D > E, B 6= C, C < D, A 6= B, A > E, A 6= B, (D 2 3 4) (E 1 2 3) B 6= C, B 6= D, C < D

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.27


Consistencia de arcos (ejemplo) x

Seguimiento del ejemplo: Variables y dominios (A 2 3 4) (B 2 4) (C 3) (D 2 3 4) (E 1 2) (A 2 3 4) (B 2 4) (C 3) (D 4) (E 1 2) (A 2 3 4) (B 2) (C 3) (D 4) (E 1 2) (A 4) (B 2) (C 3) (D 4) (E 1 2) (A 4) (B 2) (C 3) (D 4) (E 1) (A 4) (B 2) (C 3) (D 4) (E 1)

IA-I 2010–2011

Arcos pendientes de revisar D > E, D > E, B 6= C, C < D, A 6= B, A > E, A 6= B, B 6= C, B 6= D, C < D, B > E, C > E B > E, C > E, C < D, B 6= D, A = D, D > E A = D, D > E, A 6= B, B 6= C, B 6= D, B > E D > E, A 6= B, B 6= C, B 6= D, B > E, A 6= B, A = D, A > E A 6= B, A = D, A > E, A > E, B > E, C > E, D > E

Cc Ia

Problemas de satisfacci´ on de restricciones

5.28


Implementaci´ on del algoritmo AC-3 x

Arcos: estructura con los campos variable y restricci´ on u

x

Funciones de acceso: arco-variable y arco-restriccion

Generaci´ on de todos los arcos de un PSR:

FUNCION ARCOS() 1. Hacer ARC igual a vac´ ıo 2. Para cada RESTRICCION es *RESTRICCIONES* 2.1 Para cada VARIABLE en PSR-RESTR-VARIABLES(RESTRICCION) A~ nadir a ARC el arco formado por VARIABLE+RESTRICCION 3. Devolver ARC

x

C´ alculo de dominio actualizado:

FUNCION ACTUALIZA-DOMINIO(VARIABLE,RESTRICCION,VARIABLES) 1. Hacer DOMINIO-ACTUAL igual al dominio de VARIABLE en VARIABLES Hacer NUEVO-DOMINIO igual a vac´ ıo 2. Para cada VALOR en DOMINIO-ACTUAL hacer 2.1 Si para ese VALOR de VARIABLE existe una asignaci´ on a las restantes variables de RESTRICCION que satisfaga RESTRICCION, incluir VALOR en NUEVO-DOMINIO 3. Devolver NUEVO-DOMINIO

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.29


Implementaci´ on del algoritmo AC-3 x

Algoritmo AC-3 u

Entrada: una lista de variables+dominios

u

Salida: la lista de entrada, con los dominios actualizados (destructivamente) de manera que todos los arcos del PSR son consistentes

FUNCION AC-3(VARIABLES) 1. Hacer RED igual a ARCOS() 2. Mientras RED no sea vac´ ıo 2.1 Hacer ACTUAL el primero de RED y RED el resto de RED 2.2 Hacer VARIABLE igual a ARCO-VARIABLE(ARCO) y RESTRICCION igual ARCO-RESTRICCION(ARCO) 2.3 Hacer VIEJO-DOMINIO igual al dominio de VARIABLE en VARIABLES 2.4 Hacer NUEVO-DOMINIO igual a ACTUALIZA-DOMINIO(VARIABLE,RESTRICCION,VARIABLES) 2.5 Si NUEVO-DOMINIO y VIEJO-DOMINIO son distintos, entonces 2.5.1 Actualizar el dominio de VARIABLE en VARIABLES con NUEVO-DOMINIO 2.5.2 Incluir en RED todos los arcos de ARCOS() en los que aparezca VARIABLE y esta NO sea la variable distinguida del arco 2.6 Devolver VARIABLES IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.30


Propiedades de AC-3 x

x

Complejidad (en el caso de restricciones binarias) u

n: n´ umero de variables

u

d: m´ aximo n´ umero de valores de un dominio

u

Complejidad en tiempo: O(n2d3) (polinomial)

Por tanto, s´ olo con AC-3 no es posible resolver un PSR u

x

Pero puede combinarse con alg´ un tipo de b´ usqueda

Dos aproximaciones: u

Incorporar en el algoritmo de backtracking, como un paso de propagaci´ on de restricciones despu´ es de cada asignaci´ on

u

Intercalar AC-3 con b´ usqueda

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.31


B´ usqueda de soluciones mediante consistencia de arcos x

x

Resultado tras aplicar AC-3: u

Existe un dominio vac´ıo: no hay soluci´ on.

u

Todos los dominios son unitarios: hay una soluci´ on.

u

No hay dominios vac´ıos y al menos uno no es unitario: ¿soluciones?.

Idea: romper un dominio no vac´ıo en subdominios y aplicar AC-3 a los estados resultantes u

Esto se puede hacer de manera sistem´ atica (b´ usqueda)

u

Hasta que se detecta inconsistencia en todas las alternativas (no hay soluci´ on)

u

Hasta que se obtiene un estado con todos los dominios unitarios (soluci´ on)

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.32


B´ usqueda de soluciones mediante consistencia de arcos FUNCION BUSQUEDA-AC3() 1. Hacer ABIERTOS igual a una lista cuyo ´ unico elemento es una copia de *VARIABLES* 2. Mientras que ABIERTOS no est´ e vac´ ıa, 2.1 Hacer ACTUAL igual a AC3(PRIMERO(ABIERTOS)) 2.2 Hacer ABIERTOS el resto de ABIERTOS 2.3 Si no existen dominios vac´ ıos en ACTUAL, 2.3.1 Si ACTUAL tiene todos los dominios unitarios, devolver ACTUAL y terminar 2.3.2 Si no, calcular los sucesores de ACTUAL y a~ nadirlos a la lista de ABIERTOS 3. Devolver FALLO. x

Detalles a concretar de la implementaci´ on: u

Sucesores: escoger un dominio no unitario y dividirlo de alguna manera

u

Gesti´ on de la cola de abiertos: anchura o profundidad

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.33


Ejemplo de uso: N-reinas

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

Real time: 7.330538 sec. Run time: 7.06 sec. Space: 5204128 Bytes GC: 10, GC time: 0.17 sec. (#S(VARIABLE-PSR :NOMBRE 1 :DOMINIO (1)) #S(VARIABLE-PSR :NOMBRE 2 :DOMINIO (3)) #S(VARIABLE-PSR :NOMBRE 3 :DOMINIO (6)) #S(VARIABLE-PSR :NOMBRE 4 :DOMINIO (8)) #S(VARIABLE-PSR :NOMBRE 5 :DOMINIO (10)) #S(VARIABLE-PSR :NOMBRE 6 :DOMINIO (5)) #S(VARIABLE-PSR :NOMBRE 7 :DOMINIO (9)) #S(VARIABLE-PSR :NOMBRE 8 :DOMINIO (2)) #S(VARIABLE-PSR :NOMBRE 9 :DOMINIO (4)) #S(VARIABLE-PSR :NOMBRE 10 :DOMINIO (7)) )

> (load "psr-alg-comun.lsp") T > (load "psr-n-reinas.lsp") T > (load "psr-alg-arcos.lsp") T > (n-reinas 10) *RESTRICCIONES* > (time (busqueda-ac3))

x

Consistencia de arcos

5.34


Algoritmos de mejora iterativa para PSRs x

x

Planteamiento como un problema de b´ usqueda local: u

Estados: asignaciones completas (consistentes o inconsistentes)

u

Estado inicial escogido aleatoriamente

u

Estados finales: soluciones al PSR

u

Generaci´ on de sucesor: elegir una variable y cambiar el valor que tiene asignado (usando cierta heur´ıstica y aleatoriedad)

Generaci´ on de sucesor mediante la estrategia de m´ınimos conflictos u

Variable elegida: aquella (distinta de la u ´ ltima modificada) que participa en m´ as restricciones NO satisfechas en el estado (los empates se deshacen aleatoriamente)

u

Valor elegido: aquel valor (distinto del que ten´ıa) que produce el menor n´ umero de restricciones incumplidas (los empates se deshacen aleatoriamente)

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.35


Algoritmo de reparaci´ on heur´ıstica (m´ınimos conflictos) x

Estructura nodo-minc: asignaci´ on + u ´ ltima variable modificada

x

Pseudoc´ odigo: FUNCION MIN-CONFLICTOS(MAX-ITERACIONES) 1. Hacer ACTUAL igual a un nodo con una asignaci´ on generada aleatoriamente. 2. Para I desde 1 hasta MAX-ITERACIONES hacer 2.1 Si la asignaci´ on de ACTUAL es una soluci´ on, devolverla y terminar. 2.2 Hacer VARIABLE igual a una variable (distinta de la ´ ultima modificada) escogida aleatoriamente de entre aquellas que participan en el mayor n´ umero de restricciones incumplidas. 2.3 Hacer SUCESORES igual a la lista de nodos obtenidos cambiando en la asignaci´ on de ACTUAL el valor de VARIABLE por cada uno de los posibles valores del dominio de VARIABLE en *VARIABLES* (excepto el correspondiente al valor que ten´ ıa en ACTUAL) 2.4 Hacer ACTUAL el nodo de SUCESORES escogido aleatoriamente de entre aquellos cuya asignaci´ on incumple el menor n´ umero de restricciones 3. Devolver FALLO

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.36


Ejemplo de uso: N-reinas

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

Real time: 2.155908 sec. Run time: 2.15 sec. Space: 2758404 Bytes GC: 6, GC time: 0.07 sec. (12 (#S(VARIABLE-PSR :NOMBRE 1 :DOMINIO (6)) #S(VARIABLE-PSR :NOMBRE 2 :DOMINIO (8)) #S(VARIABLE-PSR :NOMBRE 3 :DOMINIO (1)) #S(VARIABLE-PSR :NOMBRE 4 :DOMINIO (4)) #S(VARIABLE-PSR :NOMBRE 5 :DOMINIO (7)) #S(VARIABLE-PSR :NOMBRE 6 :DOMINIO (10)) #S(VARIABLE-PSR :NOMBRE 7 :DOMINIO (2)) #S(VARIABLE-PSR :NOMBRE 8 :DOMINIO (9)) #S(VARIABLE-PSR :NOMBRE 9 :DOMINIO (5)) #S(VARIABLE-PSR :NOMBRE 10 :DOMINIO (3)) ) )

> (load "psr-alg-comun.lsp") T > (load "psr-n-reinas.lsp") T > (load "psr-alg-minc.lsp") T > (n-reinas 10) *RESTRICCIONES* > (time (reparacion-heuristica-minc :iteraciones 20))

x

Reparaci´ on heur´ıstica: ejemplos

5.37


Reparaci´ on heur´ıstica: ejemplos x

Seguimiento de un ejemplo: N-reinas V1 V2 V3 V4 valor conflictos valor conflictos valor conflictos valor conflictos 1 3 1 3 1 3 1 3 1 2 1 2 4 0 1 2 1 2 2 1 4 0 1 1 3 1 2 1 4 0 1 0 3 0 1 1 4 0 1 1 3 0 1 0 4 0 2 0

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.38


Comparaci´ on de los tres algoritmos: x

Ejemplo: N-reinas N 4 8 12

x

backtracking arcos min-conflictos (media sobre 10 pruebas) tiempo espacio tiempo espacio tiempo espacio 0.04 84064 0.06 73968 0.08 97019 6.18 9967912 3.17 2792464 2.27 2953025 51.16 75282044 22.71 16295860 16.96 20217256

Reparaci´ on heur´ıstica tiene muy buenos resultados en algunos tipos de PSRs: u

PSRs cuyas soluciones est´ an distribuidas uniformemente a lo largo del espacio de estados

u

PSRs en los que las restricciones pueden cambiar din´ amicamente

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.39


Bibliograf´ıa x

Nilsson, N.J. Inteligencia artificial (Una nueva s´ıntesis) (McGraw– Hill, 2000) u

x

Poole, D.; Mackworth, A. y Goebel, R. Computational Intelligence (A Logical Approach) (Oxford University Press, 1998) u

x

Cap. 11 “M´ etodos alternativos de b´ usqueda y otras aplicaciones”.

Cap. 4.7: “Constraint Satisfaction Problems”.

Russell, S. y Norvig, P. Artificial Intelligence (A Modern Approach) (Prentice–Hall, 2000). Second Edition u

Cap. 5: “Constraint Satisfaction Search”.

IA-I 2010–2011

Cc Ia

Problemas de satisfacci´ on de restricciones

5.40


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