Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


tema5, Apuntes de Ciencias de la Educación

Asignatura: IA1, Profesor: , Carrera: Educacion Infantil, Universidad: US

Tipo: Apuntes

2012/2013

Subido el 30/06/2013

2manoli
2manoli 🇪🇸

3.7

(5)

23 documentos

1 / 40

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
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 CcIaProblemas de satisfacci´on de restricciones 5.1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28

Vista previa parcial del texto

¡Descarga tema5 y más Apuntes en PDF de Ciencias de la Educación solo en Docsity!

Inteligencia Artificial I Curso 2010–

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

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 X 1 ,... , 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 C 1 ,... , 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

{X 1 = v 1 ,... , 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

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: V 1 ,... , VN

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

x Restricciones:

u (^) Jaque horizontal: Vi 6 = Vj u (^) Jaque diagonal: |Vi − Vj | 6 = |i − j|

R

R

V^1 = 1, V^2 = 3

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

Ejemplo: coloreado de mapas

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

HU

SE

CO JA

CA

GR MA AL

x Variables: Huelva, Cadiz, Sevilla, Cordoba, M alaga, Jaen,

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

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, C 1 , C 2 , C 3

x Dominios: { 1 ,... , 8 } para I, D, E, A, M, N, T y { 0 , 1 } para C 1 , C 2 , C 3

x Restricciones:

u (^) Primera suma: 2 ∗ A = (10 ∗ C 3 ) + E u (^) Segunda suma: (2 ∗ E) + C 3 = (10 ∗ C 2 ) + T u (^) Tercera suma: (2 ∗ D) + C 2 = (10 ∗ C 1 ) + N u (^) Cuarta suma: (2 ∗ I) + C 1 = (10 ∗ M ) + E

I D E A

I D E A

M E N T E

(C1 C2 C3)

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

Ejemplo: asignaci´on de tareas

x Asignar tareas a empleados de acuerdo con su capacidad para desarro-

llarlas:

x Variables: Ei

x Dominios: Di = {T 1 ,... , Tn}

x Restricciones:

u (^) Obtener la mejor ∑ni=1 Ci

x Tabla de capacidades (Ci):

T 1 T 2 T 3

E 1 1 3 2

E 2 3 2 1

E 3 2 3 1

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

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

valente con restricciones binarias

x Representaci´on en forma de grafo de un PSR:

SE

CA

MA

CO (^) JA

GR AL

HU HU=CA

HU=SE

CA=SE

CA=MA

SE=MA

SE=CO

CO=JA

CO=GR

MA=GR GR=AL

CO=MA JA=GR

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 (^) Funciones de acceso: psr-restr-variables y psr-restr-funcion

x La variable global restricciones contiene todas las restricciones del

PSR

Simplificaciones en la b´usqueda

x El orden en el que se aplican los operadores es irrelevante para la solu-

ci´on final (conmutatividad)

u (^) Por tanto, los operadores puden reducirse a considerar las posibles asignaciones a una ´unica variable no asignada

x El camino no es importante

u (^) No necesitamos la estructura de nodo u (^) No necesitamos una representaci´on expl´ıcita para los operadores

x 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

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 (^) SELECCIONA-VARIABLE(ESTADO)

x Funci´on que ordena los valores a asignar:

u (^) ORDENA-VALORES(DOMINIO)

x 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

B´usqueda en profundidad para PSR: ejemplos

x 8 reinas:

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

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

Algoritmo de backtracking

x El algoritmo de b´usqueda en profundidad anterior se suele llamar algo-

ritmo 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
  4. Devolver FALLO

Selecci´on de variables y ordenaci´on de valores

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

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

x Heur´ıstica MRV:

u (^) seleccionar la variable con el menor n´umero de valores en su dominio consistente con la asignaci´on parcial actual u (^) Ejemplo: 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 (^) Usada para desempatar MRV

x 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

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 (^) 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

x Ejemplo (seleccionando variables en orden alfab´etico):

{AL=R} --> eliminar R del dominio de GR {AL=R,CA=R} --> eliminar R de los dominios de HU, SE y MA {AL=R,CA=R,CO=A} --> eliminar A de los dominios de MA, SE y JA {AL=R,CA=R,CO=A,GR=V} --> eliminar V 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