10.05.2013 Views

Tema 5 - dccia

Tema 5 - dccia

Tema 5 - dccia

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

<strong>Tema</strong> 5<br />

Satisfacción de Restricciones<br />

• Introducción<br />

• Formulación de CSPs como redes de<br />

restricciones<br />

• Esquema backtracking<br />

• Esquema de propagación de restricciones<br />

• Conclusiones<br />

1


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Introducción<br />

• Gran cantidad de problemas en I.A.<br />

pueden verse como casos especiales del<br />

CSP: visión artificial y análisis de<br />

escenas, planificación, diseño de<br />

circuitos, programación lógica, etc.<br />

• Formulación del problema en términos<br />

de redes de restricciones.<br />

• Métodos de resolución: generación<br />

sistemática y test y backtracking.<br />

• Marco de referencia: análisis de escenas.<br />

Problema: reconocimiento de figuras<br />

(restricciones geométricas).<br />

• Solución a a los problemas del<br />

backtracking: propagación de<br />

restricciones. Caso particular: Algoritmo<br />

de Waltz.<br />

2


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Definición de CSP<br />

• Conjunto de variables definidas sobre<br />

dominios discretos y finitos y conjunto de<br />

restricciones definidas sobre subconjuntos<br />

de dichas variables.<br />

• CSP= (V,D,ρ)<br />

un conjunto de variables<br />

V = {V 1 , V 2 , …, V n } V={V i } i=1..n<br />

definidas sobre dominios discretos D i<br />

(conjunto finito de posibles valores)<br />

D = {D 1 , D 2 , …, D n } D={D j } j=1..n<br />

un conjunto de restricciones definidas sobre<br />

subconjuntos de dichas variables<br />

ρ = {ρ 1 , ρ 2 , …, ρ n } ρ ={ρ k } k=1..n<br />

Ejemplo:<br />

• X::{1,2}, Y::{1,2}, Z::{1,2}<br />

X = Y, X ≠ Z, Y > Z<br />

3


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Definición de CSP<br />

• Solución: encontrar asignaciones de valor a<br />

las variables que satisfagan todas las<br />

restricciones.<br />

(X = 2, Y = 2, Z = 1)<br />

Cada restricción tiene asociado un<br />

operador de proyección:<br />

P k ()=<br />

• Solución al problema: ρ sol, la relación naria<br />

que satisface todas las restricciones<br />

de ρ:<br />

ρ sol = {|v i ∈ Di ∧ P k () ∈ ρ k , ∀i, 1≤ i ≤ n , ∀k 1≤ k<br />

≤ m}<br />

• Dependiendo de los requerimientos del<br />

problema hay que encontrar todos los<br />

elementos de ρ sol o bien sólo alguno de<br />

ellos.<br />

4


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Redes de restricciones<br />

• Un CSP se puede representar como un<br />

grafo.<br />

• Sobre el grafo se puede definir una red de<br />

restricciones:<br />

Quíntupla <br />

V: conjunto de nodos.<br />

E: conjunto de aristas.<br />

c: E → V k , k ≤ n; función de asignación de<br />

aristas a tuplas de nodos.<br />

l: E → ρ; función de asignación de aristas a<br />

restricciones.<br />

a: permutación que define el orden de<br />

selección para resolver el problema.<br />

Solución para la red:<br />

S = {(|v i ∈ D i, ∀ i, 1 ≤ i ≤ n ∧<br />

(∀ e k ∈ E, P k() ∈ l(e k))}<br />

5


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Variables<br />

CSP binario<br />

V = {V 1 , V 2 , …, V n }<br />

Dominios discretos y finitos<br />

D = {D 1 , D 2 , …, D n }<br />

Restricciones binarias<br />

{R ij }<br />

• Solución : Asignación de valores a cada una de<br />

las variables satisfaciendo todas las restricciones<br />

• Generalidad : Todo problema n-ario se puede<br />

formular como un problema binario<br />

• Ejemplos:<br />

Coloreado de mapas<br />

Asignación de tareas para un robot<br />

N-reinas<br />

Crucigramas<br />

Criptoaritmética<br />

6


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Ejemplo: Coloreado de mapas<br />

V={V 1 , V 2 , V 3 , V 4 }<br />

D i ={rojo, azul, verde}, ∀ i, 1 ≤ i ≤ 4<br />

E= {e 1 , e 2 , e 3 , e 4 , e 5 }<br />

ρ k (V i , V j )= {| v i ∈ D i, v j ∈ D j, v i ≠ v j },<br />

∀ k, 1 ≤ k ≤ 5<br />

c(e 1 )=, c(e 2 )=,<br />

c(e 3 )=, ...<br />

l(e j )={, ,<br />

, , ,<br />

}<br />

a={V 1 , V 4 , V 2 , V 3 }<br />

7


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Generación de crucigramas<br />

• Definición: Dada una rejilla y un diccionario,<br />

construir un crucigrama legal,<br />

C<br />

O<br />

Z<br />

O<br />

L<br />

Formulación:<br />

4 palabras de 1 letra<br />

4 palabras de 3 letras<br />

2 palabras de 5 letras<br />

variables : grupo de casillas para una palabra<br />

(slots)<br />

dominios : palabras del diccionario con la<br />

longitud adecuada<br />

restricciones : misma letra en la intersección de<br />

dos palabras<br />

Características :<br />

CSP binario, discreto y finito (dominios<br />

grandes)<br />

8


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

N-reinas<br />

• Definición: posicionar n reinas en un tablero de<br />

ajedrez n×n, de forma que no se ataquen<br />

Formulación: 1 reina por fila<br />

n = 5<br />

variables : reinas, Xi reina en la fila i-ésima<br />

dominios : columnas posibles {1, 2, …, n}<br />

restricciones : no colocar dos reinas en<br />

- la misma columna<br />

- la misma diagonal<br />

Características :<br />

CSP binario, discreto y finito<br />

9


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Criptoaritmética<br />

• Definición: sustituir cada letra por un dígito<br />

distinto (distinta cifra, distinta letra) de manera que<br />

la suma sea correcta GOTA<br />

GOTA<br />

GOTA<br />

+ GOTA<br />

GOTA<br />

⎯⎯⎯⎯<br />

AGUA<br />

• Formulación:<br />

variables : G, O, T, A, U, C 1, C 2, C 3<br />

(C 1 , C 2 , C 3 variables de acarreo)<br />

dominios : O, T, U ∈ {0, …, 9}<br />

G, A ∈ {1, …, 9}<br />

C 1, C 2, C 3 ∈ {0, …, 3}<br />

restricciones :<br />

• letras distintas G ≠ O, G ≠ T, …, A ≠ U<br />

• suma correcta (unidades) 5*A = 10*C 1 +A<br />

(decenas) 5*T+C 1 = 10*C 2 +U<br />

(centenas) 5*O+C 2 = 10*C 3 +G<br />

(unidades mil) 5*G+C 3 = A<br />

• Características :<br />

• CSP binario, discreto y finito<br />

10


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Métodos de resolución<br />

• Búsqueda:<br />

Generación y test : generar de forma<br />

sistemática y exhaustiva cada una de las<br />

posibles asignaciones a las variables y<br />

comprobar si satisfacen todas las restricciones.<br />

Hay que explorar el espacio definido por el<br />

producto cartesiano de los dominios de las<br />

variables.<br />

Backtracking : se trata de construir la<br />

solución de forma gradual, instanciando<br />

variables en el orden definido por la<br />

permutación dada<br />

• Inferencia<br />

Consistencia de arco<br />

Consistencia de caminos<br />

K-consistencia<br />

• Algoritmos híbridos<br />

Forward Checking<br />

Maintaining Arc Consistency<br />

Heurísticas<br />

11


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

• Estrategia:<br />

Generación y test<br />

generación y test de todas las asignaciones<br />

totales posibles<br />

Generar una asignación total<br />

Comprobar si es solución. Si es, stop, sino ir a 1<br />

• Ejemplo: 4-reinas<br />

• Eficiencia:<br />

…<br />

es muy poco eficiente<br />

genera muchas asignaciones que violan la<br />

misma restricción<br />

12


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

• Estrategia:<br />

Backtracking<br />

Construir una solución parcial : asignación<br />

parcial que satisface las restricciones de las<br />

variables involucradas<br />

Extender la solución parcial, incluyendo una<br />

variable cada vez hasta llegar una solución<br />

total<br />

Si no se puede extender → backtracking<br />

• cronológico: se elimina la última decisión<br />

• no cronológico : se elimina una decisión<br />

anterior<br />

13


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Backtracking básico<br />

• Inicialización de la raíz del árbol de búsqueda<br />

i= 0; modo = forward; S = {}<br />

Acciones si el estado actual es consistente<br />

Si modo = forward entonces<br />

FinSi<br />

i=i+1;<br />

(1.1) V + i = nuevo_candidato(S, E, c, l, a)<br />

Si V + i ≠∅entonces<br />

Sino<br />

S= S ∪ expandir(S, V + i )<br />

Si i=n entonces salir_con_éxito<br />

sino ir a <br />

FinSi<br />

modo = backtracking FinSi<br />

Acciones si se detecta inconsistencia<br />

Si modo = backtracking entonces<br />

FinSi<br />

Si i= 0 entonces salir_con_fracaso<br />

Sino<br />

i= i-1<br />

S = cambiar(S, V +<br />

i )<br />

modo = forward<br />

ir a (1.1)<br />

FinSi<br />

14


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Backtracking recursivo<br />

funcion bt (x variable): booleano<br />

Para todo a ∈ D(x) hacer<br />

x a<br />

si test (x, pasadas)<br />

retorna FALSO<br />

pasadaspasadas + {x}<br />

si bt(siguiente(x)) retorna CIERTO<br />

sino pasadas pasadas – {x}<br />

pasadas: variables ∈ solución parcial, tienen<br />

valor asignado<br />

funcion test (x variable, P conjunto): booleano<br />

para todo y ∈ P hacer<br />

si (val(x), val(y))∉rel(R xy ) retorna FALSO<br />

retorna CIERTO<br />

la función test comprueba que el valor de la<br />

variable actual (x) sea consistente con la<br />

solución parcial<br />

15


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Generación y test VS Backtracking<br />

• Problema:<br />

X<br />

1<br />

1<br />

1<br />

1<br />

2<br />

2<br />

2<br />

• X::{1,2}, Y::{1,2}, Z::{1,2}<br />

X = Y, X ≠ Z, Y > Z<br />

Generación y test<br />

Y<br />

1<br />

1<br />

2<br />

2<br />

1<br />

1<br />

2<br />

Z<br />

1<br />

2<br />

1<br />

2<br />

1<br />

2<br />

1<br />

test<br />

falla<br />

falla<br />

falla<br />

falla<br />

falla<br />

falla<br />

acierta<br />

X<br />

1<br />

2<br />

Backtracking<br />

Y<br />

1<br />

2<br />

1<br />

2<br />

Z<br />

1<br />

2<br />

1<br />

test<br />

falla<br />

falla<br />

falla<br />

falla<br />

acierta<br />

16


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Reconocimiento de figuras<br />

Buscar un emparejamiento entre los<br />

parámetros de los datos sensoriales y los<br />

de un modelo de objetos dado.<br />

Modelo Datos<br />

sensoriales<br />

17


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Reconocimiento de figuras II<br />

• El sistema debe generar el conjunto de<br />

interpretaciones plausibles<br />

(consistentes).<br />

• Objetivo: La geometría de los objetos<br />

es una fuente valiosa de conocimiento<br />

para restringir las configuraciones<br />

candidatas a ser solución.<br />

• Deducir emparejamientos entre las<br />

aristas de los datos f={f 1 , f 2 , f 3 } y las<br />

que describen el modelo F={F 1 , F 2 , F 3 ,<br />

F 4 , F 5 , F 6 }.<br />

• Inicialmente hay que considerar todas<br />

las correspondencias posibles (9 x 10 7 ).<br />

18


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Reconocimiento de figuras III<br />

•Se puede reducir el número de<br />

posibilidades comprobando si la<br />

correspondencia es consistente con la<br />

geometría del objeto. Dadas m aristas del<br />

modelo y d aristas de datos:<br />

Existen (2m) d correspondencias (1728).<br />

Este número se reduce a m d si<br />

distinguimos entre interior y exterior<br />

(216).<br />

Restricciones geométricas:<br />

• Angulos relativos entre las aristas (12).<br />

• Distancia entre pares de aristas (5).<br />

•A pesar de reducir el espacio de búsqueda<br />

hay que aplicar una transformación<br />

geométrica a la figura para saber si se ajusta<br />

al modelo.<br />

•Sólo hay que aplicar la transformación a<br />

cinco posibilidades<br />

19


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Reconocimiento de figuras IV<br />

• Red de restricciones<br />

V={f 1, f 2, f 3}<br />

D j={F 1, F 2, F 3, F 4, F 5, F 6} ∀j, 1 ≤ j ≤ 3<br />

E={e 1, e 2, e 3}<br />

ρ k(f i)={ | unaria(F i)}<br />

ρ k(f i,f j)={ | (F i ≠ F j) ∧ binaria(F i ,F j)}<br />

c(e 1)= < f 1, f 2>, c(e 2)=< f 1, f 3 >, c(e 3)=< f 2, f 3 ><br />

l(e k) ⊆{|(i ≠ j) ∧ binaria(F i ,F j) (i,j ∈{1, 2,<br />

3, 4, 5, 6 })} ∀ k = 1, 2 ,3<br />

a= < f 1, f 2, f 3 ><br />

20


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Espacio de correspondencia<br />

Espacio de posibilidades a explorar para<br />

encontrar una interpretación correcta<br />

(coincide con el producto cartesiano de los<br />

dominios de las variables).<br />

21


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Arbol de interpretaciones<br />

• Partimos de un nodo raíz que supervisa el<br />

proceso.<br />

• Cada nivel corresponde a una asignación<br />

de valor para una característica de datos.<br />

El orden de descenso viene especificado<br />

por a.<br />

• Cada nodo identifica una posibilidad de<br />

asignación (f i , F j ).<br />

• La solución se construye de forma<br />

incremental de tal forma que cada hoja es<br />

una interpretación.<br />

22


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Arbol de interpretaciones<br />

23


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Datos espúreos o solapados<br />

Excluir todas las características de<br />

datos inconsistentes con la<br />

interpretación actual<br />

24


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Limitaciones del backtracking<br />

• Trashing e inconsistencia de nodo<br />

Restricciones unarias: cuando un dominio<br />

contiene un valor que no satisface una<br />

restricción unaria.<br />

• Inconsistencia de arista<br />

Restricciones binarias: cuando existe una<br />

restricción binaria entre dos variables de tal<br />

forma que para un determinado valor de la<br />

primera variable no existe ninguna asignación<br />

posible para la segunda.<br />

• Dependencia de la ordenación<br />

Se han desarrollado diversas heurísticas: de<br />

selección de variables y de valores.<br />

25


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Propagación de Restricciones<br />

• Transformar el problema en otro más<br />

sencillo sin inconsistencias de arco.<br />

• Propiedad de consistencia de arista<br />

Una arista dirigida c(e p) = es<br />

consistente si y sólo si para todo valor<br />

asignable a V i existe al menos un valor en V j que<br />

satisface la restricción asociada a la arista.<br />

• Un CSP puede transformarse en una red<br />

consistente mediante un algoritmo<br />

sencillo (AC3) que examina las aristas,<br />

eliminando los valores que causan<br />

inconsistencia del dominio de cada<br />

variable.<br />

26


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Algoritmo AC3<br />

Q = {c(e p ) = |e p ∈ E, i ≠ j}<br />

Mientras Q ≠ Ø hacer<br />

= seleccionar_y_borrar(Q)<br />

cambio = falso<br />

Para todo v k ∈ D k hacer<br />

Si no_consistente (v k , D m ) entonces<br />

FinSi<br />

FinPara<br />

borrar (v k , D k )<br />

cambio = cierto<br />

Si Dk = Ø entonces salir_sin_solución FinSi<br />

Si cambio = cierto entonces<br />

Q = Q ∪ {c(e r ) = | e r ∈ E, i ≠ k, i ≠ m}<br />

FinSi<br />

FinMientras<br />

• Después del proceso:<br />

✓ No hay solución<br />

✓ Hay más de una solución<br />

✓ Hay una única solución<br />

27


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

2<br />

{rojo, verde}<br />

Ejemplos de grafos<br />

1<br />

Inconsistente,<br />

sin solución<br />

2<br />

{rojo, verde}<br />

1<br />

{rojo, verde}<br />

3<br />

{rojo, verde}<br />

2<br />

{rojo, verde}<br />

{azul, verde}<br />

3<br />

{rojo, verde}<br />

Consistente,<br />

sin solución<br />

1<br />

{verde}<br />

3<br />

{rojo, verde}<br />

Consistente, con<br />

dos soluciones<br />

28


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Ejemplo: Etiquetado de escenas<br />

• Asignar etiquetas consistentes a cada una de<br />

las aristas que componen la escena: descubrir<br />

las líneas de frontera que separan objetos, las<br />

aristas cóncavas y convexas.<br />

• Suponemos iluminación uniforme y ausencia<br />

de sombras.<br />

29


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Etiquetado de escenas II<br />

• Tipos de aristas<br />

Convexas (+): formadas por dos caras que<br />

forman un ángulo agudo<br />

Cóncavas (-): formadas por formadas por dos<br />

caras que forman un ángulo obtuso<br />

Frontera (←, →): arista que separa un objeto<br />

del fondo o de otro objeto<br />

• Figuras compuestas por vértices triédricos.<br />

• Salida: conjunto plausible de etiquetas<br />

asociadas a cada una de las aristas.<br />

30


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Etiquetado de escenas III<br />

• Existen 4 n etiquetados posibles para una<br />

figura de n aristas.<br />

• Vértices ⇒ sólo existen 4 tipos de<br />

configuraciones de unión: L (2 aristas),<br />

flecha, T, Horquilla (3 aristas cada una).<br />

• Existen 208 posibilidades totales<br />

(3x4 3 +4 2 ) si tenemos en cuenta el máximo<br />

número de combinaciones de cada tipo de<br />

unión.<br />

31


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Configuraciones de unión<br />

32


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Configuraciones realizables<br />

físicamente<br />

• Se puede reducir a 18 el número de<br />

configuraciones físicamente realizables si<br />

se incorpora conocimiento sobre el tipo de<br />

objeto y la perspectiva de observación.<br />

+<br />

+<br />

-<br />

Uniones L<br />

-<br />

Uniones<br />

Horquilla<br />

+ +<br />

+<br />

- -<br />

-<br />

-<br />

-<br />

-<br />

Uniones T<br />

+<br />

-<br />

Uniones<br />

Flecha<br />

+<br />

+ +<br />

-<br />

- -<br />

+<br />

33


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Algoritmo de Waltz<br />

Encontrar todas las aristas de la escena.<br />

Numerar los vértices.<br />

Visitar cada vértice V e intentar etiquetarlo:<br />

Asignar a V todas las etiquetas posibles.<br />

Determinar las etiquetas que pueden<br />

eliminarse en base a restricciones locales<br />

Comprobar la consistencia del arco (V, A) y<br />

eliminar de V las etiquetas inconsistentes.<br />

Utilizar el nuevo conjunto de etiquetas de V<br />

para restringir las etiquetas de los vértices<br />

adyacentes a V ya visitados:<br />

Comprobar la consistencia del arco (A, V) y<br />

eliminar de A las etiquetas inconsistentes.<br />

Si se elimina alguna etiqueta continuar la<br />

propagación examinando los vértices adyacentes a A<br />

ya visitados.<br />

Continuar la propagación hasta que no existan más<br />

vértices adyacentes o no haya ningún cambio en las<br />

etiquetas.<br />

34


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Ejemplo<br />

35


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Ejemplo<br />

36


Fundamentos IA 5. Satisfacción de Restricciones<br />

@DCCIA<br />

Ejemplo<br />

37

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!